Finalización de la comunicación con el adaptador
Última modificación:
La función finaliza la comunicación con el adaptador y libera todos los recursos asociados. Al llamarla se cierran automáticamente todos los canales abiertos (protocolos), por lo que no es necesario llamar a PassThruDisconnect() para cada canal por separado.
long PassThruClose(unsigned long DeviceID)
PassThruClose() antes de finalizar el programa. De lo contrario, en la siguiente llamada a PassThruOpen() se devolverá el error ERR_DEVICE_IN_USE.
PassThruOpen().| Código | Descripción | Posibles causas y soluciones |
|---|---|---|
| STATUS_NOERROR | La función se ejecutó correctamente | - |
| ERR_INVALID_DEVICE_ID | Identificador de dispositivo no válido |
|
| ERR_DEVICE_NOT_CONNECTED | Se perdió la conexión con el adaptador |
|
| ERR_FAILED | Error interno |
|
#include "j2534_dll.hpp"
unsigned long DeviceID; // ID obtenido de PassThruOpen
// ... trabajo con el dispositivo ...
// Cerramos la conexión
long ret = PassThruClose(DeviceID);
if (ret != STATUS_NOERROR)
{
char error[256];
PassThruGetLastError(error);
printf("Error al cerrar: %s\n", error);
}
// deviceID obtenido previamente de ptOpen
val result = j2534.ptClose(deviceID)
if (result.status == STATUS_NOERROR) {
Log.i("J2534", "Conexión con el adaptador cerrada")
} else {
Log.e("J2534", "Error al cerrar: ${result.status}")
}
from ctypes import *
# device_id obtenido previamente de PassThruOpen
ret = j2534.PassThruClose(device_id)
if ret == 0: # STATUS_NOERROR
print("Conexión cerrada")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Error: {error.value.decode()}")
// deviceId obtenido previamente de PassThruOpen
int ret = J2534.PassThruClose(deviceId);
if (ret == 0) // STATUS_NOERROR
{
Console.WriteLine("Conexión cerrada");
}
else
{
var error = new System.Text.StringBuilder(256);
J2534.PassThruGetLastError(error);
Console.WriteLine($"Error: {error}");
}