diff options
| author | Jean-François Milants <jf@codingfield.com> | 2021-07-11 14:55:06 (GMT) |
|---|---|---|
| committer | Jean-François Milants <jf@codingfield.com> | 2021-07-11 14:55:06 (GMT) |
| commit | e21f6a7f414d1f832e8fddfeaab3b9de05aa3459 (patch) | |
| tree | a4ebbc3a74ba7daf87aa99c0eafcb0e9e7bc6c35 /src/components/ble/BatteryInformationService.cpp | |
| parent | 6a91b83b12ef849f68d54f490153b02f0ecf58dc (diff) | |
Notify battery level every 10 minutes when connected to a BLE host.
Refactor battery percent : only use uint8_t to store the battery % remaining.
Diffstat (limited to 'src/components/ble/BatteryInformationService.cpp')
| -rw-r--r-- | src/components/ble/BatteryInformationService.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/components/ble/BatteryInformationService.cpp b/src/components/ble/BatteryInformationService.cpp index 10a78d6..7f17690 100644 --- a/src/components/ble/BatteryInformationService.cpp +++ b/src/components/ble/BatteryInformationService.cpp @@ -17,7 +17,7 @@ BatteryInformationService::BatteryInformationService(Controllers::Battery& batte characteristicDefinition {{.uuid = (ble_uuid_t*) &batteryLevelUuid, .access_cb = BatteryInformationServiceCallback, .arg = this, - .flags = BLE_GATT_CHR_F_READ, + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY, .val_handle = &batteryLevelHandle}, {0}}, serviceDefinition { @@ -48,4 +48,8 @@ int BatteryInformationService::OnBatteryServiceRequested(uint16_t connectionHand return (res == 0) ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; } return 0; -}
\ No newline at end of file +} +void BatteryInformationService::NotifyBatteryLevel(uint16_t connectionHandle, uint8_t level) { + auto* om = ble_hs_mbuf_from_flat(&level, 1); + ble_gattc_notify_custom(connectionHandle, batteryLevelHandle, om); +} |
