summaryrefslogtreecommitdiff
path: root/src/components/ble/BatteryInformationService.h
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-11-10 19:32:36 (GMT)
committerJF <jf@codingfield.com>2020-11-10 19:32:36 (GMT)
commit04abc91f157f5925ffa404728291a69893acf8cf (patch)
tree5c887c6d22ba8d901022ebae395a7b6c165d9dc0 /src/components/ble/BatteryInformationService.h
parent65ecb65b57bd55582c1aa1a5babd4d76df89e621 (diff)
parentf0e1f98823e41bfc2d9743fa8de70c882f26f93b (diff)
Merge branch 'develop' into master
Diffstat (limited to 'src/components/ble/BatteryInformationService.h')
-rw-r--r--src/components/ble/BatteryInformationService.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/components/ble/BatteryInformationService.h b/src/components/ble/BatteryInformationService.h
new file mode 100644
index 0000000..74b2222
--- /dev/null
+++ b/src/components/ble/BatteryInformationService.h
@@ -0,0 +1,40 @@
+#pragma once
+#include <host/ble_gap.h>
+
+namespace Pinetime {
+ namespace System {
+ class SystemTask;
+ }
+ namespace Controllers {
+ class Battery;
+ class BatteryInformationService {
+ public:
+ BatteryInformationService(Controllers::Battery& batteryController);
+ void Init();
+
+ int
+ OnBatteryServiceRequested(uint16_t connectionHandle, uint16_t attributeHandle, ble_gatt_access_ctxt *context);
+
+ private:
+ Controllers::Battery& batteryController;
+ static constexpr uint16_t batteryInformationServiceId {0x180F};
+ static constexpr uint16_t batteryLevelId {0x2A19};
+
+ static constexpr ble_uuid16_t batteryInformationServiceUuid {
+ .u {.type = BLE_UUID_TYPE_16},
+ .value = batteryInformationServiceId
+ };
+
+ static constexpr ble_uuid16_t batteryLevelUuid {
+ .u {.type = BLE_UUID_TYPE_16},
+ .value = batteryLevelId
+ };
+
+ struct ble_gatt_chr_def characteristicDefinition[3];
+ struct ble_gatt_svc_def serviceDefinition[2];
+
+ uint16_t batteryLevelHandle;
+
+ };
+ }
+}