summaryrefslogtreecommitdiff
path: root/src/Components/Ble/NimbleController.h
diff options
context:
space:
mode:
authorJF002 <JF002@users.noreply.github.com>2020-05-16 16:15:38 +0200
committerGitHub <noreply@github.com>2020-05-16 16:15:38 +0200
commitd58f57b1b5a616debf893f209f1d96cac101489e (patch)
tree9df19606a2615586bb533d39fb42c84be8774092 /src/Components/Ble/NimbleController.h
parent24a1f87a78584d3b67f07ea7972ea0d8e1f8167c (diff)
parentd6c6ac4cf5801e17caf7bfc0878423703ed0413b (diff)
Merge pull request #30 from JF002/nimble
Nimble
Diffstat (limited to 'src/Components/Ble/NimbleController.h')
-rw-r--r--src/Components/Ble/NimbleController.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/Components/Ble/NimbleController.h b/src/Components/Ble/NimbleController.h
new file mode 100644
index 00000000..44fbbe2c
--- /dev/null
+++ b/src/Components/Ble/NimbleController.h
@@ -0,0 +1,47 @@
+#pragma once
+
+#include <cstdint>
+#include "AlertNotificationService.h"
+#include "AlertNotificationClient.h"
+#include "DeviceInformationService.h"
+#include "CurrentTimeClient.h"
+#include "CurrentTimeService.h"
+#include <host/ble_gap.h>
+
+namespace Pinetime {
+ namespace Controllers {
+ class DateTime;
+ class NimbleController {
+
+ public:
+ NimbleController(Pinetime::System::SystemTask& systemTask, Pinetime::Controllers::Ble& bleController, DateTime& dateTimeController, Pinetime::Controllers::NotificationManager& notificationManager);
+ void Init();
+ void StartAdvertising();
+ int OnGAPEvent(ble_gap_event *event);
+
+ int OnDiscoveryEvent(uint16_t i, const ble_gatt_error *pError, const ble_gatt_svc *pSvc);
+ int OnCTSCharacteristicDiscoveryEvent(uint16_t connectionHandle, const ble_gatt_error *error,
+ const ble_gatt_chr *characteristic);
+ int OnANSCharacteristicDiscoveryEvent(uint16_t connectionHandle, const ble_gatt_error *error,
+ const ble_gatt_chr *characteristic);
+ int OnCurrentTimeReadResult(uint16_t connectionHandle, const ble_gatt_error *error, ble_gatt_attr *attribute);
+ int OnANSDescriptorDiscoveryEventCallback(uint16_t connectionHandle, const ble_gatt_error *error,
+ uint16_t characteristicValueHandle, const ble_gatt_dsc *descriptor);
+ private:
+ static constexpr char* deviceName = "Pinetime-JF";
+ Pinetime::System::SystemTask& systemTask;
+ Pinetime::Controllers::Ble& bleController;
+ DateTime& dateTimeController;
+ Pinetime::Controllers::NotificationManager& notificationManager;
+
+ DeviceInformationService deviceInformationService;
+ CurrentTimeClient currentTimeClient;
+ AlertNotificationService anService;
+ AlertNotificationClient alertNotificationClient;
+ CurrentTimeService currentTimeService;
+
+ uint8_t addrType;
+ uint16_t connectionHandle;
+ };
+ }
+}