Skip to content

Commit b63bb79

Browse files
committed
DateTimeController: Remove SetTime tick parameter
The systick doesn't need to be updated when setting time. Also removed unused nrf_rtc.h includes.
1 parent eccea5a commit b63bb79

8 files changed

+9
-24
lines changed

src/components/ble/CurrentTimeClient.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "components/ble/CurrentTimeClient.h"
2-
#include <hal/nrf_rtc.h>
32
#include <nrf_log.h>
43
#include "components/datetime/DateTimeController.h"
54

@@ -88,8 +87,7 @@ int CurrentTimeClient::OnCurrentTimeReadResult(uint16_t conn_handle, const ble_g
8887
uint16_t year = ((uint16_t) result.year_MSO << 8) + result.year_LSO;
8988

9089
NRF_LOG_INFO("Received data: %d-%d-%d %d:%d:%d", year, result.month, result.dayofmonth, result.hour, result.minute, result.second);
91-
dateTimeController
92-
.SetTime(year, result.month, result.dayofmonth, result.hour, result.minute, result.second, nrf_rtc_counter_get(portNRF_RTC_REG));
90+
dateTimeController.SetTime(year, result.month, result.dayofmonth, result.hour, result.minute, result.second);
9391
} else {
9492
NRF_LOG_INFO("Error retrieving current time: %d", error->status);
9593
}

src/components/ble/CurrentTimeService.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "components/ble/CurrentTimeService.h"
2-
#include <hal/nrf_rtc.h>
32
#include <nrf_log.h>
43

54
using namespace Pinetime::Controllers;
@@ -50,8 +49,7 @@ int CurrentTimeService::OnCurrentTimeAccessed(struct ble_gatt_access_ctxt* ctxt)
5049

5150
NRF_LOG_INFO("Received data: %d-%d-%d %d:%d:%d", year, result.month, result.dayofmonth, result.hour, result.minute, result.second);
5251

53-
m_dateTimeController
54-
.SetTime(year, result.month, result.dayofmonth, result.hour, result.minute, result.second, nrf_rtc_counter_get(portNRF_RTC_REG));
52+
m_dateTimeController.SetTime(year, result.month, result.dayofmonth, result.hour, result.minute, result.second);
5553

5654
} else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
5755
CtsCurrentTimeData currentDateTime;

src/components/ble/NimbleController.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "components/ble/NimbleController.h"
22
#include <cstring>
33

4-
#include <hal/nrf_rtc.h>
54
#include <nrf_log.h>
65
#define min // workaround: nimble's min/max macros conflict with libstdc++
76
#define max

src/components/datetime/DateTimeController.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ void DateTime::SetCurrentTime(std::chrono::time_point<std::chrono::system_clock,
2020
UpdateTime(previousSystickCounter); // Update internal state without updating the time
2121
}
2222

23-
void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter) {
23+
void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) {
2424
std::tm tm = {
2525
/* .tm_sec = */ second,
2626
/* .tm_min = */ minute,
@@ -35,9 +35,8 @@ void DateTime::SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour,
3535

3636
NRF_LOG_INFO("%d %d %d ", day, month, year);
3737
NRF_LOG_INFO("%d %d %d ", hour, minute, second);
38-
previousSystickCounter = systickCounter;
3938

40-
UpdateTime(systickCounter);
39+
UpdateTime(previousSystickCounter);
4140
NRF_LOG_INFO("* %d %d %d ", this->hour, this->minute, this->second);
4241
NRF_LOG_INFO("* %d %d %d ", this->day, this->month, this->year);
4342

@@ -63,7 +62,7 @@ void DateTime::UpdateTime(uint32_t systickCounter) {
6362
* 1000 ms = 1024 ticks
6463
*/
6564
auto correctedDelta = systickDelta / 1024;
66-
auto rest = (systickDelta - (correctedDelta * 1024));
65+
auto rest = systickDelta % 1024;
6766
if (systickCounter >= rest) {
6867
previousSystickCounter = systickCounter - rest;
6968
} else {

src/components/datetime/DateTimeController.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ namespace Pinetime {
3131
December
3232
};
3333

34-
void SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter);
34+
void SetTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second);
3535

3636
/*
3737
* setter corresponding to the BLE Set Local Time characteristic.

src/displayapp/screens/settings/SettingSetDate.cpp

+2-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "displayapp/screens/settings/SettingSetDate.h"
22
#include "displayapp/screens/settings/SettingSetDateTime.h"
33
#include <lvgl/lvgl.h>
4-
#include <hal/nrf_rtc.h>
54
#include <nrf_log.h>
65
#include "displayapp/DisplayApp.h"
76
#include "displayapp/screens/Symbols.h"
@@ -96,13 +95,8 @@ void SettingSetDate::HandleButtonPress() {
9695
const uint8_t monthValue = monthCounter.GetValue();
9796
const uint8_t dayValue = dayCounter.GetValue();
9897
NRF_LOG_INFO("Setting date (manually) to %04d-%02d-%02d", yearValue, monthValue, dayValue);
99-
dateTimeController.SetTime(yearValue,
100-
monthValue,
101-
dayValue,
102-
dateTimeController.Hours(),
103-
dateTimeController.Minutes(),
104-
dateTimeController.Seconds(),
105-
nrf_rtc_counter_get(portNRF_RTC_REG));
98+
dateTimeController
99+
.SetTime(yearValue, monthValue, dayValue, dateTimeController.Hours(), dateTimeController.Minutes(), dateTimeController.Seconds());
106100
settingSetDateTime.Advance();
107101
}
108102

src/displayapp/screens/settings/SettingSetTime.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "displayapp/screens/settings/SettingSetTime.h"
22
#include <lvgl/lvgl.h>
3-
#include <hal/nrf_rtc.h>
43
#include <nrf_log.h>
54
#include "displayapp/DisplayApp.h"
65
#include "displayapp/screens/Symbols.h"
@@ -100,7 +99,6 @@ void SettingSetTime::SetTime() {
10099
dateTimeController.Day(),
101100
static_cast<uint8_t>(hoursValue),
102101
static_cast<uint8_t>(minutesValue),
103-
0,
104-
nrf_rtc_counter_get(portNRF_RTC_REG));
102+
0);
105103
settingSetDateTime.Quit();
106104
}

src/main.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// nrf
2-
#include <hal/nrf_rtc.h>
32
#include <hal/nrf_wdt.h>
43
#include <legacy/nrf_drv_clock.h>
54
#include <libraries/gpiote/app_gpiote.h>

0 commit comments

Comments
 (0)