NTP client class. More...

#include <NtpClient.h>

Inheritance diagram for NtpClient:
[legend]
Collaboration diagram for NtpClient:
[legend]

Public Member Functions

 NtpClient ()
 Instantiates NTP client object. More...
 
 NtpClient (NtpTimeResultDelegate onTimeReceivedCb)
 Instantiates NTP client object. More...
 
 NtpClient (const String &reqServer, unsigned reqIntervalSeconds, NtpTimeResultDelegate onTimeReceivedCb=nullptr)
 Instantiates NTP client object. More...
 
void requestTime ()
 Request time from NTP server. More...
 
void setNtpServer (const String &server)
 Set the NTP server. More...
 
void setAutoQuery (bool autoQuery)
 Enable / disable periodic query. More...
 
void setAutoQueryInterval (unsigned seconds)
 Set query period. More...
 
void setAutoUpdateSystemClock (bool autoUpdateClock)
 Enable / disable update of system clock. More...
 

Protected Member Functions

void onReceive (pbuf *buf, IpAddress remoteIP, uint16_t remotePort) override
 Handle UDP message reception. More...
 
void internalRequestTime (IpAddress serverIp)
 Send time request to NTP server. More...
 
void startTimer (uint32_t milliseconds)
 Start the timer running. More...
 
void stopTimer ()
 
- Protected Member Functions inherited from UdpConnection
bool initialize (udp_pcb *pcb=nullptr)
 
 UdpConnection ()
 
 UdpConnection (UdpConnectionDataDelegate dataHandler)
 
virtual ~UdpConnection ()
 
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)
 
bool setMulticast (IpAddress ip)
 Sets the UDP multicast IP. More...
 
bool setMulticastTtl (size_t ttl)
 Sets the UDP multicast Time-To-Live(TTL). More...
 
- Protected Member Functions inherited from IpConnection
bool joinMulticastGroup (IpAddress localIp, IpAddress multicastIp)
 Uses IGMP to add a local network interface to multicast group. More...
 
bool joinMulticastGroup (IpAddress multicastIp)
 Uses IGMP to add all local network interfaces to multicast group. More...
 
bool leaveMulticastGroup (IpAddress localIp, IpAddress multicastIp)
 Uses IGMP to remove a local network interface from multicast group. More...
 
bool leaveMulticastGroup (IpAddress multicastIp)
 Uses IGMP to remove all local network interfaces from multicast group. More...
 

Protected Attributes

String server
 IP address or Hostname of NTP server. More...
 
NtpTimeResultDelegate delegateCompleted = nullptr
 NTP result handler delegate. More...
 
bool autoUpdateSystemClock = false
 True to update system clock with NTP time. More...
 
bool autoQueryEnabled = false
 
unsigned autoQuerySeconds = NTP_DEFAULT_AUTOQUERY_SECONDS
 
Timer timer
 Deals with timeouts, retries and autoquery updates. More...
 
- Protected Attributes inherited from UdpConnection
udp_pcb * udp = nullptr
 
UdpConnectionDataDelegate onDataCallback = nullptr
 

Additional Inherited Members

- Static Protected Member Functions inherited from UdpConnection
static void staticOnReceive (void *arg, struct udp_pcb *pcb, struct pbuf *p, LWIP_IP_ADDR_T *addr, u16_t port)
 

Detailed Description

NTP client class.

Constructor & Destructor Documentation

◆ NtpClient() [1/3]

NtpClient::NtpClient ( )
inline

Instantiates NTP client object.

◆ NtpClient() [2/3]

NtpClient::NtpClient ( NtpTimeResultDelegate  onTimeReceivedCb)
inline

Instantiates NTP client object.

Parameters
onTimeReceivedCbCallback delegate to be called when NTP time result is received

◆ NtpClient() [3/3]

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

Instantiates NTP client object.

Parameters
reqServerIP address or hostname of NTP server; nullptr to use default server
reqIntervalSecondsQuantity of seconds between NTP requests
onTimeReceivedCbCallback delegate to be called when NTP time result is received (Default: None)

Member Function Documentation

◆ internalRequestTime()

void NtpClient::internalRequestTime ( IpAddress  serverIp)
protected

Send time request to NTP server.

Parameters
serverIpIP address of NTP server

◆ onReceive()

void NtpClient::onReceive ( pbuf *  buf,
IpAddress  remoteIP,
uint16_t  remotePort 
)
overrideprotectedvirtual

Handle UDP message reception.

Parameters
bufPointer to data buffer containing UDP payload
remoteIPIP address of remote host
remotePortPort number of remote host

Reimplemented from UdpConnection.

◆ requestTime()

void NtpClient::requestTime ( )

Request time from NTP server.

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

◆ setAutoQuery()

void NtpClient::setAutoQuery ( bool  autoQuery)

Enable / disable periodic query.

Parameters
autoQueryTrue to enable periodic query of NTP server

◆ setAutoQueryInterval()

void NtpClient::setAutoQueryInterval ( unsigned  seconds)

Set query period.

Parameters
secondsPeriod in seconds between periodic queries

◆ setAutoUpdateSystemClock()

void NtpClient::setAutoUpdateSystemClock ( bool  autoUpdateClock)
inline

Enable / disable update of system clock.

Parameters
autoUpdateClockTrue to update system clock with NTP result.

◆ setNtpServer()

void NtpClient::setNtpServer ( const String server)
inline

Set the NTP server.

Parameters
serverIP address or hostname of NTP server

◆ startTimer()

void NtpClient::startTimer ( uint32_t  milliseconds)
inlineprotected

Start the timer running.

Parameters
millisecondsTime to run in milliseconds

◆ stopTimer()

void NtpClient::stopTimer ( )
inlineprotected

Member Data Documentation

◆ autoQueryEnabled

bool NtpClient::autoQueryEnabled = false
protected

◆ autoQuerySeconds

unsigned NtpClient::autoQuerySeconds = NTP_DEFAULT_AUTOQUERY_SECONDS
protected

◆ autoUpdateSystemClock

bool NtpClient::autoUpdateSystemClock = false
protected

True to update system clock with NTP time.

◆ delegateCompleted

NtpTimeResultDelegate NtpClient::delegateCompleted = nullptr
protected

NTP result handler delegate.

◆ server

String NtpClient::server
protected

IP address or Hostname of NTP server.

◆ timer

Timer NtpClient::timer
protected

Deals with timeouts, retries and autoquery updates.


The documentation for this class was generated from the following file: