AceTime
0.7
Date and time classes for Arduino that support timezones from the TZ Database, and a system clock that can synchronize from an NTP server or an RTC chip.
|
Base class for objects that provide and store time. More...
#include <Clock.h>
Public Member Functions | |
virtual | ~Clock () |
Virtual destructor. More... | |
virtual acetime_t | getNow () const =0 |
Return the number of seconds since the AceTime epoch (2000-01-01T00:00:00Z). More... | |
virtual void | sendRequest () const |
Send a time request asynchronously. More... | |
virtual bool | isResponseReady () const |
Return true if a response is ready. More... | |
virtual acetime_t | readResponse () const |
Returns number of seconds since AceTime epoch (2000-01-01). More... | |
virtual void | setNow (acetime_t) |
Set the time to the indicated seconds. More... | |
Static Public Attributes | |
static const acetime_t | kInvalidSeconds = LocalTime::kInvalidSeconds |
Base class for objects that provide and store time.
For example, a DS3231 RTC chip, an NTP client, or a GPS module.
|
inlinevirtual |
|
pure virtual |
Return the number of seconds since the AceTime epoch (2000-01-01T00:00:00Z).
Returns kInvalidSeconds if an error has occured.
This is a blocking call. Some clocks (e.g. NTP client) this may take many seconds. On those clocks, use the asynchronous methods (sendRequest(), isResponseReady(), and readResponse()) instead.
Implemented in ace_time::clock::NtpClock, ace_time::clock::SystemClock, and ace_time::clock::DS3231Clock.
|
inlinevirtual |
Return true if a response is ready.
Reimplemented in ace_time::clock::NtpClock.
|
inlinevirtual |
Returns number of seconds since AceTime epoch (2000-01-01).
Return kInvalidSeconds if there is an error. Valid only if isResponseReady() returns true.
Reimplemented in ace_time::clock::NtpClock.
|
inlinevirtual |
Send a time request asynchronously.
Reimplemented in ace_time::clock::NtpClock.
|
inlinevirtual |
Set the time to the indicated seconds.
Calling with a value of kInvalidSeconds indicates an error condition, so the method should do nothing. Some clocks do not support this feature, for example, NTP or GPS clocks and this method will be a no-op.
Reimplemented in ace_time::clock::SystemClock, and ace_time::clock::DS3231Clock.