26 lines
562 B
C++
26 lines
562 B
C++
#include "Arduino.h"
|
|
#include "datetime.h"
|
|
|
|
unsigned long DateTime::get(){
|
|
return _set_time + _elapsed_ms_after_set_time/1000;
|
|
}
|
|
|
|
void DateTime::set(unsigned long sec_since_epoch){
|
|
_set_time = sec_since_epoch;
|
|
_elapsed_ms_after_set_time = 0;
|
|
}
|
|
|
|
void DateTime::update(){
|
|
_current_ts = millis();
|
|
if (_current_ts < _last_ts) {
|
|
_set_time = _set_time + _elapsed_ms_after_set_time/1000;
|
|
_elapsed_ms_after_set_time = _current_ts + (MAX_UL - _last_ts);
|
|
|
|
} else {
|
|
_elapsed_ms_after_set_time += _current_ts;
|
|
|
|
}
|
|
|
|
_last_ts = _current_ts;
|
|
}
|