Skip to content

Latest commit

 

History

History
50 lines (37 loc) · 1.67 KB

File metadata and controls

50 lines (37 loc) · 1.67 KB

coreSNTP version >=v2.0.0 Migration Guide

With coreSNTP versions >=v2.0.0, there are breaking changes that need to be addressed when upgrading.

Breaking Changes

  • The Sntp_ConvertToUnixTime function now uses uint32_t * instead of UnixTime_t * for the Unix time seconds parameter. This change was made because:
    • A uint32_t Unix 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

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 );