31 lines
566 B
C
31 lines
566 B
C
#ifndef MESSAGE_H
|
|
#define MESSAGE_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
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
|