diff options
author | Adam Pigg <adam@piggz.co.uk> | 2020-05-05 20:53:31 +0100 |
---|---|---|
committer | Adam Pigg <adam@piggz.co.uk> | 2020-05-05 20:53:31 +0100 |
commit | a9a5bd0358c8e914852f5ad9ae0984b4b223c244 (patch) | |
tree | c3f833e2c6dc4e08c8869c7b3eeffe1905b73f3f /src/Components | |
parent | 9935fb193c7f8c109d8fc4de6e030d4146f35f5f (diff) |
Add support for reading the current time
Diffstat (limited to 'src/Components')
-rw-r--r-- | src/Components/Ble/CurrentTimeService.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Components/Ble/CurrentTimeService.cpp b/src/Components/Ble/CurrentTimeService.cpp index 0af20dd3..a44a18a5 100644 --- a/src/Components/Ble/CurrentTimeService.cpp +++ b/src/Components/Ble/CurrentTimeService.cpp @@ -34,7 +34,22 @@ int CurrentTimeService::OnTimeAccessed(uint16_t conn_handle, uint16_t attr_handl m_dateTimeController.SetTime(result.year, result.month, result.dayofmonth, 0, result.hour, result.minute, result.second, nrf_rtc_counter_get(portNRF_RTC_REG)); + } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) { + CtsData currentDateTime; + currentDateTime.year = m_dateTimeController.Year(); + currentDateTime.month = static_cast<u_int8_t>(m_dateTimeController.Month()); + currentDateTime.dayofmonth = m_dateTimeController.Day(); + currentDateTime.hour = m_dateTimeController.Hours(); + currentDateTime.minute = m_dateTimeController.Minutes(); + currentDateTime.second = m_dateTimeController.Seconds(); + currentDateTime.millis = 0; + + + int res = os_mbuf_append(ctxt->om, ¤tDateTime, sizeof(CtsData)); + return (res == 0) ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; + } + //!TODO need to support reading the time. return 0; } |