Syntax

#include "j2534_v0404.h"

long PassThruWriteMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout);

Description

Transmit network protocol messages over an existing logical communication channel. Messages will flow through PassThru device to the vehicle network.

Parameters

ChannelID
Logical communication channel identifier
pMsg
Pointer to the message structure(s). For sending more than one message, this must be a pointer to an array of PASSTHRU_MSG structures.
pNumMsgs
Pointer to the number of desired pMsg frames. On function completion this variable will contain the actual number of messages sent to the vehicle network. Due to timeouts, the number of transmitted messages may be less than the number requested by the UserApplication.
Timeout
Timeout (in milliseconds) for read completion. A value of zero queues as many transmit messages as possible and returns immediately. A non-zero value blocks (does not return) until the specified number of messages have been transmitted, or until the timeout expires.

See Also

Example

// Mode/PID 0100: Ask an ECU which OBD-II PIDs are supported with 11-bit CAN
Msg.ProtocolID = ISO15765;
Msg.TxFlags = ISO15765_FRAME_PAD;
Msg.Data = {0x00, 0x00, 0x07, 0xDF, 0x01, 0x00};
Msg.DataSize = 6;

// Indicate that the PASSTHRU_MSG array contains just a single message.
NumMsgs = 1;
PassThruWriteMsgs(ChannelID, &Msg, &NumMsgs, 100);