Quantex GmbH
Votre région : Europe

PassThruClose v4.04 v5.0

Fin de la communication avec l'adaptateur

Dernière modification :

Description

La fonction met fin à la communication avec l'adaptateur et libère toutes les ressources associées. Lors de son appel, tous les canaux ouverts (protocoles) sont automatiquement fermés, il n'est donc pas nécessaire d'appeler PassThruDisconnect() pour chaque canal séparément.

long PassThruClose(unsigned long DeviceID)
Important : Appelez toujours PassThruClose() avant de terminer le programme. Sinon, lors du prochain appel à PassThruOpen(), l'erreur ERR_DEVICE_IN_USE sera renvoyée.

Paramètres

Codes d'erreur renvoyés

Code Description Causes possibles et solutions
STATUS_NOERROR La fonction s'est exécutée correctement -
ERR_INVALID_DEVICE_ID Identifiant de périphérique non valide
  • DeviceID n'a pas été obtenu de PassThruOpen()
  • Le périphérique avait déjà été fermé précédemment
  • Solution : vérifiez que vous transmettez un DeviceID correct
ERR_DEVICE_NOT_CONNECTED La connexion avec l'adaptateur a été perdue
  • L'adaptateur a été éteint ou déconnecté du réseau
  • Solution : les ressources ont été libérées automatiquement, peut être ignoré
ERR_FAILED Erreur interne
  • Erreur lors de la libération des ressources
  • Solution : utilisez PassThruGetLastError() pour obtenir des détails

Exemples

Exemple en C/C++

#include "j2534_dll.hpp"

unsigned long DeviceID; // ID obtenu de PassThruOpen

// ... travail avec le périphérique ...

// Nous fermons la connexion
long ret = PassThruClose(DeviceID);
if (ret != STATUS_NOERROR)
{
    char error[256];
    PassThruGetLastError(error);
    printf("Erreur de fermeture : %s\n", error);
}

Exemple en Kotlin (Android)

// deviceID obtenu précédemment de ptOpen
val result = j2534.ptClose(deviceID)

if (result.status == STATUS_NOERROR) {
    Log.i("J2534", "Connexion avec l'adaptateur fermée")
} else {
    Log.e("J2534", "Erreur de fermeture : ${result.status}")
}

Exemple en Python (ctypes)

from ctypes import *

# device_id obtenu précédemment de PassThruOpen

ret = j2534.PassThruClose(device_id)

if ret == 0:  # STATUS_NOERROR
    print("Connexion fermée")
else:
    error = create_string_buffer(256)
    j2534.PassThruGetLastError(error)
    print(f"Erreur : {error.value.decode()}")

Exemple en C# (P/Invoke)

// deviceId obtenu précédemment de PassThruOpen

int ret = J2534.PassThruClose(deviceId);

if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine("Connexion fermée");
}
else
{
    var error = new System.Text.StringBuilder(256);
    J2534.PassThruGetLastError(error);
    Console.WriteLine($"Erreur : {error}");
}