Quantex GmbH
Ihre Region: Europa

PassThruClose v4.04 v5.0

Beenden der Verbindung zum Adapter

Letzte Änderung:

Beschreibung

Die Funktion beendet die Verbindung zum Adapter und gibt alle zugehörigen Ressourcen frei. Beim Aufruf werden automatisch alle geöffneten Kanäle (Protokolle) geschlossen, daher ist es nicht erforderlich, PassThruDisconnect() für jeden Kanal einzeln aufzurufen.

long PassThruClose(unsigned long DeviceID)
Wichtig: Rufen Sie PassThruClose() stets vor dem Beenden des Programms auf. Andernfalls wird beim nächsten Aufruf von PassThruOpen() der Fehler ERR_DEVICE_IN_USE zurückgegeben.

Parameter

Rückgabe-Fehlercodes

Code Beschreibung Mögliche Ursachen und Lösungen
STATUS_NOERROR Funktion erfolgreich ausgeführt -
ERR_INVALID_DEVICE_ID Ungültige Gerätekennung
  • DeviceID wurde nicht von PassThruOpen() bezogen
  • Das Gerät wurde bereits zuvor geschlossen
  • Lösung: Stellen Sie sicher, dass Sie eine korrekte DeviceID übergeben
ERR_DEVICE_NOT_CONNECTED Die Verbindung zum Adapter ist verloren gegangen
  • Der Adapter wurde ausgeschaltet oder vom Netzwerk getrennt
  • Lösung: Die Ressourcen werden automatisch freigegeben, kann ignoriert werden
ERR_FAILED Interner Fehler
  • Fehler bei der Freigabe der Ressourcen
  • Lösung: Verwenden Sie PassThruGetLastError(), um Details zu erhalten

Beispiele

Beispiel in C/C++

#include "j2534_dll.hpp"

unsigned long DeviceID; // Von PassThruOpen erhaltene ID

// ... Arbeit mit dem Gerät ...

// Verbindung schließen
long ret = PassThruClose(DeviceID);
if (ret != STATUS_NOERROR)
{
    char error[256];
    PassThruGetLastError(error);
    printf("Fehler beim Schließen: %s\n", error);
}

Beispiel in Kotlin (Android)

// deviceID wurde zuvor von ptOpen erhalten
val result = j2534.ptClose(deviceID)

if (result.status == STATUS_NOERROR) {
    Log.i("J2534", "Verbindung zum Adapter geschlossen")
} else {
    Log.e("J2534", "Fehler beim Schließen: ${result.status}")
}

Beispiel in Python (ctypes)

from ctypes import *

# device_id wurde zuvor von PassThruOpen erhalten

ret = j2534.PassThruClose(device_id)

if ret == 0:  # STATUS_NOERROR
    print("Verbindung geschlossen")
else:
    error = create_string_buffer(256)
    j2534.PassThruGetLastError(error)
    print(f"Fehler: {error.value.decode()}")

Beispiel in C# (P/Invoke)

// deviceId wurde zuvor von PassThruOpen erhalten

int ret = J2534.PassThruClose(deviceId);

if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine("Verbindung geschlossen");
}
else
{
    var error = new System.Text.StringBuilder(256);
    J2534.PassThruGetLastError(error);
    Console.WriteLine($"Fehler: {error}");
}