Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem circular_buffer MPU6050 SoftSerial
Diff: source/ButtonService.h
- Revision:
- 4:147bbe6f9626
- Parent:
- 3:b2087af18efe
--- 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