该函数按指定协议建立安全连接。为保护您的程序以及实现对程序功能访问权限的划分,使用 PassThruSecurityConnect 命令。
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 Linee |
| 定义 | 代码 | 引脚 | 说明 |
|---|---|---|---|
| TP1_6_PS | 0x8FFE | 6H,14L CAN | |
| HONDA_DIAGH_PS | 0x800B | 开关式 K L Line | |
| J1939_PS | 0x800C | 6H,14L CAN | |
| KWP2000_PS | 0x800D | 开关式 K L Line | |
| TP2_0_PS | 0x800E | 6H,14L CAN | |
| ISO14230_TP2_0_PS | 0x800F | 6H,14L CAN | |
| ISO14230_TP1_6_PS | 0x8010 | ||
| KW1281_PS | 0x8011 | ||
| KW1281_TP1_6_PS | 0x8012 | ||
| ISO5_PS | 0x8013 | 开关式 K Linee | |
| ISO8_PS | 0x8014 | 开关式 K Linee | |
| DS2_PS | 0x8015 | 开关式 K Linee | |
| DAIHATSU_PS | 0x8016 | 7K Linee | |
| ISOFORD_PS | 0x8017 | 开关式 K Linee | |
| KW81_PS | 0x8018 | 7K Linee | |
| KW82_PS | 0x8019 | 7K Linee | |
| MB_PS | 0x801A | 开关式 K Linee | |
| MBHFM_PS | 0x801B | 7K Linee | |
| NISSAN_PS | 0x801C | 12K 13L Line | |
| MITSUBISHI_PS | 0x801D | 7K Linee | |
| PEUGEOT_PS | 0x801E | 开关式 K Linee | |
| TOYOTA_PS | 0x801F | 7K Linee | |
| KIA_PS | 0x8020 | 开关式 K Linee | |
| WABKO_PS | 0x8021 | 开关式 K Line | |
| J4_PS | 0x8022 | 7K Linee | |
| ALDL160_PS | 0x8023 | 开关式 K Linee | |
| CUMMINS | 0x8024 | 6H, 14L CAN |
| 常量名称 | 位 | 说明 |
|---|---|---|
| ISO9141_K_LINE | 12 | 使用 L 线进行协议初始化。 0 = 使用 L 线和 K 线进行初始化 1 = 仅使用 K 线进行初始化 |
| CAN_ID_BOTH | 11 | 对 CAN 和 ISO 15765 协议接收两种类型的 CAN 标识符(另请参见位 8) 0 = 按位 8 的定义使用 11 位或 29 位标识符 1 = 适配器同时接收 11 位和 29 位标识符。 位 8 的设置被忽略。 |
| ISO9141_NO_CHECKSUM | 3 | 对 ISO9141 和 ISO14230 进行数据包校验和检查 0 = 适配器按 ISO 9141-2 和 ISO 14230-2 标准的定义生成并校验校验和。 1 = 适配器既不生成也不校验校验和。 |
| CAN_29BIT_ID | 8 | 用于 CAN 和 ISO 15765 协议的 CAN 标识符类型 0 = 接收带 11 位标识符的数据包。 1 = 接收带 29 位标识符的数据包。 |
| 定义 | 说明 |
|---|---|
| STATUS_NOERROR | 函数执行成功 |
| ERR_DEVICE_NOT_CONNECTED | 未与适配器建立连接。可能的原因:适配器已关闭、无网络,或 IP 地址设置不正确。 |
| ERR_INVALID_DEVICE_ID | 指定了不存在的适配器标识符 DeviceID |
| ERR_NOT_SUPPORTED | 适配器不支持 SCI 协议。指定不兼容协议时也会出现此错误。例如,同时指定了 VPW 和 PWM |
| ERR_INVALID_PROTOCOL_ID | 指定了不存在的 ProtocolID。 |
| ERR_NULL_PARAMETER | 未指定 pDeviceID 指针。 |
| ERR_INVALID_FLAGS | 指定了不存在的标志 |
| ERR_INVALID_BAUDRATE | 指定的通信速率不正确 |
| ERR_CHANNEL_IN_USE | 通道已在使用中。由 J2534 标准定义。
实际上此错误码永远不会出现。因为再次调用 PassThruConnect 命令时会自动调用 PassThruDisconnect 命令并重新打开通道。
|
| ERR_FAILED | dll 或适配器固件中的内部错误。例如内存分配错误或堆栈故障。如需获取详细信息,需使用 PassThruGetLastError() 函数 |
#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)
{ // 错误处理
}