Задание скорости взаимодействия с шиной LIN (FLAG_CONFIG_BUS_SPEED 0x00)¶
Для настройки канала устройства используется структура:
typedef struct {
CommandHeader header;
uint8_t speed;
} __attribute__((packed)) ChannelConfigureSpeed;
Здесь в поле speed заносится индекс предзаданной скорости.
Доступны следующие значения:
enum LIN_BITRATE {
LIN_BITRATE_2400 = 0,
LIN_BITRATE_9600,
LIN_BITRATE_10400,
LIN_BITRATE_14400,
LIN_BITRATE_15600,
LIN_BITRATE_19200,
LIN_BITRATE_20000,
LIN_BITRATE_38400
};
Запрос
Поле | Значение |
header.command | 0x11 |
header.sequence | порядковый номер запроса |
header.flags | FLAG_CHANNEL_x + FLAG_CONFIG_BUS_SPEED |
header.dSize | 0x01 |
speed | значение из LIN_BITRATE |
Ответ
Если запрос успешно обработан и значение индекса скорости в поле speed задано из допустимого диапазона значений.
Поле | Значение |
command | 0x91 |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Если запрос не обработан.
Поле | Значение |
command | 0xFF |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Пример
Настройка канала 3 на скорость 19200 бит.
⇒ 11 xx 60 01 05
⇐ 91 xx 00 00
Настройка канала 3 с заданием неверного индекса скорости.
⇒ 11 xx 60 01 10
⇐ FF xx 00 00