Quantex GmbH
Ihre Region: Europa

PassThruStopPeriodicMsg v4.04 v5.0

Entfernen einer periodischen Nachricht

Letzte Änderung:

Beschreibung

Beendet das Senden einer periodischen Nachricht und gibt die damit verbundenen Ressourcen frei. Nach dem Aufruf wird die Kennung MsgID ungültig.

long PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID)

Parameter

Rückgabe-Fehlercodes

Code Beschreibung Mögliche Ursachen und Lösungen
STATUS_NOERROR Funktion erfolgreich ausgeführt
ERR_INVALID_CHANNEL_ID Ungültige Kanalkennung
  • Der Kanal wurde nicht geöffnet oder ist bereits geschlossen
  • Lösung: Verwenden Sie die ChannelID, die von PassThruConnect zurückgegeben wurde
ERR_DEVICE_NOT_CONNECTED Keine Verbindung zum Adapter
  • Der Adapter ist ausgeschaltet oder die Verbindung ist verloren gegangen
  • Lösung: Prüfen Sie die Stromversorgung des Adapters und die Netzwerkverbindung
ERR_INVALID_DEVICE_ID Ungültige Gerätekennung
  • Die DeviceID wurde nicht über PassThruOpen bezogen oder das Gerät ist geschlossen
  • Lösung: Verwenden Sie die DeviceID, die von PassThruOpen zurückgegeben wurde
ERR_INVALID_MSG_ID Ungültige Nachrichtenkennung
  • Eine Nachricht mit dieser MsgID existiert nicht oder wurde bereits beendet
  • Lösung: Verwenden Sie die MsgID, die von PassThruStartPeriodicMsg zurückgegeben wurde
ERR_FAILED Interner Fehler
  • Fehler in der DLL oder in der Firmware des Adapters
  • Lösung: Rufen Sie PassThruGetLastError() auf, um Details zu erhalten

Beispiele

Beispiel in C/C++

#include "j2534_lib.hpp"

unsigned long ChannelID; // ID des Kanals
unsigned long MsgID;     // ID der Nachricht, von PassThruStartPeriodicMsg zurückgegeben
long Ret;

Ret = PassThruStopPeriodicMsg(ChannelID, MsgID);
if (Ret != STATUS_NOERROR)
{
    // Fehlerbehandlung
}

Beispiel in Kotlin (Android)

// channelID und msgID wurden zuvor bezogen
val result = j2534.ptStopPeriodicMsg(channelID, msgID)
if (result.status == STATUS_NOERROR) {
    // Periodische Nachricht erfolgreich beendet
    Log.i("J2534", "Periodische Nachricht beendet, MsgID: $msgID")
} else {
    // Fehlerbehandlung
    Log.e("J2534", "Fehler beim Beenden der periodischen Nachricht: ${result.status}")
}

Beispiel in Python

import ctypes

# Laden der Bibliothek
j2534 = ctypes.CDLL("libj2534_v04_04.so")  # Linux
# j2534 = ctypes.WinDLL("j2534sd_v04_04_x64.dll")  # Windows

# channel_id und msg_id wurden zuvor bezogen
ret = j2534.PassThruStopPeriodicMsg(channel_id, msg_id)
if ret == 0:  # STATUS_NOERROR
    print(f"Periodische Nachricht beendet, MsgID: {msg_id}")

Beispiel in C#

using System;
using System.Runtime.InteropServices;

// channelId und msgId wurden zuvor bezogen
int ret = J2534.PassThruStopPeriodicMsg(channelId, msgId);
if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine($"Periodische Nachricht beendet, MsgID: {msgId}");
}