Quantex GmbH
您的地区:欧洲

PassThruDisconnect v4.04 v5.0

断开连接

最后修改:

说明

该函数断开先前由 PassThruConnect 命令建立的协议连接。与该通道关联的所有周期性消息和过滤器都会被自动删除。

long PassThruDisconnect(unsigned long ChannelID)
重要:关闭通道时,该通道的所有活动周期性消息(PassThruStartPeriodicMsg)和过滤器(PassThruStartMsgFilter)都将被自动 停止并删除。

参数

返回的错误代码

代码 说明 可能原因及解决方法
STATUS_NOERROR 函数执行成功
ERR_INVALID_CHANNEL_ID 指定的通道标识符 ChannelID 不存在
  • ChannelID 不是从 PassThruConnect 获取的
  • 解决方法:请确认使用的是 PassThruConnect 函数返回的 ChannelID
  • 该通道已被关闭
  • 解决方法:请检查是否对该通道重复调用了 PassThruDisconnect
ERR_DEVICE_NOT_CONNECTED 未与适配器建立连接
  • 与适配器的通信已中断
  • 解决方法:请检查网络连接或 BLE 连接
  • 设备已通过 PassThruClose 关闭
  • 解决方法:请调用 PassThruOpen 重新连接

示例

C/C++ 示例

#include "j2534_dll.hpp"

// ChannelID 此前由 PassThruConnect 获取
unsigned long ChannelID;
long ret = PassThruDisconnect(ChannelID);
if (ret != STATUS_NOERROR) {
    char error[256];
    PassThruGetLastError(error);
    // 错误处理
}

Kotlin (Android) 示例

// channelID 此前由 ptConnect 获取
val result = j2534.ptDisconnect(channelID)
if (result.status == STATUS_NOERROR) {
    Log.i("J2534", "通信通道已关闭")
} else {
    Log.e("J2534", "关闭通道出错: ${result.status}")
}

Python 示例

# channel_id 此前由 PassThruConnect 获取
ret = j2534.PassThruDisconnect(channel_id)
if ret == 0:  # STATUS_NOERROR
    print("通信通道已关闭")
else:
    print(f"关闭通道出错: {ret}")

C# 示例

// channelId 此前由 PassThruConnect 获取
int ret = J2534.PassThruDisconnect(channelId);
if (ret == 0) {
    Console.WriteLine("通信通道已关闭");
} else {
    Console.WriteLine($"关闭通道出错: {ret}");
}