Los Putacos / Mbed OS WearableDevice_Nucleo

Dependencies:   MPU9250_SPI SDFileSystem XBeeLib

Revision:
28:c7e977a19564
Parent:
27:c4b2ce6fa5b8
Child:
29:ab809198c1ba
--- a/event.cpp	Sun Nov 12 14:54:49 2017 +0000
+++ b/event.cpp	Tue Dec 19 10:15:19 2017 +0000
@@ -15,9 +15,26 @@
 //-----------------------------------------------------------------
 
 //-----------------------------------------------------------------
-void ReceiveXBee(void)
+void ReceiveCommand(void)
 {
-    XBee.process_rx_frames();           // Check for Received Frames
+    if (Socket_TCP.recv(Data_Buffer, sizeof Data_Buffer) > 0) {
+        PC.printf("Socket Data Received! - %s\n", Data_Buffer);
+
+        if (strlen(Data_Buffer) == 9) {         // Check Package Length (correct: len = 9)
+            if ((Data_Buffer[0] == '#') && (Data_Buffer[6] == ',')) {       // Check for "#" and "," at specific Positions
+                if (strstr(Data_Buffer, DeviceNr) != NULL) {                // Check for valid DeviceNr in Package
+                    Time_Buffer[0] = Data_Buffer[7];
+                    Time_Buffer[1] = Data_Buffer[8];
+                    Requested_Time = atoi(Time_Buffer);                     // Requested Time by received Package
+
+                    CheckCommandDone_Flag = 1;
+                    PC.printf("Requested Time: %d\n", Requested_Time);
+                    memset(Data_Buffer, 0, sizeof(Data_Buffer));            // Clear Data_Buffer
+                    Ticker_ReceiveCommand.detach();
+                }
+            }
+        }
+    }
 }
 //-----------------------------------------------------------------
 
@@ -27,22 +44,21 @@
     Time_Data = TimeStamp.read_ms();        // Read TimeStamp Data
 
     if (Time_Data <= Requested_Time * 1000) {       // Check Time Elapsed
-        imu.read_all();
+        imu.read_acc();
 
-        Data_Storage_MIC[writePointer_MIC++] = micro.read_u16();                // Store Microphone Data
-        Data_Storage[writePointer++] = (int)(1000*imu.accelerometer_data[2]);   // Store Z-Axis Accelerometer Data
-        Data_Storage[writePointer++] = (int)(1000*imu.accelerometer_data[1]);   // Store Y-Axis Accelerometer Data
-        Data_Storage[writePointer++] = (int)(1000*imu.accelerometer_data[0]);   // Store X-Axis Accelerometer Data
-        Data_Storage[writePointer++] = Time_Data;                               // Store Time Data
+        Data_Storage_MIC[writePointer_MIC++] = micro.read_u16();    // Store Microphone Data
+        Data_Storage[writePointer++] = imu.accelerometer_data[2];   // Store Z-Axis Accelerometer Data
+        Data_Storage[writePointer++] = imu.accelerometer_data[1];   // Store Y-Axis Accelerometer Data
+        Data_Storage[writePointer++] = imu.accelerometer_data[0];   // Store X-Axis Accelerometer Data
+        Data_Storage[writePointer++] = Time_Data;                   // Store Time Data
     } else {
         Ticker_IMU.detach();        // Detach Timer to Stop "ReadIMU"
         TimeStamp.stop();           // Stop TimeStamp
+        TimeStamp.reset();          // Reset TimeStamp
 
-        TimeStamp.reset();
         TimeStamp.start();
         ReadIMUDone_Flag = 1;
-        PC.printf(" Done!\n");
-        PC.printf("Sending Data ...");
+        PC.printf("Measurement Done!\n");
     }
 }
 //-----------------------------------------------------------------