Quantex GmbH
Votre région : Europe

PassThruReadVersion v4.04 v5.0

Lecture des informations sur la DLL et l'adaptateur

Dernière modification :

Description

La fonction renvoie des informations sur la version de la bibliothèque DLL, la version du firmware de l'adaptateur et la version prise en charge du standard J2534 API. Ces données sont utiles pour le diagnostic de compatibilité et le débogage.

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

Paramètres

Codes d'erreur renvoyés

Code Description Causes possibles et solutions
STATUS_NOERROR La fonction s'est exécutée correctement
ERR_DEVICE_NOT_CONNECTED Aucune connexion avec l'adaptateur
  • L'adaptateur est éteint ou la connexion est perdue
  • Solution : Vérifiez l'alimentation de l'adaptateur et la connexion réseau/BLE
  • Adresse IP ou nom du dispositif indiqués de manière incorrecte
  • Solution : Vérifiez les paramètres de connexion dans PassThruOpen
ERR_INVALID_DEVICE_ID Identifiant d'adaptateur DeviceID inexistant indiqué
  • Le DeviceID n'a pas été obtenu de PassThruOpen
  • Solution : Assurez-vous d'utiliser le DeviceID renvoyé par la fonction PassThruOpen
  • Le dispositif a déjà été fermé via PassThruClose
  • Solution : Appelez PassThruOpen pour rétablir la connexion
ERR_NULL_PARAMETER L'un des pointeurs est égal à NULL
  • NULL a été passé au lieu d'un pointeur vers le tampon
  • Solution : Assurez-vous que les trois pointeurs (pFirmwareVersion, pDllVersion, pApiVersion) pointent vers des tampons alloués d'au moins 80 octets

Exemples

Exemple en C/C++

#include "j2534_dll.hpp"

// DeviceID obtenu précédemment 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);
    // Gestion de l'erreur
} else {
    printf("Version du firmware : %s\n", pFirmwareVersion);
    printf("Version de la DLL : %s\n", pDllVersion);
    printf("Version de l'API : %s\n", pApiVersion);
}

Exemple en Kotlin (Android)

// deviceID obtenu précédemment de ptOpen
val result = j2534.ptReadVersion(deviceID)
if (result.status == STATUS_NOERROR) {
    Log.i("J2534", "Version du firmware : ${result.firmwareVersion}")
    Log.i("J2534", "Version de la DLL : ${result.dllVersion}")
    Log.i("J2534", "Version de l'API : ${result.apiVersion}")
} else {
    Log.e("J2534", "Erreur de lecture des versions : ${result.status}")
}

Exemple en Python

# device_id obtenu précédemment 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"Version du firmware : {firmware_ver.value.decode()}")
    print(f"Version de la DLL : {dll_ver.value.decode()}")
    print(f"Version de l'API : {api_ver.value.decode()}")
else:
    print(f"Erreur de lecture des versions : {ret}")

Exemple en C#

// deviceId obtenu précédemment 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($"Version du firmware : {firmwareVersion}");
    Console.WriteLine($"Version de la DLL : {dllVersion}");
    Console.WriteLine($"Version de l'API : {apiVersion}");
} else {
    Console.WriteLine($"Erreur de lecture des versions : {ret}");
}