#ifndef __CANBUS_H__ #define __CANBUS_H__ #include #include #include "canbus_registers.h" #define CANBUS_RX_THREAD_STACK_SIZE (512) #define CANBUS_RX_THREAD_PRIORITY (5) #define CANBUS_RX_MSGQ_SIZE (5) typedef struct can_frame_t{ /** 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_register(uint8_t node_id, uint8_t register_address, uint8_t *data, size_t data_length); int canbus_request_register(uint8_t node_id, uint8_t register_address); #endif // __CANBUS_H__