Quantex GmbH
Tu región: Europa

PassThruReadVersion v4.04 v5.0

Lectura de información sobre la DLL y el adaptador

Última modificación:

Descripción

La función devuelve información sobre la versión de la biblioteca DLL, la versión del firmware del adaptador y la versión compatible del estándar J2534 API. Estos datos son útiles para el diagnóstico de compatibilidad y la depuración.

long PassThruReadVersion(unsigned long DeviceID, char* pFirmwareVersion, char* pDllVersion, char* pApiVersion)

Parámetros

Códigos de error devueltos

Código Descripción Posibles causas y soluciones
STATUS_NOERROR La función se ejecutó correctamente
ERR_DEVICE_NOT_CONNECTED No hay conexión con el adaptador
  • El adaptador está apagado o se perdió la conexión
  • Solución: Verifique la alimentación del adaptador y la conexión de red/BLE
  • Dirección IP o nombre del dispositivo indicados incorrectamente
  • Solución: Verifique los parámetros de conexión en PassThruOpen
ERR_INVALID_DEVICE_ID Se indicó un identificador de adaptador DeviceID inexistente
  • El DeviceID no se obtuvo de PassThruOpen
  • Solución: Asegúrese de usar el DeviceID devuelto por la función PassThruOpen
  • El dispositivo ya se cerró mediante PassThruClose
  • Solución: Llame a PassThruOpen para restablecer la conexión
ERR_NULL_PARAMETER Uno de los punteros es igual a NULL
  • Se pasó NULL en lugar de un puntero al búfer
  • Solución: Asegúrese de que los tres punteros (pFirmwareVersion, pDllVersion, pApiVersion) apunten a búferes asignados de al menos 80 bytes

Ejemplos

Ejemplo en C/C++

#include "j2534_dll.hpp"

// DeviceID obtenido anteriormente de PassThruOpen
unsigned long DeviceID;
char pFirmwareVersion[80];
char pDllVersion[80];
char pApiVersion[80];

long ret = PassThruReadVersion(DeviceID, pFirmwareVersion, pDllVersion, pApiVersion);
if (ret != STATUS_NOERROR) {
    char error[256];
    PassThruGetLastError(error);
    // Manejo del error
} else {
    printf("Versión del firmware: %s\n", pFirmwareVersion);
    printf("Versión de la DLL: %s\n", pDllVersion);
    printf("Versión de la API: %s\n", pApiVersion);
}

Ejemplo en Kotlin (Android)

// deviceID obtenido anteriormente de ptOpen
val result = j2534.ptReadVersion(deviceID)
if (result.status == STATUS_NOERROR) {
    Log.i("J2534", "Versión del firmware: ${result.firmwareVersion}")
    Log.i("J2534", "Versión de la DLL: ${result.dllVersion}")
    Log.i("J2534", "Versión de la API: ${result.apiVersion}")
} else {
    Log.e("J2534", "Error al leer las versiones: ${result.status}")
}

Ejemplo en Python

# device_id obtenido anteriormente de PassThruOpen
firmware_ver = ctypes.create_string_buffer(80)
dll_ver = ctypes.create_string_buffer(80)
api_ver = ctypes.create_string_buffer(80)

ret = j2534.PassThruReadVersion(device_id, firmware_ver, dll_ver, api_ver)
if ret == 0:  # STATUS_NOERROR
    print(f"Versión del firmware: {firmware_ver.value.decode()}")
    print(f"Versión de la DLL: {dll_ver.value.decode()}")
    print(f"Versión de la API: {api_ver.value.decode()}")
else:
    print(f"Error al leer las versiones: {ret}")

Ejemplo en C#

// deviceId obtenido anteriormente de PassThruOpen
StringBuilder firmwareVersion = new StringBuilder(80);
StringBuilder dllVersion = new StringBuilder(80);
StringBuilder apiVersion = new StringBuilder(80);

int ret = J2534.PassThruReadVersion(deviceId, firmwareVersion, dllVersion, apiVersion);
if (ret == 0) {
    Console.WriteLine($"Versión del firmware: {firmwareVersion}");
    Console.WriteLine($"Versión de la DLL: {dllVersion}");
    Console.WriteLine($"Versión de la API: {apiVersion}");
} else {
    Console.WriteLine($"Error al leer las versiones: {ret}");
}