aboutsummaryrefslogtreecommitdiffstats
path: root/src/generic/canbus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/generic/canbus.h')
-rw-r--r--src/generic/canbus.h17
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