33 lines
755 B
C++
33 lines
755 B
C++
#ifndef Elex_DateTime_lib
|
|
#define Elex_DateTime_lib
|
|
|
|
#include "Arduino.h"
|
|
|
|
#define MAX_UL 0xfffffffful
|
|
|
|
class DateTime {
|
|
public:
|
|
/*
|
|
* 매 루프마다 반복 실행해 줄 것.
|
|
*/
|
|
void update();
|
|
/**
|
|
* 현재 시간 설정 (초)
|
|
* 기준 시간은 알아서 정할 것.
|
|
*/
|
|
void set(unsigned long sec_since_epoch);
|
|
/*
|
|
* 현재 시간 (초)
|
|
*/
|
|
unsigned long get();
|
|
private:
|
|
// 시간 값이 설정된 기준 시간. 오버플로가 발생한 때에도 업데이트된다.
|
|
unsigned long _set_time;
|
|
// 기준 시간 이후 경과한 시간 (밀리초)
|
|
unsigned long _elapsed_ms_after_set_time;
|
|
// 매 루프마다 업데이트됨.
|
|
unsigned long _current_ts, _last_ts;
|
|
};
|
|
|
|
#endif
|