Quantex GmbH
Twój region: Europa

PassThruStopPeriodicMsg v4.04 v5.0

Usunięcie wiadomości okresowej

Ostatnia zmiana:

Opis

Zatrzymuje wysyłanie wiadomości okresowej i zwalnia powiązane z nią zasoby. Po wywołaniu identyfikator MsgID staje się nieważny.

long PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID)

Parametry

Zwracane kody błędów

Kod Opis Możliwe przyczyny i rozwiązania
STATUS_NOERROR Funkcja wykonana pomyślnie
ERR_INVALID_CHANNEL_ID Nieprawidłowy identyfikator kanału
  • Kanał nie został otwarty lub jest już zamknięty
  • Rozwiązanie: użyj ChannelID uzyskanego z PassThruConnect
ERR_DEVICE_NOT_CONNECTED Brak połączenia z adapterem
  • Adapter jest wyłączony lub utracono łączność
  • Rozwiązanie: sprawdź zasilanie adaptera i połączenie sieciowe
ERR_INVALID_DEVICE_ID Nieprawidłowy identyfikator urządzenia
  • DeviceID nie został uzyskany przez PassThruOpen lub urządzenie jest zamknięte
  • Rozwiązanie: użyj DeviceID uzyskanego z PassThruOpen
ERR_INVALID_MSG_ID Nieprawidłowy identyfikator wiadomości
  • Wiadomość o takim MsgID nie istnieje lub została już zatrzymana
  • Rozwiązanie: użyj MsgID uzyskanego z PassThruStartPeriodicMsg
ERR_FAILED Błąd wewnętrzny
  • Błąd w DLL lub firmware adaptera
  • Rozwiązanie: wywołaj PassThruGetLastError(), aby uzyskać szczegóły

Przykłady

Przykład w C/C++

#include "j2534_lib.hpp"

unsigned long ChannelID; // ID kanału
unsigned long MsgID;     // ID wiadomości uzyskany z PassThruStartPeriodicMsg
long Ret;

Ret = PassThruStopPeriodicMsg(ChannelID, MsgID);
if (Ret != STATUS_NOERROR)
{
    // Obsługa błędu
}

Przykład w Kotlin (Android)

// channelID i msgID uzyskane wcześniej
val result = j2534.ptStopPeriodicMsg(channelID, msgID)
if (result.status == STATUS_NOERROR) {
    // Wiadomość okresowa pomyślnie zatrzymana
    Log.i("J2534", "Zatrzymano wiadomość okresową, MsgID: $msgID")
} else {
    // Obsługa błędu
    Log.e("J2534", "Błąd zatrzymywania wiadomości okresowej: ${result.status}")
}

Przykład w Python

import ctypes

# Ładowanie biblioteki
j2534 = ctypes.CDLL("libj2534_v04_04.so")  # Linux
# j2534 = ctypes.WinDLL("j2534sd_v04_04_x64.dll")  # Windows

# channel_id i msg_id uzyskane wcześniej
ret = j2534.PassThruStopPeriodicMsg(channel_id, msg_id)
if ret == 0:  # STATUS_NOERROR
    print(f"Wiadomość okresowa zatrzymana, MsgID: {msg_id}")

Przykład w C#

using System;
using System.Runtime.InteropServices;

// channelId i msgId uzyskane wcześniej
int ret = J2534.PassThruStopPeriodicMsg(channelId, msgId);
if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine($"Wiadomość okresowa zatrzymana, MsgID: {msgId}");
}