summaryrefslogtreecommitdiff
path: root/src/components/ble/BatteryInformationService.cpp
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2021-07-11 14:55:06 (GMT)
committerJean-François Milants <jf@codingfield.com>2021-07-11 14:55:06 (GMT)
commite21f6a7f414d1f832e8fddfeaab3b9de05aa3459 (patch)
treea4ebbc3a74ba7daf87aa99c0eafcb0e9e7bc6c35 /src/components/ble/BatteryInformationService.cpp
parent6a91b83b12ef849f68d54f490153b02f0ecf58dc (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.cpp8
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);
+}