summaryrefslogtreecommitdiff
path: root/src/components/ble/NavigationService.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/ble/NavigationService.cpp')
-rw-r--r--src/components/ble/NavigationService.cpp45
1 files changed, 21 insertions, 24 deletions
diff --git a/src/components/ble/NavigationService.cpp b/src/components/ble/NavigationService.cpp
index d93c85d..b49148d 100644
--- a/src/components/ble/NavigationService.cpp
+++ b/src/components/ble/NavigationService.cpp
@@ -20,35 +20,32 @@
#include "systemtask/SystemTask.h"
-int NAVCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) {
- auto navService = static_cast<Pinetime::Controllers::NavigationService*>(arg);
- return navService->OnCommand(conn_handle, attr_handle, ctxt);
-}
-
-Pinetime::Controllers::NavigationService::NavigationService(Pinetime::System::SystemTask& system) : m_system(system) {
- navUuid.value[14] = navId[0];
- navUuid.value[15] = navId[1];
+namespace {
+ // 0001yyxx-78fc-48fe-8e23-433b3a1942d0
+ constexpr ble_uuid128_t CharUuid(uint8_t x, uint8_t y) {
+ return ble_uuid128_t {.u = {.type = BLE_UUID_TYPE_128},
+ .value = {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, x, y, 0x01, 0x00}};
+ }
- navFlagCharUuid.value[12] = navFlagCharId[0];
- navFlagCharUuid.value[13] = navFlagCharId[1];
- navFlagCharUuid.value[14] = navId[0];
- navFlagCharUuid.value[15] = navId[1];
+ // 00010000-78fc-48fe-8e23-433b3a1942d0
+ constexpr ble_uuid128_t BaseUuid() {
+ return CharUuid(0x00, 0x00);
+ }
- navNarrativeCharUuid.value[12] = navNarrativeCharId[0];
- navNarrativeCharUuid.value[13] = navNarrativeCharId[1];
- navNarrativeCharUuid.value[14] = navId[0];
- navNarrativeCharUuid.value[15] = navId[1];
+ constexpr ble_uuid128_t navUuid {BaseUuid()};
- navManDistCharUuid.value[12] = navManDistCharId[0];
- navManDistCharUuid.value[13] = navManDistCharId[1];
- navManDistCharUuid.value[14] = navId[0];
- navManDistCharUuid.value[15] = navId[1];
+ constexpr ble_uuid128_t navFlagCharUuid {CharUuid(0x01, 0x00)};
+ constexpr ble_uuid128_t navNarrativeCharUuid {CharUuid(0x02, 0x00)};
+ constexpr ble_uuid128_t navManDistCharUuid {CharUuid(0x03, 0x00)};
+ constexpr ble_uuid128_t navProgressCharUuid {CharUuid(0x04, 0x00)};
- navProgressCharUuid.value[12] = navProgressCharId[0];
- navProgressCharUuid.value[13] = navProgressCharId[1];
- navProgressCharUuid.value[14] = navId[0];
- navProgressCharUuid.value[15] = navId[1];
+ int NAVCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_access_ctxt* ctxt, void* arg) {
+ auto navService = static_cast<Pinetime::Controllers::NavigationService*>(arg);
+ return navService->OnCommand(conn_handle, attr_handle, ctxt);
+ }
+} // namespace
+Pinetime::Controllers::NavigationService::NavigationService(Pinetime::System::SystemTask& system) : m_system(system) {
characteristicDefinition[0] = {
.uuid = &navFlagCharUuid.u, .access_cb = NAVCallback, .arg = this, .flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_READ};