Проект

Общее

Профиль

Задание режима расчёта контрольной суммы (FLAG_CONFIG_CRC_MODE 0x07)

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

enum CRC_MODES {
    LIN_CRC_MODE_CLASSIC   = 0x00,
    LIN_CRC_MODE_ENCHANCED = 0x01
};

typedef struct {
    CommandHeader header;
    uint8_t mode;
} __attribute__((packed)) ChannelConfigureCRCMode;

Запрос

Поле Значение
header.command 0x11
header.sequence порядковый номер запроса
header.flags FLAG_CHANNEL_x + FLAG_CONFIG_CRC_MODE
header.dSize 0x01
mode значение из CRC_MODES

Ответ
Если запрос успешно обработан и значение вида контрольной суммы задано из допустимого диапазона значений.

Поле Значение
command 0x91
sequence порядковый номер запроса
flags 0x00
dSize 0x00

Если запрос не обработан.

Поле Значение
command 0xFF
sequence порядковый номер запроса
flags 0x00
dSize 0x00

Пример
Задание расчёта классической контрольной суммы для канала 2.

⇒ 11 xx 47 01 00
⇐ 91 xx 00 00

Задание вида расчёта контрольной суммы для канала 2 с неправильным значением.

⇒ 11 xx 47 01 10
⇐ FF xx 00 00