Quantex GmbH
DERU EN

PassThruWriteMsgs Передача сообщений

Описание

Функция предаёт сообщения по диагностическому протоколу. Передающая очередь адаптера рассчитана на 50 сообщений на одну очередь для одного канала и имеет 64 Кбайт свободной памяти для всех очередей. При заполнении очереди или всей свободной памяти, приём сообщений в передающую очередь приостанавливается.

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

Параметры

Возвращаемые коды ошибок

Определение Описание
STATUS_NOERROR Функция выполнена успешно
ERR_DEVICE_NOT_CONNECTED Нет соединения с адаптером. Возможные причины: Адаптер выключен, нет сети, или не правильно задан IP адрес.
ERR_INVALID_DEVICE_ID Задан не существующий идентификатор адаптера DeviceID
ERR_INVALID_CHANNEL_ID Задан не существующий идентификатор канала ChannelID
ERR_NULL_PARAMETER Не задан указатель на буфер приёмных пакетов pMsg
ERR_TIMEOUT За заданное время не смогли передать все сообщения.
ERR_INVALID_MSG Не правильная структура сообщения заданная в указателе pMsg
ERR_NULL_PARAMETER Не задан указатель pMsg
ERR_MSG_PROTOCOL_ID Протокол заданный в параметрах передаваемого сообщения не совпадает с протоколом заданным в ChannelID
ERR_NO_FLOW_CONTROL Для протокола ISO15765 не установлен фильтр для Flow Control.
ERR_BUFFER_FULL Очередь передачи переполнена.
ERR_FAILED Определён стандартом J2534. В адаптере, для этой функции не используется.

Пример

#include "j2534_lib.hpp"

unsigned long ChannelID;
unsigned long NumMsgs;
long Ret;

PASSTHRU_MSG Msg[10];

Msg[0].ProtocolID = ISO15765;
Msg[0].TxFlags = FL_ISO15765_FRAME_PAD;
Msg[0].Data[0] = 0x00;
Msg[0].Data[1] = 0x00;
Msg[0].Data[2] = 0x07;
Msg[0].Data[3] = 0xE0;
Msg[0].Data[4] = 0x3E;
Msg[0].DataSize = 5;

NumMsgs = 1;
Ret = PassThruWriteMsgs(ChannelID, Msg, &NumMsgs, 100);
if (Ret != STATUS_NOERROR)
{	// Обработка ошибки
}