Lizzy project

Dependencies:   aconno_I2C Lis2dh12 adc52832_common aconno_SEGGER_RTT

Branch:
axis_normal
Revision:
15:c0c01188a29b
Parent:
13:2e964fa2a632
Child:
16:482d8f81d6f3
--- a/tasks/tasks.cpp	Wed Aug 29 10:52:27 2018 +0000
+++ b/tasks/tasks.cpp	Wed Aug 29 14:48:43 2018 +0000
@@ -86,30 +86,51 @@
 }
 #endif
 
+int untilSleep = ACTIVE_PERIOD / MEASURE_INTERVAL_MS;
 void measureF(Lis2dh12 *mems)
 {
-    while (1)
+    while(1)
     {
-        advertisementPacket.header = APPLICATION_ID;
-        advertisementPacket.type = 0x00;
-        advertisementPacket.gyroscope[0] = (int16_t)0;
-        advertisementPacket.gyroscope[1] = (int16_t)0;
-        advertisementPacket.gyroscope[2] = (int16_t)0;
-        advertisementPacket.magnetometer[0] = (int16_t)0;
-        advertisementPacket.magnetometer[1] = (int16_t)0;
-        advertisementPacket.magnetometer[2] = (int16_t)0;
+        Thread::signal_wait(START_MEAS);
+        Thread::signal_clr(START_MEAS);
+        
+        BLE::Instance().startAdvertising();
         
-        
-        advertisementPacket.accelerometer[0] = (int16_t)mems->readXAxis();
-        advertisementPacket.accelerometer[1] = (int16_t)mems->readYAxis();
-        advertisementPacket.accelerometer[2] = (int16_t)mems->readZAxis();
-        
-        advertisementPacket.acc_lsb_value = LSB_VALUE;
-        
-        updateServiceT.signal_set(MEAS_DONE);
-        bleT.signal_set(MEAS_DONE);
-        
-        wait_ms(MEASURE_INTERVAL_MS);
+        while (1)
+        {
+            advertisementPacket.header = APPLICATION_ID;
+            advertisementPacket.type = 0x00;
+            advertisementPacket.gyroscope[0] = (int16_t)0;
+            advertisementPacket.gyroscope[1] = (int16_t)0;
+            advertisementPacket.gyroscope[2] = (int16_t)0;
+            advertisementPacket.magnetometer[0] = (int16_t)0;
+            advertisementPacket.magnetometer[1] = (int16_t)0;
+            advertisementPacket.magnetometer[2] = (int16_t)0;
+            
+#if NORMAL_AXIS == 1
+            advertisementPacket.accelerometer[0] = (int16_t)mems->readXAxis();
+            advertisementPacket.accelerometer[1] = (int16_t)mems->readYAxis();
+            advertisementPacket.accelerometer[2] = (int16_t)mems->readZAxis();
+#else
+            advertisementPacket.accelerometer[0] = -(int16_t)mems->readYAxis();
+            advertisementPacket.accelerometer[1] = (int16_t)mems->readXAxis();
+            advertisementPacket.accelerometer[2] = (int16_t)mems->readZAxis();
+#endif
+            
+            advertisementPacket.acc_lsb_value = LSB_VALUE;
+            
+            updateServiceT.signal_set(MEAS_DONE);
+            bleT.signal_set(MEAS_DONE);
+            
+            wait_ms(MEASURE_INTERVAL_MS);
+            untilSleep--;
+            
+            if(untilSleep <= 0)
+            {
+                BLE::Instance().stopAdvertising();
+                break;
+            }
+        }
     }
 }