NTP: Network Time Protocol

https://en.m.wikipedia.org/wiki/Network_Time_Protocol

Client API

typedef Delegate<void(NtpClient &client, time_t ntpTime)> NtpTimeResultDelegate
NTP_PORT
NTP_PACKET_SIZE
NTP_VERSION
NTP_MODE_CLIENT
NTP_MODE_SERVER
NTP_DEFAULT_SERVER
NTP_DEFAULT_AUTOQUERY_SECONDS
NTP_MIN_AUTOQUERY_SECONDS

Minimum autoquery interval.

NTP_CONNECTION_TIMEOUT_MS

Time to retry query when network connection unavailable.

NTP_RESPONSE_TIMEOUT_MS

Time to wait before retrying NTP query.

class NtpClient : protected UdpConnection
#include <NtpClient.h>

NTP client class.

Public Functions

NtpClient()

Instantiates NTP client object.

NtpClient(NtpTimeResultDelegate onTimeReceivedCb)

Instantiates NTP client object.

Parameters
  • onTimeReceivedCb: Callback delegate to be called when NTP time result is received

NtpClient(const String &reqServer, unsigned reqIntervalSeconds, NtpTimeResultDelegate onTimeReceivedCb = nullptr)

Instantiates NTP client object.

Parameters
  • reqServer: IP address or hostname of NTP server; nullptr to use default server
  • reqIntervalSeconds: Quantity of seconds between NTP requests
  • onTimeReceivedCb: Callback delegate to be called when NTP time result is received (Default: None)

void requestTime()

Request time from NTP server.

Note
Instigates request. Result is handled by NTP result handler function if defined

void setNtpServer(const String &server)

Set the NTP server.

Parameters
  • server: IP address or hostname of NTP server

void setAutoQuery(bool autoQuery)

Enable / disable periodic query.

Parameters
  • autoQuery: True to enable periodic query of NTP server

void setAutoQueryInterval(unsigned seconds)

Set query period.

Parameters
  • seconds: Period in seconds between periodic queries

void setAutoUpdateSystemClock(bool autoUpdateClock)

Enable / disable update of system clock.

Parameters
  • autoUpdateClock: True to update system clock with NTP result.

Protected Functions

virtual bool listen(int port)
virtual bool connect(IpAddress ip, uint16_t port)
virtual void close()
virtual bool send(const char *data, int length)
bool sendString(const char *data)
bool sendString(const String &data)
virtual bool sendTo(IpAddress remoteIP, uint16_t remotePort, const char *data, int length)
bool sendStringTo(IpAddress remoteIP, uint16_t remotePort, const char *data)
bool sendStringTo(IpAddress remoteIP, uint16_t remotePort, const String &data)