删除周期性消息
最后修改:
停止周期性消息的发送并释放与之关联的资源。调用后,标识符 MsgID 将失效。
long PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID)
PassThruStartPeriodicMsg 返回。| 代码 | 说明 | 可能的原因及解决方法 |
|---|---|---|
| STATUS_NOERROR | 函数执行成功 | — |
| ERR_INVALID_CHANNEL_ID | 通道标识符无效 |
|
| ERR_DEVICE_NOT_CONNECTED | 与适配器无连接 |
|
| ERR_INVALID_DEVICE_ID | 设备标识符无效 |
|
| ERR_INVALID_MSG_ID | 消息标识符无效 |
|
| ERR_FAILED | 内部错误 |
|
#include "j2534_lib.hpp"
unsigned long ChannelID; // 通道 ID
unsigned long MsgID; // 从 PassThruStartPeriodicMsg 获取的消息 ID
long Ret;
Ret = PassThruStopPeriodicMsg(ChannelID, MsgID);
if (Ret != STATUS_NOERROR)
{
// 错误处理
}
// channelID 和 msgID 已在前面获取
val result = j2534.ptStopPeriodicMsg(channelID, msgID)
if (result.status == STATUS_NOERROR) {
// 周期性消息已成功停止
Log.i("J2534", "已停止周期性消息,MsgID: $msgID")
} else {
// 错误处理
Log.e("J2534", "停止周期性消息出错: ${result.status}")
}
import ctypes
# 加载库
j2534 = ctypes.CDLL("libj2534_v04_04.so") # Linux
# j2534 = ctypes.WinDLL("j2534sd_v04_04_x64.dll") # Windows
# channel_id 和 msg_id 已在前面获取
ret = j2534.PassThruStopPeriodicMsg(channel_id, msg_id)
if ret == 0: # STATUS_NOERROR
print(f"周期性消息已停止,MsgID: {msg_id}")
using System;
using System.Runtime.InteropServices;
// channelId 和 msgId 已在前面获取
int ret = J2534.PassThruStopPeriodicMsg(channelId, msgId);
if (ret == 0) // STATUS_NOERROR
{
Console.WriteLine($"周期性消息已停止,MsgID: {msgId}");
}