mirror of https://github.com/commaai/panda.git
30 lines
753 B
C
30 lines
753 B
C
#pragma once
|
|
|
|
// bump this when changing the CAN packet
|
|
#define CAN_PACKET_VERSION 4
|
|
|
|
#define CANPACKET_HEAD_SIZE 6U
|
|
|
|
#if !defined(STM32F4)
|
|
#define CANFD
|
|
#define CANPACKET_DATA_SIZE_MAX 64U
|
|
#else
|
|
#define CANPACKET_DATA_SIZE_MAX 8U
|
|
#endif
|
|
|
|
typedef struct {
|
|
unsigned char reserved : 1;
|
|
unsigned char bus : 3;
|
|
unsigned char data_len_code : 4; // lookup length with dlc_to_len
|
|
unsigned char rejected : 1;
|
|
unsigned char returned : 1;
|
|
unsigned char extended : 1;
|
|
unsigned int addr : 29;
|
|
unsigned char checksum;
|
|
unsigned char data[CANPACKET_DATA_SIZE_MAX];
|
|
} __attribute__((packed, aligned(4))) CANPacket_t;
|
|
|
|
#define GET_BUS(msg) ((msg)->bus)
|
|
#define GET_LEN(msg) (dlc_to_len[(msg)->data_len_code])
|
|
#define GET_ADDR(msg) ((msg)->addr)
|