Проект

Общее

Профиль

Задержка обработки сигнала IDLE (FLAG_CONFIG_IDLE_DELAY 0x08) deprecated

Иногда случается, что при мониторинге взаимодействия Master и Slave устройства последнее отвечает с задержкой, большей чем предусматривает стандарт. Поэтому мы предусмотрели возможность установить задержку по обработке сигнала IDLE, возникающего на шине. Для настройки данного параметра используется структура:

enum LIN_IDLE_DELAY {
    LIN_IDLE_DELAY_None = 0,
    LIN_IDLE_DELAY_100us,
    LIN_IDLE_DELAY_200us,
    LIN_IDLE_DELAY_250us,
    LIN_IDLE_DELAY_500us,
    LIN_IDLE_DELAY_750us,
    LIN_IDLE_DELAY_1000us,
    LIN_IDLE_DELAY_1500us,
    LIN_IDLE_DELAY_2000us
};
typedef struct {
    CommandHeader header;
    uint8_t delay;
} __attribute__((packed)) ChannelConfigureIdleDelay;

Здесь в поле delay заносится значение индекса задержки.

Запрос

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

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

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

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

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

Пример
Настройка задержки обработки IDLE в канале 3 на 1000 микросекунд.

⇒ 11 xx 68 01 06
⇐ 91 xx 00 00

Настройка канала 3 с заданием неверного индекса задержки обработки IDLE.

⇒ 11 xx 68 01 10
⇐ FF xx 00 00