Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Convert a date/time structure to NTP timestamp.

Files

clk.h/clk.c

Prototype

Code Block
languagecpp
CPU_BOOLEAN  Clk_DateTimeToTS_NTP (CLK_TS_SEC     *p_ts_ntp_sec,
                                   CLK_DATE_TIME  *p_date_time);


Arguments

p_ts_ntp_sec

Pointer to variable that will receive the NTP timestamp:

...

Date/time structure to convert.

Returned Values

DEF_OK, if date/time structure successfully converted.

DEF_FAIL, otherwise.

Required Configuration

Available only if CLK_CFG_NTP_EN is DEF_ENABLED in clk_cfg.h (see Module Configuration).

Notes / Warnings

Date/time structure (p_date_time) must be representable in NTP timestamp. Thus date to convert must be greater than or equal to CLK_NTP_EPOCH_YR_START and less than CLK_NTP_EPOCH_YR_END. Date/time should be set to local time with correct time zone offset (p_date_time->TZ_sec). Clk_DateTimeToTS_NTP() removes the time zone offset from the date/time to calculate and return an NTP timestamp at UTC+00.

Example Usage

Anchor
Listing - Clk_DateTimeToTS_NTP() Example Usage
Listing - Clk_DateTimeToTS_NTP() Example Usage

Code Block
languagecpp
titleListing - Clk_DateTimeToTS_NTP() Example Usage
linenumberstrue
CLK_TS_SEC     ts_ntp_sec;
CLK_DATE_TIME  date_time;
CPU_BOOLEAN    valid;
 
                                  /* 2010/09/18   11:11:11 UTC-05:00  */
valid = Clk_DateTimeMake(&date_time, 2010, 9, 18, 11, 11, 11, -18000);
if (valid == DEF_OK) {
    printf("Date/time successfully created");
} else {
    printf("Clock Date/time error\n\r");
}
 
valid = Clk_DateTimeToTS_NTP(&ts_ntp_sec, &date_time);
if (valid == DEF_OK) {
    printf("Timestamp = %u", ts_ntp_sec);
} else {
    printf("Clock Date/time to NTP timestamp error\n\r");
}