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