Запрос идентификатора устройства (COMMAND_DEVICE_HARDWARE 0x05)¶
Возвращается идентификатор используемого устройства. Идентификатор зависит от аппаратной составляющей устройства.
В ответе используется структура:
enum HWIdentifiers {
HW_CH30 = 0xFF, /* Old identifier for CAN-Hacker on F105 mcu with dual CAN channels and single LIN channel */
HW_ODB_OLD = 0x02, /* Old identifier for CAN-Hacker in ODB interface with single CAN channel and single LIN channel */
HW_CH32 = 0x01, /* CAN-Hacker 3.2 on F105 mcu with dual CAN channels and single LIN channel */
HW_ODB = 0x04, /* CAN-Hacker in ODB interface on F105 mcu with single CAN channel and single LIN channel */
HW_CHP = 0x03, /* CAN-Hacker CH-P on F105 mcu with dual CAN channels and single LIN channel */
HW_CH33 = 0x11, /* CAN-Hacker 3.3 on F407 mcu with dual CAN channels and single LIN channel */
HW_CHPM03 = 0x13, /* CAN-Hacker CH-P on F407 mcu with dual CAN channels and single LIN channel */
HW_FDL2 = 0x06 /* CAN-Hacker CH-P on G473 mcu with dual CAN channels and single LIN channel */
};
typedef struct {
CommandHeader header;
uint8_t hwId;
} __attribute__((packed)) DeviceIdentifier;
Все устройства делятся на группы CH-105/CH-407/CH-4FD.
CH-105 – В своей основе имеют контроллер F105.
CH-407 – В своей основе имеют контроллер F407.
CH-4FD – В своей основе имеют контроллер G4xx.
Запрос
Поле | Значение |
command | 0x05 |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Ответ
Поле | Значение |
header.command | 0x05 |
header.sequence | порядковый номер запроса |
header.flags | 0x00 |
header.dSize | 0x01 |
hwId | 1 байт типа устройства |
Пример
⇒ 05 xx 00 00
⇐ 05 xx 00 01 03