Функция устанавливает связь по заданному протоколу. Адаптер поддерживает две независимых диагностические линии. Каждый протокол связан со своей линией. Линия 1 подключена к выводам 6 и 14 OBD разъёма и к ней могут подключаться только протоколы
ISO15768 И CAN. Линия 2 коммутируемая, и к ней могут подключаться остальные протоколы. Так как линии независимые, то допускается одновременная работа двух протоколов. Например ISO15765 и ISO14230 или ISO15765 и ISO15765_PS. Приставка PS означает,
что протокол может коммутироваться на выводы OBD разъёма.
Протоколы ISO15765 и CAN а так же ISO15765_PS и CAN_PS могут работать на одной физической линии одновременно. Это означает, что вы можете инициализировать в одном адаптере одновременно
до 4 протоколов. При этом необходимо учитывать, что устанавливаемые скорости для каждой пары протоколов должны быть одинаковыми. Например ISO15765 и CAN со скоростью 500 Кбит на 6 и 14 выводах OBD разъёма и ISO15765_PS и CAN_PS со скоростью
125 Кбит на 3 и 11 выводах.
long PassThruConnect(unsigned long DeviceID, unsigned long ProtocolID, unsigned long Flags, unsigned long BaudRate, unsigned long *pChannelID)
Определение | выводы | Описание |
---|---|---|
J1850VPW | 2 VPW | Определён стандартами SAE J1850 и SAE J2178 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
J1850PWM | 2, 10 PWM | Определён стандартом SAE J1850 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
ISO9141 | 7K,15L Line | Определён стандартами ISO 9141 и SAE J1979 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
ISO14230 | 7K,15L Line | |
CAN | 6H,14L CAN | Не обработанный CAN поток. Может одновременно работать со всеми протоколами. |
ISO15765 | 6H,14L CAN | Определён стандартами ISO 15765-4 и ISO 14229-1 UDS Может одновременно работать со всеми протоколами. |
SCI_A_ENGINE | Не поддерживается | |
SCI_A_TRANS | Не поддерживается | |
SCI_B_ENGINE | Не поддерживается | |
SCI_B_TRANS | Не поддерживается | |
J1850VPW_PS | Коммутируемый VPW | Определён стандартами SAE J1850 и SAE J2178 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
J1850PWM_PS | Коммутируемый PWM | Определён стандартом SAE J1850 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
ISO9141_PS | Коммутируемый K L Line | Определён стандартами ISO 9141 и SAE J1979 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
ISO14230_PS | Коммутируемый K L Line | Определён стандартами ISO 9141 и SAE J1979 Может одновременно работать с CAN и ISO15765, Не совместим с коммутируемыми протоколами. |
CAN_PS | Коммутируемый CAN | Не обработанный CAN поток. Может одновременно работать со всеми протоколами. |
ISO15765_PS | Коммутируемый CAN | |
J2610_PS | Коммутируемый | |
SW_ISO15765_PS | 1 CAN | |
SW_CAN_PS | 1 CAN | |
GM_UART_PS | Коммутируемый K Line |
Название константы | бит | Описание |
---|---|---|
ISO9141_K_LINE | 12 | Использование L линии для инициализации протоколов. 0 = Используется L-линия и K-линия для инициализации 1 = Используется только K-линия для инициализации |
CAN_ID_BOTH | 11 | Приём обоих типов CAN идентификаторов для протоколов CAN and ISO 15765 (смотрите так же бит 8) 0 = Используется 11 или 29 битный идентификатор как определено битом 8 1 = 11 и 29 битные идентификаторы принимаются адаптером. Установка бита 8 игнорируется. |
ISO9141_NO_CHECKSUM | 3 | Проверка контрольной суммы пакета для ISO9141 и ISO14230 0 = Адаптер генерирует и проверяет контрольную сумму как определено стандартом ISO 9141-2 и ISO 14230-2. 1 = Адаптер не генерирует и не проверяет контрольную сумму. |
CAN_29BIT_ID | 8 | Тип CAN идентификатора для протоколов CAN и ISO 15765 0 = Принимаются пакеты с 11 битным идентификатором. 1 = Принимаются пакеты с 29 битным идентификатором. |
Определение | Описание |
---|---|
STATUS_NOERROR | Функция выполнена успешно |
ERR_DEVICE_NOT_CONNECTED | Нет соединения с адаптером. Возможные причины: Адаптер выключен, нет сети, или не правильно задан IP адрес. |
ERR_INVALID_DEVICE_ID | Задан не существующий идентификатор адаптера DeviceID |
ERR_NOT_SUPPORTED | Протоколы SCI на 04.09.16 ещё не поддерживаются адаптером. Так же эта ошибка возникает если задаются не совместимые протоколы. Например одновременно заданы VPW и PWM |
ERR_INVALID_PROTOCOL_ID | Задан не существующий ProtocolID. |
ERR_NULL_PARAMETER | Не задан указатель pDeviceID. |
ERR_INVALID_FLAGS | Задан не существующий флаг |
ERR_INVALID_BAUDRATE | Задана не правильная скорость обмена |
ERR_CHANNEL_IN_USE | Канал уже используется. Определён стандартом J2534.
В реальности этот код ошибки никогда не появится. Так как при повторном вызове команды PassThruConnect произойдёт автоматический вызов команды PassThruDiscоnnect и канал будет переоткрыт.
|
ERR_FAILED | Определён стандартом J2534. В адаптере, для этой функции не используется. |
#include "j2534_lib.hpp"
unsigned long DeviceID;
long Ret;
unsigned long ChannelID;
unsigned long Flags = ISO9141_K_LINE_ONLY;
Ret = PassThruConnect(DeviceID, ISO14230, Flags, 10400, &ChannelID);
if (Ret != STATUS_NOERROR)
{ // Обработка ошибки
}