Suad Suljic / Mbed OS a

Dependencies:   SDFileSystem circular_buffer MPU6050 SoftSerial

Revision:
4:147bbe6f9626
Parent:
3:b2087af18efe
diff -r b2087af18efe -r 147bbe6f9626 source/ButtonService.h
--- a/source/ButtonService.h	Wed Jun 21 16:00:36 2017 +0000
+++ b/source/ButtonService.h	Wed Aug 23 17:26:31 2017 +0000
@@ -22,12 +22,25 @@
     const static uint16_t BUTTON_SERVICE_UUID              = 0xA000;
     const static uint16_t BUTTON_STATE_CHARACTERISTIC_UUID = 0xA001;
     const static uint16_t INTERRUPT_STATE_CHARACTERISTIC_UUID = 0xA002;
+    const static uint16_t GYRO_STATE_CHARACTERISTIC_UUID = 0xA003;
+    
+    
+    const static uint16_t MOTION_THRESHOLD_CHARACTERISTIC_UUID = 0xA004;
+    const static uint16_t MOTION_DURATION_CHARACTERISTIC_UUID = 0xA005;
+    
+      const static uint16_t ZERO_MOTION_THRESHOLD_CHARACTERISTIC_UUID = 0xA006;
+    const static uint16_t ZERO_MOTION_DURATION_CHARACTERISTIC_UUID = 0xA007;
 
-    ButtonService(BLE &_ble, float buttonPressedInitial) :
+    ButtonService(BLE &_ble, float buttonPressedInitial, float interruptInitial, float gyroInitial, uint8_t motionThresholdInitial, uint8_t motionDurationInitial, uint8_t zeroMotionThresholdInitial, uint8_t zeroMotionDurationInitial) :
         ble(_ble), buttonState(BUTTON_STATE_CHARACTERISTIC_UUID, &buttonPressedInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
-                   interruptState(INTERRUPT_STATE_CHARACTERISTIC_UUID, &interruptInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY)
+                   interruptState(INTERRUPT_STATE_CHARACTERISTIC_UUID, &interruptInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
+                   gyroState(GYRO_STATE_CHARACTERISTIC_UUID, &gyroInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
+                   motionThreshold(MOTION_THRESHOLD_CHARACTERISTIC_UUID, &motionThresholdInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
+                   motionDuration(MOTION_DURATION_CHARACTERISTIC_UUID, &motionDurationInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
+                   zeroMotionThreshold(ZERO_MOTION_THRESHOLD_CHARACTERISTIC_UUID, &zeroMotionThresholdInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
+                   zeroMotionDuration(ZERO_MOTION_DURATION_CHARACTERISTIC_UUID, &zeroMotionDurationInitial, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY)
     {
-        GattCharacteristic *charTable[] = {&buttonState,&interruptState};
+        GattCharacteristic *charTable[] = {&buttonState,&interruptState, &gyroState, &motionThreshold, &motionDuration};
         GattService         buttonService(ButtonService::BUTTON_SERVICE_UUID, charTable, sizeof(charTable) / sizeof(GattCharacteristic *));
         ble.gattServer().addService(buttonService);
     }
@@ -41,10 +54,20 @@
         ble.gattServer().write(interruptState.getValueHandle(), (uint8_t *)&newState, sizeof(float));
         }
 
+void updateGyroState(float newState) {
+        ble.gattServer().write(gyroState.getValueHandle(), (uint8_t *)&newState, sizeof(float));
+        }
+
 private:
     BLE                              &ble;
     ReadOnlyGattCharacteristic<float>  buttonState;
     ReadOnlyGattCharacteristic<float>  interruptState;
+    ReadOnlyGattCharacteristic<float>  gyroState;
+    WriteOnlyGattCharacteristic<uint8_t>  motionThreshold;
+    WriteOnlyGattCharacteristic<uint8_t>  motionDuration;
+    
+    WriteOnlyGattCharacteristic<uint8_t>  zeroMotionThreshold;
+    WriteOnlyGattCharacteristic<uint8_t>  zeroMotionDuration;
 };
 
 #endif /* #ifndef __BLE_BUTTON_SERVICE_H__ */
\ No newline at end of file