#ifndef __CANBUS_H__ #define __CANBUS_H__ #include #include #define CANBUS_RX_THREAD_STACK_SIZE (512) #define CANBUS_RX_THREAD_PRIORITY (-2) typedef struct { /** Standard (11-bit) or extended (29-bit) CAN identifier. */ uint32_t id; /** Data Length Code (DLC) indicating data length in bytes. */ uint8_t dlc; /** Flags. */ uint8_t flags; /** The frame payload data. */ union { /** Payload data accessed as unsigned 8 bit values. */ uint8_t data[8]; uint16_t data_16[4]; uint32_t data_32[2]; } data; } can_frame_t; int canbus_init(void); int canbus_send_message(uint8_t destination_node, uint8_t register_address, uint8_t *data, size_t data_length); #endif // __CANBUS_H__