Clk_DateTimeToTS_NTP()
Convert a date/time structure to NTP timestamp.
Files
clk.h/clk.c
Prototype
Code Block | ||
---|---|---|
| ||
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:
In seconds UTC+00, if no errors;CLK_TS_SEC_NONE
, otherwise.
p_date_time
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 section 3-1-1 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 | ||||
---|---|---|---|---|
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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");
} |