Quantex GmbH
DE RU EN EL
Ваш регион: Европа

PassThruStopPeriodicMsg v4.04 v5.0

Удаление периодического сообщения

Последнее изменение:

Описание

Останавливает передачу периодического сообщения и освобождает связанные с ним ресурсы. После вызова идентификатор MsgID становится недействительным.

long PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID)

Параметры

Возвращаемые коды ошибок

Код Описание Возможные причины и решения
STATUS_NOERROR Функция выполнена успешно
ERR_INVALID_CHANNEL_ID Недействительный идентификатор канала
  • Канал не был открыт или уже закрыт
  • Решение: используйте ChannelID, полученный от PassThruConnect
ERR_DEVICE_NOT_CONNECTED Нет соединения с адаптером
  • Адаптер выключен или потеряна связь
  • Решение: проверьте питание адаптера и сетевое подключение
ERR_INVALID_DEVICE_ID Недействительный идентификатор устройства
  • DeviceID не был получен через PassThruOpen или устройство закрыто
  • Решение: используйте DeviceID, полученный от PassThruOpen
ERR_INVALID_MSG_ID Недействительный идентификатор сообщения
  • Сообщение с таким MsgID не существует или уже остановлено
  • Решение: используйте MsgID, полученный от PassThruStartPeriodicMsg
ERR_FAILED Внутренняя ошибка
  • Ошибка в DLL или прошивке адаптера
  • Решение: вызовите PassThruGetLastError() для получения деталей

Примеры

Пример на C/C++

#include "j2534_lib.hpp"

unsigned long ChannelID; // ID канала
unsigned long MsgID;     // ID сообщения, полученный от PassThruStartPeriodicMsg
long Ret;

Ret = PassThruStopPeriodicMsg(ChannelID, MsgID);
if (Ret != STATUS_NOERROR)
{
    // Обработка ошибки
}

Пример на Kotlin (Android)

// channelID и msgID получены ранее
val result = j2534.ptStopPeriodicMsg(channelID, msgID)
if (result.status == STATUS_NOERROR) {
    // Периодическое сообщение успешно остановлено
    Log.i("J2534", "Остановлено периодическое сообщение, MsgID: $msgID")
} else {
    // Обработка ошибки
    Log.e("J2534", "Ошибка остановки периодического сообщения: ${result.status}")
}

Пример на Python

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}")

Пример на C#

using System;
using System.Runtime.InteropServices;

// channelId и msgId получены ранее
int ret = J2534.PassThruStopPeriodicMsg(channelId, msgId);
if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine($"Периодическое сообщение остановлено, MsgID: {msgId}");
}