With coreSNTP versions >=v2.0.0, there are breaking changes that need to be addressed when upgrading.
- The
Sntp_ConvertToUnixTimefunction now usesuint32_t *instead ofUnixTime_t *for the Unix time seconds parameter. This change was made because:- A
uint32_tUnix timestamp can represent dates until February 7, 2106 06:28:15 UTC - Beyond this date, we cannot differentiate between NTP era 0 and era 1 timestamps, thus it does not need to be a
uint64_t
- A
Thus, the signature of Sntp_ConvertToUnixTime changed from:
SntpStatus_t Sntp_ConvertToUnixTime( const SntpTimestamp_t * pSntpTime,
UnixTime_t * pUnixTimeSecs,
uint32_t * pUnixTimeMicrosecs );to:
SntpStatus_t Sntp_ConvertToUnixTime( const SntpTimestamp_t * pSntpTime,
uint32_t * pUnixTimeSecs,
uint32_t * pUnixTimeMicrosecs );To migrate, update any code that uses UnixTime_t for storing the Unix time seconds value to use uint32_t instead.
Old Code Snippet:
SntpTimestamp_t sntpTime;
UnixTime_t unixTimeSecs;
uint32_t unixTimeMicrosecs;
SntpStatus_t status;
// Assume sntpTime has been populated from an SNTP response
status = Sntp_ConvertToUnixTime( &sntpTime, &unixTimeSecs, &unixTimeMicrosecs );New Code Snippet:
SntpTimestamp_t sntpTime;
uint32_t unixTimeSecs;
uint32_t unixTimeMicrosecs;
SntpStatus_t status;
// Assume sntpTime has been populated from an SNTP response
status = Sntp_ConvertToUnixTime( &sntpTime, &unixTimeSecs, &unixTimeMicrosecs );