#ifndef MESSAGE_H #define MESSAGE_H #include #include #include typedef enum { UI_SPEED_MS, UI_BATTERY, UI_VOLTAGE, } MessageType; typedef union { int battery; int speed_ms; float voltage; } MessageData; typedef struct { MessageType type; MessageData data; int16_t crc; } Message; void message_create(Message *m, MessageType type, MessageData data); bool message_validate(const Message *m); int message_tests(void); uint16_t compute_crc16(const uint8_t *data, uint16_t len); #endif