diff options
Diffstat (limited to 'src/generic/canbus.h')
-rw-r--r-- | src/generic/canbus.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/generic/canbus.h b/src/generic/canbus.h index a7df077d..a6463246 100644 --- a/src/generic/canbus.h +++ b/src/generic/canbus.h @@ -7,15 +7,24 @@ #define CANBUS_ID_ADMIN_RESP 0x3f1 #define CANBUS_UUID_LEN 6 +struct canbus_msg { + uint32_t id; + uint32_t dlc; + union { + uint8_t data[8]; + uint32_t data32[2]; + }; +}; + +#define CANMSG_DATA_LEN(msg) ((msg)->dlc > 8 ? 8 : (msg)->dlc) + // callbacks provided by board specific code -int canbus_read(uint32_t *id, uint8_t *data); -int canbus_send(uint32_t id, uint32_t len, uint8_t *data); +int canbus_send(struct canbus_msg *msg); void canbus_set_filter(uint32_t id); // canbus.c void canbus_notify_tx(void); -void canbus_notify_rx(void); -void canbus_process_data(uint32_t id, uint32_t len, uint8_t *data); +void canbus_process_data(struct canbus_msg *msg); void canbus_set_uuid(void *data); #endif // canbus.h |