Added functions for changing the timeOffset and updateInterval later

I added two functions:
```cpp
setTimeOffset(int timeOffset)
```

Allows you to set the offset at a later stage (e.g. upon timezone
changes or change from summertime to standard time)

```cpp
setUpdateInterval(int updateInterval)
```

Allows to set the interval at a later point. This was helpful when not
setting an offset at initialization and e.g. for other sync times during
special occasions.
This commit is contained in:
Uli 2016-05-14 12:04:18 +02:00
parent e0fe10f578
commit ac19e0d7db
3 changed files with 22 additions and 3 deletions

View File

@ -140,6 +140,14 @@ void NTPClient::end() {
this->_udpSetup = false; this->_udpSetup = false;
} }
void NTPClient::setTimeOffset(int timeOffset) {
this->_timeOffset = timeOffset;
}
void NTPClient::setUpdateInterval(int updateInterval) {
this->_updateInterval = updateInterval;
}
void NTPClient::sendNTPPacket() { void NTPClient::sendNTPPacket() {
// set all bytes in the buffer to 0 // set all bytes in the buffer to 0
memset(this->_packetBuffer, 0, NTP_PACKET_SIZE); memset(this->_packetBuffer, 0, NTP_PACKET_SIZE);
@ -161,4 +169,3 @@ void NTPClient::sendNTPPacket() {
this->_udp->write(this->_packetBuffer, NTP_PACKET_SIZE); this->_udp->write(this->_packetBuffer, NTP_PACKET_SIZE);
this->_udp->endPacket(); this->_udp->endPacket();
} }

View File

@ -63,6 +63,17 @@ class NTPClient {
int getMinutes(); int getMinutes();
int getSeconds(); int getSeconds();
/**
* Changes the time offset. Useful for changing timezones dynamically
*/
void setTimeOffset(int timeOffset);
/**
* Set the update interval to another frequency. E.g. useful when the
* timeOffset should not be set in the constructor
*/
void setUpdateInterval(int updateInterval);
/** /**
* @return time formatted like `hh:mm:ss` * @return time formatted like `hh:mm:ss`
*/ */

View File

@ -10,8 +10,9 @@ const char *password = "<PASSWORD>";
WiFiUDP ntpUDP; WiFiUDP ntpUDP;
// You can specify the time server pool and the offset, (in seconds) // You can specify the time server pool and the offset (in seconds, can be
// additionaly you can specify the update interval (in milliseconds). // changed later with setTimeOffset() ). Additionaly you can specify the
// update interval (in milliseconds, can be changed using setUpdateInterval() ).
NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000); NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000);
void setup(){ void setup(){