Cierre del canal de comunicación lógico
Última modificación:
La función finaliza la conexión lógica con el vehículo en el dispositivo pass-thru indicado.
Si se ejecuta correctamente, la función devuelve STATUS_NOERROR y el canal de comunicación lógico pasa al estado desconectado.
long PassThruLogicalDisconnect(unsigned long ChannelID)
Tras la desconexión, el canal lógico tiene el siguiente estado:
Parámetro de entrada. Identificador del canal de comunicación lógico obtenido al llamar a
PassThruLogicalConnect().
| Código | Descripción |
|---|---|
| STATUS_NOERROR | La función se ejecutó correctamente |
| ERR_CONCURRENT_API_CALL | Se llamó a una función de la API J2534 antes de finalizar la llamada anterior |
| ERR_DEVICE_NOT_OPEN | PassThruOpen() no se llamó correctamente |
| ERR_INVALID_CHANNEL_ID | Valor de ChannelID no válido |
| ERR_DEVICE_NOT_CONNECTED | Error de comunicación con el dispositivo pass-thru. El dispositivo se ha desconectado. |
| ERR_NOT_SUPPORTED | La DLL no admite esta función |
| ERR_FAILED | Error no definido. Use PassThruGetLastError() para obtener la descripción. |
#include "j2534_dll.hpp"
unsigned long logicalChannelID = ...; // ID obtenido de PassThruLogicalConnect
// Cerramos el canal lógico
long ret = PassThruLogicalDisconnect(logicalChannelID);
if (ret == STATUS_NOERROR) {
printf("Canal lógico cerrado\n");
} else {
char error[256];
PassThruGetLastError(error);
printf("Error: %s\n", error);
}
from ctypes import *
j2534 = cdll.LoadLibrary("libj2534_v05_00.dylib")
logical_channel_id = c_ulong(...) # ID obtenido de PassThruLogicalConnect
# Cerramos el canal lógico
ret = j2534.PassThruLogicalDisconnect(logical_channel_id)
if ret == 0: # STATUS_NOERROR
print("Canal lógico cerrado")
else:
error = create_string_buffer(256)
j2534.PassThruGetLastError(error)
print(f"Error: {error.value.decode()}")
PassThruLogicalConnect() - Creación del canal lógicoPassThruDisconnect() - Cierre de la conexión físicaPassThruClose() - Cierre del dispositivo