/*********************** * Message Definitions * ***********************/ #include #define MSG_HEADER 0x1234 #define MSG_MAXID 2 #pragma pack(1) typedef enum { MSG_ID_SYNC, // Time synchronization MSG_ID_EVENT, // Event occurred } msgid_t; typedef struct { uint32_t seconds; // Seconds since 1970 (without leap seconds) uint32_t nanosec; // Nanoseconds since 'seconds' } ntime_t; typedef struct { uint16_t header; // Message Header uint16_t msgid; // Message ID uint16_t length; // Body length uint16_t cksum; // Body checksum } header_t; typedef struct { uint32_t seq; // Current sequence counter ntime_t time; // Time of previous message } sync_msg_t; typedef struct { uint16_t device; // Device ID uint16_t event; // Event ID ntime_t time; // Timestamp } event_msg_t; #pragma pack()