~~ODT~~
Time is recorded in a data file much like any other data source. The purpose of the Time Data Format 1 packet is to provide a correlation between an external clock source and the recorder internal 10 MHz RTC. The correlation between the RTC and clock time is described in more detail in paragraph 6.6.
The time data packet begins with the CSDW shown in Figure 6-18.
struct SuTimeF1_ChanSpec { uint32_t uTimeSrc : 4; // Time source uint32_t uTimeFmt : 4; // Time format uint32_t bLeapYear : 1; // Leap year uint32_t uDateFmt : 1; // Date format uint32_t uReserved1 : 2; uint32_t uReserved2 : 16; };
The uTimeSrc field indicates the source is for the time used. Note that this field changed slightly between the 2004 and the 2005 release of Chapter 10. The uTimeFmt field is used to indicate the nature and type of the source of external time source applied to the recorder. The uDataFmt field is used to determine how to interpret the time data that follows. Time representation in Day (i.e. Day of the Year) format is shown in Figure 6-19. Time representation in Day-Month-Year format is shown in Figure 6-20. The bLeapYear field in the CSDW is useful to convert Day of the Year to Day and Month when the year is not known.
// Time message - Day format struct SuTime_MsgDayFmt { uint16_t uTmn : 4; // Tens of milliseconds uint16_t uHmn : 4; // Hundreds of milliseconds uint16_t uSn : 4; // Units of seconds uint16_t uTSn : 3; // Tens of seconds uint16_t Reserved1 : 1; // 0 uint16_t uMn : 4; // Units of minutes uint16_t uTMn : 3; // Tens of minutes uint16_t Reserved2 : 1; // 0 uint16_t uHn : 4; // Units of hours uint16_t uTHn : 2; // Tens of Hours uint16_t Reserved3 : 2; // 0 uint16_t uDn : 4; // Units of day number uint16_t uTDn : 4; // Tens of day number uint16_t uHDn : 2; // Hundreds of day number uint16_t Reserved4 : 6; // 0 };
// Time message - DMY format struct SuTime_MsgDmyFmt { uint16_t uTmn : 4; // Tens of milliseconds uint16_t uHmn : 4; // Hundreds of milliseconds uint16_t uSn : 4; // Units of seconds uint16_t uTSn : 3; // Tens of seconds uint16_t Reserved1 : 1; // 0 uint16_t uMn : 4; // Units of minutes uint16_t uTMn : 3; // Tens of minutes uint16_t Reserved2 : 1; // 0 uint16_t uHn : 4; // Units of hours uint16_t uTHn : 2; // Tens of Hours uint16_t Reserved3 : 2; // 0 uint16_t uDn : 4; // Units of day number uint16_t uTDn : 4; // Tens of day number uint16_t uOn : 4; // Units of month number uint16_t uTOn : 1; // Tens of month number uint16_t Reserved4 : 3; // 0 uint16_t uYn : 4; // Units of year number uint16_t uTYn : 4; // Tens of year number uint16_t uHYn : 4; // Hundreds of year number uint16_t uOYn : 2; // Thousands of year number uint16_t Reserved5 : 2; // 0 };
Reserved for future use