Quantex GmbH
Ihre Region: Europa

PassThruReadVersion v4.04 v5.0

Auslesen von Informationen über DLL und Adapter

Letzte Änderung:

Beschreibung

Die Funktion liefert Informationen über die Version der DLL-Bibliothek, die Firmware-Version des Adapters und die unterstützte Version des J2534-API-Standards zurück. Diese Daten sind für die Diagnose der Kompatibilität und für das Debugging nützlich.

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

Parameter

Rückgabe-Fehlercodes

Code Beschreibung Mögliche Ursachen und Lösungen
STATUS_NOERROR Funktion erfolgreich ausgeführt
ERR_DEVICE_NOT_CONNECTED Keine Verbindung zum Adapter
  • Der Adapter ist ausgeschaltet oder die Verbindung wurde unterbrochen
  • Lösung: Prüfen Sie die Stromversorgung des Adapters sowie die Netzwerk-/BLE-Verbindung
  • Die IP-Adresse oder der Gerätename wurde falsch angegeben
  • Lösung: Prüfen Sie die Verbindungsparameter in PassThruOpen
ERR_INVALID_DEVICE_ID Es wurde eine nicht existierende Adapter-Kennung DeviceID angegeben
  • Die DeviceID wurde nicht von PassThruOpen zurückgegeben
  • Lösung: Stellen Sie sicher, dass Sie die von der Funktion PassThruOpen zurückgegebene DeviceID verwenden
  • Das Gerät wurde bereits über PassThruClose geschlossen
  • Lösung: Rufen Sie PassThruOpen auf, um die Verbindung erneut herzustellen
ERR_NULL_PARAMETER Einer der Zeiger ist NULL
  • Es wurde NULL anstelle eines Zeigers auf einen Puffer übergeben
  • Lösung: Stellen Sie sicher, dass alle drei Zeiger (pFirmwareVersion, pDllVersion, pApiVersion) auf reservierte Puffer von mindestens 80 Byte verweisen

Beispiele

Beispiel in C/C++

#include "j2534_dll.hpp"

// DeviceID wurde zuvor von PassThruOpen erhalten
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);
    // Fehlerbehandlung
} else {
    printf("Firmware-Version: %s\n", pFirmwareVersion);
    printf("DLL-Version: %s\n", pDllVersion);
    printf("API-Version: %s\n", pApiVersion);
}

Beispiel in Kotlin (Android)

// deviceID wurde zuvor von ptOpen erhalten
val result = j2534.ptReadVersion(deviceID)
if (result.status == STATUS_NOERROR) {
    Log.i("J2534", "Firmware-Version: ${result.firmwareVersion}")
    Log.i("J2534", "DLL-Version: ${result.dllVersion}")
    Log.i("J2534", "API-Version: ${result.apiVersion}")
} else {
    Log.e("J2534", "Fehler beim Auslesen der Versionen: ${result.status}")
}

Beispiel in Python

# device_id wurde zuvor von PassThruOpen erhalten
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"Firmware-Version: {firmware_ver.value.decode()}")
    print(f"DLL-Version: {dll_ver.value.decode()}")
    print(f"API-Version: {api_ver.value.decode()}")
else:
    print(f"Fehler beim Auslesen der Versionen: {ret}")

Beispiel in C#

// deviceId wurde zuvor von PassThruOpen erhalten
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($"Firmware-Version: {firmwareVersion}");
    Console.WriteLine($"DLL-Version: {dllVersion}");
    Console.WriteLine($"API-Version: {apiVersion}");
} else {
    Console.WriteLine($"Fehler beim Auslesen der Versionen: {ret}");
}