Quantex GmbH
DE RU 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)
{	// Обработка ошибки
}