diff options
author | JF002 <JF002@users.noreply.github.com> | 2020-05-16 16:15:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 16:15:38 +0200 |
commit | d58f57b1b5a616debf893f209f1d96cac101489e (patch) | |
tree | 9df19606a2615586bb533d39fb42c84be8774092 /src/Components/Ble/NimbleController.h | |
parent | 24a1f87a78584d3b67f07ea7972ea0d8e1f8167c (diff) | |
parent | d6c6ac4cf5801e17caf7bfc0878423703ed0413b (diff) |
Merge pull request #30 from JF002/nimble
Nimble
Diffstat (limited to 'src/Components/Ble/NimbleController.h')
-rw-r--r-- | src/Components/Ble/NimbleController.h | 47 |
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; + }; + } +} |