irrigation_system/software/lib/canbus.h

29 lines
785 B
C

#ifndef __CANBUS_H__
#define __CANBUS_H__
#include <zephyr/drivers/can.h>
#include <zephyr/kernel.h>
#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__