Проект

Общее

Профиль

Получение статуса шины (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 будет указан номер канала, для которого пришло данное сообщение.