2021-01-03 22:43:35 +01:00
|
|
|
#include <logger.h>
|
|
|
|
|
#include <TimeLib.h>
|
|
|
|
|
#include "project_configuration.h"
|
|
|
|
|
#include "TaskNTP.h"
|
2021-01-04 23:10:23 +01:00
|
|
|
#include "Task.h"
|
2021-01-03 22:43:35 +01:00
|
|
|
|
|
|
|
|
NTPTask::NTPTask()
|
2021-01-09 13:38:48 +01:00
|
|
|
: Task(TASK_NTP, TaskNtp), _beginCalled(false)
|
2021-01-03 22:43:35 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NTPTask::~NTPTask()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-04 23:10:23 +01:00
|
|
|
bool NTPTask::setup(std::shared_ptr<Configuration> config, std::shared_ptr<BoardConfig> boardConfig)
|
2021-01-03 22:43:35 +01:00
|
|
|
{
|
|
|
|
|
_ntpClient = std::shared_ptr<NTPClient>(new NTPClient(config->ntpServer.c_str()));
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool NTPTask::loop(std::shared_ptr<Configuration> config)
|
|
|
|
|
{
|
2021-01-05 23:57:59 +01:00
|
|
|
if(!_beginCalled)
|
|
|
|
|
{
|
|
|
|
|
_ntpClient->begin();
|
|
|
|
|
_beginCalled = true;
|
|
|
|
|
}
|
2021-01-03 22:43:35 +01:00
|
|
|
if(_ntpClient->update())
|
|
|
|
|
{
|
|
|
|
|
setTime(_ntpClient->getEpochTime());
|
2021-01-05 23:57:59 +01:00
|
|
|
logPrintI("Current time: ");
|
|
|
|
|
logPrintlnI(_ntpClient->getFormattedTime());
|
2021-01-03 22:43:35 +01:00
|
|
|
}
|
2021-01-30 22:47:24 +01:00
|
|
|
_stateInfo = _ntpClient->getFormattedTime();
|
|
|
|
|
_state = Okay;
|
2021-01-03 22:43:35 +01:00
|
|
|
return true;
|
|
|
|
|
}
|