Quantex GmbH
您的地区:欧洲

PassThruStopMsgFilter v4.04 v5.0

删除消息过滤器

最后修改:

说明

此函数用于删除先前设置的某一个过滤器。

long PassThruStopMsgFilter(unsigned long ChannelID, unsigned long FilterID)

参数

返回的错误代码

代码 说明 可能的原因与解决方法
STATUS_NOERROR 函数执行成功
ERR_DEVICE_NOT_CONNECTED 未与适配器建立连接
  • 适配器已关闭或不在可访问范围内
  • 解决方法:请检查适配器电源和网络连接
ERR_INVALID_DEVICE_ID 设备标识符无效
  • DeviceID 未通过 PassThruOpen 获取,或设备已关闭
  • 解决方法:请确认 PassThruOpen 已成功执行
ERR_INVALID_CHANNEL_ID 通道标识符无效
  • ChannelID 未通过 PassThruConnect 获取,或通道已关闭
  • 解决方法:请确认 PassThruConnect 已成功执行
ERR_INVALID_FILTER_ID 过滤器标识符无效
  • FilterID 未通过 PassThruStartMsgFilter 获取,或过滤器已被删除
  • 解决方法:请使用从 PassThruStartMsgFilter 获取的 FilterID
ERR_FAILED 未定义错误
  • 库或适配器的内部错误
  • 解决方法:调用 PassThruGetLastError() 以获取详细说明

示例

C/C++ 示例

#include "j2534_lib.hpp"

unsigned long ChannelID; // 通道 ID
unsigned long FilterID;  // 从 PassThruStartMsgFilter 获取的过滤器 ID
long Ret;

Ret = PassThruStopMsgFilter(ChannelID, FilterID);
if (Ret != STATUS_NOERROR)
{
    // 错误处理
}

Kotlin (Android) 示例

// channelID 和 filterID 已在先前获取
val result = j2534.ptStopMsgFilter(channelID, filterID)
if (result.status == STATUS_NOERROR) {
    // 过滤器删除成功
    Log.i("J2534", "过滤器 $filterID 已删除。")
} else {
    // 错误处理
    Log.e("J2534", "删除过滤器出错:${result.status}")
}

Python 示例

from ctypes import *

# channelID 和 filterID 已在先前获取
ret = j2534.PassThruStopMsgFilter(channel_id, filter_id)
if ret == 0:  # STATUS_NOERROR
    print(f"过滤器 {filter_id} 已删除")
else:
    error = create_string_buffer(256)
    j2534.PassThruGetLastError(error)
    print(f"出错:{error.value.decode()}")

C# 示例

// channelID 和 filterID 已在先前获取
int ret = J2534.PassThruStopMsgFilter(channelId, filterId);
if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine($"过滤器 {filterId} 已删除");
}
else
{
    var error = new StringBuilder(256);
    J2534.PassThruGetLastError(error);
    Console.WriteLine($"出错:{error}");
}