Quantex GmbH
DERU EN

PassThru Connect Создание соединения по протоколу

Описание

Функция устанавливает связь по заданному протоколу. Адаптер поддерживает две независимых диагностические линии. Каждый протокол связан со своей линией. Линия 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)

Параметры

Возвращаемые коды ошибок

Определение Описание
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)
{	// Обработка ошибки
}