Подключить терминирующий резистор (FLAG_CONFIG_TERMINATOR 0x05) deprecated¶
Некоторые устройства позволяют задействовать терминирующий резистор на 120Ом между линиями CAN-H и CAN-L. В таком случае используется данная настройка со следующей структурой обмена данных:
enum TERMINATOR_STATES {
CAN_TERMINATOR_OFF = 0x00,
CAN_TERMINATOR_ON = 0x01
};
typedef struct {
CommandHeader header;
uint8_t state;
} __attribute__((packed)) ChannelConfigureTerminator;
Данная настройка доступна для устройств с идентификаторами HW_CHP (0x03), HW_CHPM03 (0x13) и HW_FDL2 (0x06). Если устройство не поддерживает данную настройку, то ответ будет содержать 0xFF в поле с номером команды.
Запрос
Поле | Значение |
header.command | 0x11 |
header.sequence | порядковый номер запроса |
header.flags | FLAG_CHANNEL_x + FLAG_CONFIG_TERMINATOR |
header.dSize | 0x01 |
state | значение из TERMINATOR_STATES |
Ответ
Если запрос успешно обработан и значение состояния терминатора задано из допустимого диапазона значений.
Поле | Значение |
command | 0x91 |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Если запрос не обработан.
Поле | Значение |
command | 0xFF |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Пример
Подключение терминатора для канала 2.
⇒ 11 xx 45 01 01
⇐ 91 xx 00 00
Задание состояния терминатора для канала 2 с неправильным значением.
⇒ 11 xx 45 01 10
⇐ FF xx 00 00