Возвращает информацию о возможностях устройства: поддерживаемые протоколы, количество одновременных каналов, серийный номер и другие характеристики. Вызывается с DeviceID, полученным от PassThruOpen.
IoctlID
0x800C
pInput
SCONFIG_LIST* — список запрашиваемых параметров
pOutput
NULL (результат записывается в pInput)
В отличие от GET_CONFIG, функция GET_DEVICE_INFO вызывается с DeviceID, а не с ChannelID.
GET_PROTOCOL_INFO — Информация о протоколе
Возвращает информацию о возможностях конкретного протокола: максимальные размеры буферов, количество фильтров, поддерживаемые параметры. Вызывается с ChannelID, полученным от PassThruConnect.
IoctlID
0x800D
pInput
SCONFIG_LIST* — список запрашиваемых параметров
pOutput
NULL (результат записывается в pInput)
Структуры данных
typedef struct {
unsigned long Parameter; // Идентификатор параметра
unsigned long Value; // Возвращаемое значение
} SCONFIG;
typedef struct {
unsigned long NumOfParams; // Количество параметров в списке
SCONFIG *ConfigPtr; // Указатель на массив SCONFIG
} SCONFIG_LIST;
Возвращаемые коды ошибок
Код
Описание
Возможные причины и решения
STATUS_NOERROR
Функция выполнена успешно
—
ERR_DEVICE_NOT_CONNECTED
Нет соединения с адаптером
Адаптер выключен или вне зоны доступа
Решение: проверьте питание и подключение
ERR_INVALID_DEVICE_ID
Недействительный идентификатор устройства
DeviceID не был получен через PassThruOpen
Решение: выполните PassThruOpen
ERR_INVALID_CHANNEL_ID
Недействительный идентификатор канала
ChannelID не был получен через PassThruConnect (для GET_PROTOCOL_INFO)
Решение: выполните PassThruConnect
ERR_NULL_PARAMETER
Передан NULL вместо указателя
pInput равен NULL
Решение: передайте указатель на SCONFIG_LIST
ERR_NOT_SUPPORTED
Параметр не поддерживается
Запрошенный параметр недоступен
Решение: проверьте список поддерживаемых параметров
ERR_FAILED
Неопределённая ошибка
Внутренняя ошибка
Решение: вызовите PassThruGetLastError()
Параметры GET_DEVICE_INFO
Идентификация устройства
Параметр
Значение
Описание
SERIAL_NUMBER
0x01
Серийный номер устройства (строка)
PART_NUMBER
0x49
Артикул устройства
Поддержка протоколов
Возвращают SUPPORTED (1) или NOT_SUPPORTED (0).
Параметр
Значение
Протокол
J1850PWM_SUPPORTED
0x02
J1850 PWM (Ford)
J1850VPW_SUPPORTED
0x03
J1850 VPW (GM)
ISO9141_SUPPORTED
0x04
ISO 9141-2
ISO14230_SUPPORTED
0x05
ISO 14230 (KWP2000)
CAN_SUPPORTED
0x06
CAN (raw)
ISO15765_SUPPORTED
0x07
ISO 15765 (CAN UDS)
SCI_A_ENGINE_SUPPORTED
0x08
SCI-A Engine (Chrysler)
SCI_A_TRANS_SUPPORTED
0x09
SCI-A Transmission (Chrysler)
SCI_B_ENGINE_SUPPORTED
0x0A
SCI-B Engine (Chrysler)
SCI_B_TRANS_SUPPORTED
0x0B
SCI-B Transmission (Chrysler)
SW_ISO15765_SUPPORTED
0x0C
Single-Wire ISO 15765
SW_CAN_SUPPORTED
0x0D
Single-Wire CAN (GM)
GM_UART_SUPPORTED
0x0E
GM UART
UART_ECHO_BYTE_SUPPORTED
0x0F
UART Echo Byte
HONDA_DIAGH_SUPPORTED
0x10
Honda DIAG-H
J1939_SUPPORTED
0x11
J1939 (грузовые)
J1708_SUPPORTED
0x12
J1708 (грузовые)
TP2_0_SUPPORTED
0x13
TP 2.0 (VAG)
J2610_SUPPORTED
0x14
J2610 (Chrysler DRB-III)
ANALOG_IN_SUPPORTED
0x15
Аналоговые входы
FT_CAN_SUPPORTED
0x31
Fault-Tolerant CAN
FT_ISO15765_SUPPORTED
0x32
FT ISO 15765
FD_CAN_SUPPORTED
0x4C
CAN FD
FD_ISO15765_SUPPORTED
0x4D
ISO 15765 через CAN FD
ETHERNET_NDIS_SUPPORTED
0x54
Ethernet NDIS (DoIP)
Одновременные каналы
Количество каналов, которые могут быть открыты одновременно для каждого протокола.
Параметр
Значение
Протокол
J1850PWM_SIMULTANEOUS
0x35
J1850 PWM
J1850VPW_SIMULTANEOUS
0x36
J1850 VPW
ISO9141_SIMULTANEOUS
0x37
ISO 9141
ISO14230_SIMULTANEOUS
0x38
ISO 14230
CAN_SIMULTANEOUS
0x39
CAN
ISO15765_SIMULTANEOUS
0x3A
ISO 15765
SW_CAN_SIMULTANEOUS
0x40
SW-CAN
J1939_SIMULTANEOUS
0x44
J1939
TP2_0_SIMULTANEOUS
0x46
TP 2.0
FD_CAN_SIMULTANEOUS
0x4E
CAN FD
FD_ISO15765_SIMULTANEOUS
0x4F
ISO 15765 FD
Назначение контактов J1962
Возвращают маску контактов OBD-II, используемых для протокола.
Параметр
Значение
Протокол
CAN_PS_J1962
0x1F
CAN (Pin 6, 14)
ISO15765_PS_J1962
0x20
ISO 15765 (Pin 6, 14)
ISO9141_PS_K_LINE_J1962
0x1B
ISO 9141 K-Line (Pin 7)
ISO9141_PS_L_LINE_J1962
0x1C
ISO 9141 L-Line (Pin 15)
ISO14230_PS_K_LINE_J1962
0x1D
ISO 14230 K-Line (Pin 7)
ISO14230_PS_L_LINE_J1962
0x1E
ISO 14230 L-Line (Pin 15)
SW_CAN_PS_J1962
0x21
SW-CAN (Pin 1)
J1850PWM_PS_J1962
0x19
J1850 PWM (Pin 2, 10)
J1850VPW_PS_J1962
0x1A
J1850 VPW (Pin 2)
FD_CAN_PS_J1962
0x50
CAN FD (Pin 6, 14)
FD_ISO15765_PS_J1962
0x51
ISO 15765 FD (Pin 6, 14)
Дополнительные возможности
Параметр
Значение
Описание
MAX_NON_VOLATILE_STORAGE
0x16
Размер энергонезависимой памяти (байт)
SHORT_TO_GND_J1962
0x17
Поддержка определения КЗ на землю
PGM_VOLTAGE_J1962
0x18
Поддержка напряжения программирования
READ_J1962PIN_VOLTAGE_SUPPORTED
0x52
Поддержка чтения напряжения на контактах
READ_J1962PIN_VOLTAGE_MAX
0x53
Максимальное напряжение для чтения (мВ)
Параметры GET_PROTOCOL_INFO
Параметр
Значение
Описание
MAX_RX_BUFFER_SIZE
0x01
Максимальный размер приёмного буфера (байт)
MAX_PASS_FILTER
0x02
Максимальное количество PASS_FILTER
MAX_BLOCK_FILTER
0x03
Максимальное количество BLOCK_FILTER
MAX_FILTER_MSG_LENGTH
0x04
Максимальная длина сообщения фильтра (байт)
MAX_PERIODIC_MSGS
0x05
Максимальное количество периодических сообщений
MAX_PERIODIC_MSG_LENGTH
0x06
Максимальная длина периодического сообщения (байт)
DESIRED_DATA_RATE
0x07
Рекомендуемая скорость передачи (бит/с)
MAX_FLOW_CONTROL_FILTER
0x12
Максимальное количество FLOW_CONTROL_FILTER
MAX_ISO15765_WFT_MAX
0x13
Максимальное значение ISO15765_WFT_MAX
NETWORK_LINE_SUPPORTED
0x0A
Поддержка выбора сетевой линии
MAX_FUNCT_MSG_LOOKUP
0x0B
Максимальный размер таблицы функциональных адресов
PARITY_SUPPORTED
0x0C
Поддержка настройки чётности
DATA_BITS_SUPPORTED
0x0D
Поддержка настройки бит данных (7/8)
FIVE_BAUD_MOD_SUPPORTED
0x0E
Поддержка режимов 5-бод инициализации
L_LINE_SUPPORTED
0x0F
Поддержка L-линии
CAN_11_29_IDS_SUPPORTED
0x10
Поддержка 11-бит и 29-бит CAN ID
CAN_MIXED_FORMAT_SUPPORTED
0x11
Поддержка смешанного формата CAN
TIMESTAMP_RESOLUTION
0x1B
Разрешение временных меток (мкс)
FD_CAN_DATA_PHASE_DATA_RATE_SUPPORTED
0x6C
Поддерживаемые скорости CAN FD
Примеры
GET_DEVICE_INFO — получение возможностей устройства