Quantex GmbH
您的地区:欧洲

PassThruLogicalDisconnect v5.0

关闭逻辑通信通道

最后更新:

说明

该函数在指定的 pass-thru 设备上终止与车辆的逻辑连接。

执行成功时函数返回 STATUS_NOERROR,逻辑通信通道进入断开状态。

long PassThruLogicalDisconnect(unsigned long ChannelID)

通道的断开状态

断开后,逻辑通道处于以下状态:

参数

ChannelID

输入参数。调用 PassThruLogicalConnect() 时获得的逻辑通信通道标识符。

返回的错误代码

代码 说明
STATUS_NOERROR 函数执行成功
ERR_CONCURRENT_API_CALL 在上一次调用完成之前调用了 J2534 API 函数
ERR_DEVICE_NOT_OPEN 未成功调用 PassThruOpen()
ERR_INVALID_CHANNEL_ID ChannelID 取值无效
ERR_DEVICE_NOT_CONNECTED 与 pass-thru 设备通信出错。设备已断开连接。
ERR_NOT_SUPPORTED DLL 不支持此函数
ERR_FAILED 未定义的错误。使用 PassThruGetLastError() 获取详细说明。

示例

C/C++ 示例

#include "j2534_dll.hpp"

unsigned long logicalChannelID = ...; // 从 PassThruLogicalConnect 获取的 ID

// 关闭逻辑通道
long ret = PassThruLogicalDisconnect(logicalChannelID);

if (ret == STATUS_NOERROR) {
    printf("逻辑通道已关闭\n");
} else {
    char error[256];
    PassThruGetLastError(error);
    printf("错误: %s\n", error);
}

Python 示例 (ctypes)

from ctypes import *

j2534 = cdll.LoadLibrary("libj2534_v05_00.dylib")

logical_channel_id = c_ulong(...)  # 从 PassThruLogicalConnect 获取的 ID

# 关闭逻辑通道
ret = j2534.PassThruLogicalDisconnect(logical_channel_id)

if ret == 0:  # STATUS_NOERROR
    print("逻辑通道已关闭")
else:
    error = create_string_buffer(256)
    j2534.PassThruGetLastError(error)
    print(f"错误: {error.value.decode()}")

相关函数