Quantex GmbH
DE RU 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)
        {
    // Обработка ошибки
        }