Zakończenie komunikacji z adapterem
Ostatnia zmiana:
Funkcja kończy komunikację z adapterem i zwalnia wszystkie powiązane zasoby. Podczas wywołania automatycznie zamykane są wszystkie otwarte kanały (protokoły), dlatego nie ma potrzeby wywoływania PassThruDisconnect() dla każdego kanału z osobna.
long PassThruClose(unsigned long DeviceID)
PassThruClose() przed zakończeniem programu. W przeciwnym razie przy następnym wywołaniu PassThruOpen() zostanie zwrócony błąd ERR_DEVICE_IN_USE.
PassThruOpen().| Kod | Opis | Możliwe przyczyny i rozwiązania |
|---|---|---|
| STATUS_NOERROR | Funkcja wykonana pomyślnie | - |
| ERR_INVALID_DEVICE_ID | Nieprawidłowy identyfikator urządzenia |
|
| ERR_DEVICE_NOT_CONNECTED | Utracono połączenie z adapterem |
|
| ERR_FAILED | Błąd wewnętrzny |
|
#include "j2534_dll.hpp"
unsigned long DeviceID; // ID uzyskany z PassThruOpen
// ... praca z urządzeniem ...
// Zamykamy połączenie
long ret = PassThruClose(DeviceID);
if (ret != STATUS_NOERROR)
{
char error[256];
PassThruGetLastError(error);
printf("Błąd zamknięcia: %s\n", error);
}
// deviceID uzyskany wcześniej z ptOpen
val result = j2534.ptClose(deviceID)
if (result.status == STATUS_NOERROR) {
Log.i("J2534", "Połączenie z adapterem zamknięte")
} else {
Log.e("J2534", "Błąd zamknięcia: ${result.status}")
}
from ctypes import *
# device_id uzyskany wcześniej z PassThruOpen
ret = j2534.PassThruClose(device_id)
if ret == 0: # STATUS_NOERROR
print("Połączenie zamknięte")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Błąd: {error.value.decode()}")
// deviceId uzyskany wcześniej z PassThruOpen
int ret = J2534.PassThruClose(deviceId);
if (ret == 0) // STATUS_NOERROR
{
Console.WriteLine("Połączenie zamknięte");
}
else
{
var error = new System.Text.StringBuilder(256);
J2534.PassThruGetLastError(error);
Console.WriteLine($"Błąd: {error}");
}