Проект

Общее

Профиль

Получение статуса шины (COMMAND_BUS_ERROR 0x48)

Данная команда от устройства возвращает статус шины в случае возникновения ошибки. Если в последствии ошибка на шине уходит, то приходит команда со статусом ошибки 0.
Команда со статусом шины может принимать следующие значения:

#define ERROR_CAN_STUFF                 0x00000001U
#define ERROR_CAN_FORMAT                0x00000002U
#define ERROR_LIN_FRAME                 0x00000002U
#define ERROR_CAN_ACK                   0x00000004U
#define ERROR_CAN_CRC                   0x00000008U
#define ERROR_CAN_TRANSMIT1             0x00000010U
#define ERROR_CAN_TRANSMIT0             0x00000020U
#define ERROR_BUS_OFF                   0x00000040U
#define ERROR_PASSIVE                   0x00000080U
#define ERROR_WARNING                   0x00000100U
#define ERROR_OVERFLOW                  0x00000200U
#define ERROR_DATA_STUFF                0x00010000U
#define ERROR_DATA_FORMAT               0x00020000U
#define ERROR_DATA_ACK                  0x00040000U
#define ERROR_DATA_CRC                  0x00080000U
#define ERROR_DATA_TRANSMIT1            0x00100000U
#define ERROR_DATA_TRANSMIT0            0x00200000U

typedef struct {
    CommandHeader header;
    uint32_t error;
} __attribute__((packed)) BusError;

В поле header.flags будет указан номер канала, для которого пришло данное сообщение.