2021-03-12 22:21:45 +00:00
|
|
|
#include <logger.h>
|
|
|
|
|
2023-09-23 13:37:35 +00:00
|
|
|
#include "TimeLib/TimeLib.h"
|
2021-05-18 23:17:23 +00:00
|
|
|
|
2021-01-04 22:10:23 +00:00
|
|
|
#include "Task.h"
|
2021-03-12 22:21:45 +00:00
|
|
|
#include "TaskNTP.h"
|
|
|
|
#include "project_configuration.h"
|
2021-01-03 21:43:35 +00:00
|
|
|
|
2021-03-12 22:21:45 +00:00
|
|
|
NTPTask::NTPTask() : Task(TASK_NTP, TaskNtp), _beginCalled(false) {
|
2021-01-03 21:43:35 +00:00
|
|
|
}
|
|
|
|
|
2021-03-12 22:21:45 +00:00
|
|
|
NTPTask::~NTPTask() {
|
2021-01-03 21:43:35 +00:00
|
|
|
}
|
|
|
|
|
2021-05-18 22:44:37 +00:00
|
|
|
bool NTPTask::setup(System &system) {
|
2021-05-18 23:08:37 +00:00
|
|
|
_ntpClient.setPoolServerName(system.getUserConfig()->ntpServer.c_str());
|
2021-03-12 22:21:45 +00:00
|
|
|
return true;
|
2021-01-03 21:43:35 +00:00
|
|
|
}
|
|
|
|
|
2021-05-18 22:44:37 +00:00
|
|
|
bool NTPTask::loop(System &system) {
|
2022-06-28 19:26:53 +00:00
|
|
|
if (!system.isWifiOrEthConnected()) {
|
2021-03-27 21:02:43 +00:00
|
|
|
return false;
|
|
|
|
}
|
2021-03-12 22:21:45 +00:00
|
|
|
if (!_beginCalled) {
|
2021-05-18 23:08:37 +00:00
|
|
|
_ntpClient.begin();
|
2021-03-12 22:21:45 +00:00
|
|
|
_beginCalled = true;
|
|
|
|
}
|
2021-05-18 23:08:37 +00:00
|
|
|
if (_ntpClient.update()) {
|
|
|
|
setTime(_ntpClient.getEpochTime());
|
2022-03-20 09:56:06 +00:00
|
|
|
system.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_INFO, getName(), "Current time: %s", _ntpClient.getFormattedTime().c_str());
|
2021-03-12 22:21:45 +00:00
|
|
|
}
|
2021-05-18 23:08:37 +00:00
|
|
|
_stateInfo = _ntpClient.getFormattedTime();
|
2021-03-12 22:21:45 +00:00
|
|
|
_state = Okay;
|
|
|
|
return true;
|
2021-01-03 21:43:35 +00:00
|
|
|
}
|