NimbleController : Encapsulate CTS client in its own class.

This commit is contained in:
JF
2020-04-23 20:57:53 +02:00
parent 24a7b6e397
commit 89ccdd0003
5 changed files with 141 additions and 92 deletions

View File

@@ -3,6 +3,7 @@
#include <cstdint>
#include "DeviceInformationService.h"
#include "CurrentTimeClient.h"
#include <host/ble_gap.h>
namespace Pinetime {
@@ -14,34 +15,12 @@ namespace Pinetime {
void Init();
void StartAdvertising();
int OnGAPEvent(ble_gap_event *event);
int OnDiscoveryEvent(uint16_t connectionHandle, const ble_gatt_error *error, const ble_gatt_svc *service);
int
OnCharacteristicDiscoveryEvent(uint16_t conn_handle, const ble_gatt_error *error,
const ble_gatt_chr *characteristic);
int OnCurrentTimeReadResult(uint16_t conn_handle, const ble_gatt_error *error, const ble_gatt_attr *attribute);
private:
static constexpr char* deviceName = "Pinetime-JF";
static constexpr uint16_t BleGatServiceCts = 0x1805;
typedef struct __attribute__((packed)) {
uint16_t year;
uint8_t month;
uint8_t dayofmonth;
uint8_t hour;
uint8_t minute;
uint8_t second;
uint8_t millis;
uint8_t reason;
} CtsData;
DateTime& dateTimeController;
DeviceInformationService deviceInformationService;
ble_uuid16_t ctsUuid;
static constexpr uint16_t bleGattCharacteristicCurrentTime = 0x2a2b;
ble_uuid16_t ctsCurrentTimeUuid;
CurrentTimeClient currentTimeClient;
uint8_t addrType;
uint16_t connectionHandle;
};