Beenden der Verbindung zum Adapter
Letzte Änderung:
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)
PassThruClose() stets vor dem Beenden des Programms auf. Andernfalls wird beim nächsten Aufruf von PassThruOpen() der Fehler ERR_DEVICE_IN_USE zurückgegeben.
PassThruOpen() erhaltene Gerätekennung.| Code | Beschreibung | Mögliche Ursachen und Lösungen |
|---|---|---|
| STATUS_NOERROR | Funktion erfolgreich ausgeführt | - |
| ERR_INVALID_DEVICE_ID | Ungültige Gerätekennung |
|
| ERR_DEVICE_NOT_CONNECTED | Die Verbindung zum Adapter ist verloren gegangen |
|
| ERR_FAILED | Interner Fehler |
|
#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);
}
// 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}")
}
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()}")
// 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}");
}