1#ifndef __RENSSELAERMOTORSPORT_CAN_H__
2#define __RENSSELAERMOTORSPORT_CAN_H__
15#define MAX_SIGNAL_NAME_LENGTH 32
16#define MAX_UNIT_NAME_LENGTH 32
17#define MAX_NODE_NAME_LENGTH 32
41#define MAX_MESSAGE_NAME_LENGTH 32
45typedef struct CAN_RxHeaderTypeDef {
56typedef struct CAN_TxHeaderTypeDef {
62 uint32_t TransmitGlobalTime;
66#define CAN_ID_STD 0x00
67#define CAN_ID_EXT 0x04
68#define CAN_RTR_DATA 0x00
69#define CAN_RTR_REMOTE 0x02
95#define MAX_MESSAGES 128
#define MAX_NODE_NAME_LENGTH
int init_CANBus(CANBus bus)
Initializes the CANBus struct.
#define MAX_UNIT_NAME_LENGTH
#define MAX_SIGNAL_NAME_LENGTH
void parseSignals(CAN_Message_Template *message, CAN_Message *can_message)
Parses signals in a CAN message.
void parseSignal(CAN_Signal_Template *signal, CAN_Signal *can_signal, CAN_Message *can_message)
Parses a CAN signal.
void parseMessage(CAN_MessageList *messages, CAN_Message *can_message)
Parses a CAN message.
#define MAX_MESSAGE_NAME_LENGTH
int add_message(CANBus bus, CAN_Message_Template message)
Adds a message to the CAN message list.
int add_message_lop(CANBus bus, int id, int dlc, int ide, int rtr, const char *name, const char *sender, int signal_count, CAN_Signal_Template *signals)
Adds a message to the CAN message list by passing in the individual message parameters hence "LOP" (L...
int send_CAN_message(CANBus bus, CANProtocol protocol, uint32_t id, uint8_t *data, uint8_t len)
Sends a CAN message.
int load_dbc_file(CANBus bus, const unsigned char *filename)
Loads a DBC file into the CAN database. Makes the messages and signals and stores them in the list.
void receive_CAN_message(CAN_RxHeaderTypeDef *header, uint8_t *data, CANBus bus)
Receives a CAN message.
void print_CAN_Messages_Lists()
Prints the CAN message list.
CAN_RxHeaderTypeDef header
char unit[MAX_UNIT_NAME_LENGTH]
char reciever[MAX_NODE_NAME_LENGTH]
char name[MAX_SIGNAL_NAME_LENGTH]