Quantex GmbH
Votre région : Europe

PassThruStopPeriodicMsg v4.04 v5.0

Suppression d'un message périodique

Dernière modification :

Description

Arrête la transmission d'un message périodique et libère les ressources qui lui sont associées. Après l'appel, l'identifiant MsgID cesse d'être valide.

long PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID)

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_CHANNEL_ID Identifiant de canal non valide
  • Le canal n'a pas été ouvert ou est déjà fermé
  • Solution : utilisez le ChannelID obtenu de PassThruConnect
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
ERR_INVALID_DEVICE_ID Identifiant de périphérique non valide
  • Le DeviceID n'a pas été obtenu via PassThruOpen ou le périphérique est fermé
  • Solution : utilisez le DeviceID obtenu de PassThruOpen
ERR_INVALID_MSG_ID Identifiant de message non valide
  • Aucun message avec ce MsgID n'existe ou il a déjà été arrêté
  • Solution : utilisez le MsgID obtenu de PassThruStartPeriodicMsg
ERR_FAILED Erreur interne
  • Erreur dans la DLL ou dans le firmware de l'adaptateur
  • Solution : appelez PassThruGetLastError() pour obtenir les détails

Exemples

Exemple en C/C++

#include "j2534_lib.hpp"

unsigned long ChannelID; // ID du canal
unsigned long MsgID;     // ID du message obtenu de PassThruStartPeriodicMsg
long Ret;

Ret = PassThruStopPeriodicMsg(ChannelID, MsgID);
if (Ret != STATUS_NOERROR)
{
    // Gestion de l'erreur
}

Exemple en Kotlin (Android)

// channelID et msgID obtenus précédemment
val result = j2534.ptStopPeriodicMsg(channelID, msgID)
if (result.status == STATUS_NOERROR) {
    // Message périodique arrêté avec succès
    Log.i("J2534", "Message périodique arrêté, MsgID: $msgID")
} else {
    // Gestion de l'erreur
    Log.e("J2534", "Erreur lors de l'arrêt du message périodique: ${result.status}")
}

Exemple en Python

import ctypes

# Chargement de la bibliothèque
j2534 = ctypes.CDLL("libj2534_v04_04.so")  # Linux
# j2534 = ctypes.WinDLL("j2534sd_v04_04_x64.dll")  # Windows

# channel_id et msg_id obtenus précédemment
ret = j2534.PassThruStopPeriodicMsg(channel_id, msg_id)
if ret == 0:  # STATUS_NOERROR
    print(f"Message périodique arrêté, MsgID: {msg_id}")

Exemple en C#

using System;
using System.Runtime.InteropServices;

// channelId et msgId obtenus précédemment
int ret = J2534.PassThruStopPeriodicMsg(channelId, msgId);
if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine($"Message périodique arrêté, MsgID: {msgId}");
}