diff options
author | Avamander <avamander@gmail.com> | 2020-10-02 22:16:48 +0300 |
---|---|---|
committer | Avamander <avamander@gmail.com> | 2020-10-02 22:16:48 +0300 |
commit | 6c86d1d9d706706fcb6f214aba8259e61ed68755 (patch) | |
tree | 2f4137a9916869cee18fd01449aa83ee586b9604 /src/components/ble/NimbleController.h | |
parent | 4daab2692692d47af24a9384eb0f402821527882 (diff) |
Fixed all the includes that were broken due to the renames
Diffstat (limited to 'src/components/ble/NimbleController.h')
-rw-r--r-- | src/components/ble/NimbleController.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/components/ble/NimbleController.h b/src/components/ble/NimbleController.h new file mode 100644 index 00000000..9d20caff --- /dev/null +++ b/src/components/ble/NimbleController.h @@ -0,0 +1,76 @@ +#pragma once + +#include <cstdint> + +#include "AlertNotificationService.h" +#include "AlertNotificationClient.h" +#include "DeviceInformationService.h" +#include "CurrentTimeClient.h" +#include "DfuService.h" +#include "CurrentTimeService.h" +#include "MusicService.h" +#include "BatteryInformationService.h" +#include "ImmediateAlertService.h" +#include <host/ble_gap.h> + +namespace Pinetime { + namespace Drivers { + class SpiNorFlash; + } + namespace Controllers { + class DateTime; + + class NimbleController { + + public: + NimbleController(Pinetime::System::SystemTask& systemTask, Pinetime::Controllers::Ble& bleController, + DateTime& dateTimeController, Pinetime::Controllers::NotificationManager& notificationManager, + Controllers::Battery& batteryController, Pinetime::Drivers::SpiNorFlash& spiNorFlash); + 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); + + void StartDiscovery(); + + Pinetime::Controllers::MusicService& music() {return musicService;}; + + uint16_t connHandle(); + + private: + static constexpr const char* deviceName = "InfiniTime"; + Pinetime::System::SystemTask& systemTask; + Pinetime::Controllers::Ble& bleController; + DateTime& dateTimeController; + Pinetime::Controllers::NotificationManager& notificationManager; + Pinetime::Drivers::SpiNorFlash& spiNorFlash; + Pinetime::Controllers::DfuService dfuService; + + DeviceInformationService deviceInformationService; + CurrentTimeClient currentTimeClient; + AlertNotificationService anService; + AlertNotificationClient alertNotificationClient; + CurrentTimeService currentTimeService; + MusicService musicService; + BatteryInformationService batteryInformationService; + ImmediateAlertService immediateAlertService; + + uint8_t addrType; // 1 = Random, 0 = PUBLIC + uint16_t connectionHandle = 0; + + ble_uuid128_t dfuServiceUuid { + .u { .type = BLE_UUID_TYPE_128}, + .value = {0x23, 0xD1, 0xBC, 0xEA, 0x5F, 0x78, 0x23, 0x15, + 0xDE, 0xEF, 0x12, 0x12, 0x30, 0x15, 0x00, 0x00} + }; + }; + } +} |