Quantex GmbH
Su región: Europa

PassThruStopPeriodicMsg v4.04 v5.0

Eliminación de un mensaje periódico

Última modificación:

Descripción

Detiene la transmisión de un mensaje periódico y libera los recursos asociados a él. Tras la llamada, el identificador MsgID deja de ser válido.

long PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID)

Parámetros

Códigos de error devueltos

Código Descripción Posibles causas y soluciones
STATUS_NOERROR La función se ejecutó correctamente
ERR_INVALID_CHANNEL_ID Identificador de canal no válido
  • El canal no se abrió o ya está cerrado
  • Solución: utilice el ChannelID obtenido de PassThruConnect
ERR_DEVICE_NOT_CONNECTED Sin conexión con el adaptador
  • El adaptador está apagado o se perdió la conexión
  • Solución: compruebe la alimentación del adaptador y la conexión de red
ERR_INVALID_DEVICE_ID Identificador de dispositivo no válido
  • El DeviceID no se obtuvo mediante PassThruOpen o el dispositivo está cerrado
  • Solución: utilice el DeviceID obtenido de PassThruOpen
ERR_INVALID_MSG_ID Identificador de mensaje no válido
  • No existe ningún mensaje con ese MsgID o ya se ha detenido
  • Solución: utilice el MsgID obtenido de PassThruStartPeriodicMsg
ERR_FAILED Error interno
  • Error en la DLL o en el firmware del adaptador
  • Solución: llame a PassThruGetLastError() para obtener los detalles

Ejemplos

Ejemplo en C/C++

#include "j2534_lib.hpp"

unsigned long ChannelID; // ID del canal
unsigned long MsgID;     // ID del mensaje obtenido de PassThruStartPeriodicMsg
long Ret;

Ret = PassThruStopPeriodicMsg(ChannelID, MsgID);
if (Ret != STATUS_NOERROR)
{
    // Manejo del error
}

Ejemplo en Kotlin (Android)

// channelID y msgID obtenidos previamente
val result = j2534.ptStopPeriodicMsg(channelID, msgID)
if (result.status == STATUS_NOERROR) {
    // Mensaje periódico detenido correctamente
    Log.i("J2534", "Mensaje periódico detenido, MsgID: $msgID")
} else {
    // Manejo del error
    Log.e("J2534", "Error al detener el mensaje periódico: ${result.status}")
}

Ejemplo en Python

import ctypes

# Carga de la biblioteca
j2534 = ctypes.CDLL("libj2534_v04_04.so")  # Linux
# j2534 = ctypes.WinDLL("j2534sd_v04_04_x64.dll")  # Windows

# channel_id y msg_id obtenidos previamente
ret = j2534.PassThruStopPeriodicMsg(channel_id, msg_id)
if ret == 0:  # STATUS_NOERROR
    print(f"Mensaje periódico detenido, MsgID: {msg_id}")

Ejemplo en C#

using System;
using System.Runtime.InteropServices;

// channelId y msgId obtenidos previamente
int ret = J2534.PassThruStopPeriodicMsg(channelId, msgId);
if (ret == 0) // STATUS_NOERROR
{
    Console.WriteLine($"Mensaje periódico detenido, MsgID: {msgId}");
}