Получение статуса шины (COMMAND_BUS_ERROR 0x41)¶
Данная команда от устройства возвращает статус шины в случае возникновения ошибки. Если в последствии ошибка на шине уходит, то приходит команда со статусом ошибки 0.
Команда со статусом шины может принимать следующие значения:
#define ERROR_CAN_STUFF 0x00000001U
#define ERROR_CAN_FORMAT 0x00000002U
#define ERROR_LIN_FRAME 0x00000002U
#define ERROR_CAN_ACK 0x00000004U
#define ERROR_CAN_TRANSMIT 0x00000008U
#define ERROR_CAN_CRC 0x00000010U
#define ERROR_BUS_OFF 0x00000020U
#define ERROR_PASSIVE 0x00000040U
#define ERROR_WARNING 0x00000080U
typedef struct {
CommandHeader header;
uint32_t error;
} __attribute__((packed)) BusError;
В поле header.flags будет указан номер канала, для которого пришло данное сообщение.