Как создать LIN-сообщение и отправить его в CAPL

Я новичок в скрипте CAPL. Я пишу сценарий для отправки 8-байтового сообщения с идентификатором кадра (PID). Когда я запускаю скрипт на каноэ, блок управления двигателем не отвечает. Все настройки и база данных верны. Проблема в сценарии. Ниже приведен сценарий.

/*@!Encoding:1252*/
variables
{
   linmessage 0x11  Request;
   linmessage 0x25  Response;
   linmessage 0x01  Initiate_wake_up;

   byte WakeUpFrame = 0x3E;
   byte Request_Header = 0x11;
   byte Response_Header = 0x25;
}



void Util_SendHeader(byte frameID)
{
   Request.MsgChannel = 1;
   Request.ID = frameID;
   Request.RTR=1;  
   output(Request); 
}



void Wake_Up_Frame()
{
   Util_SendHeader (WakeUpFrame);
   Request.byte(0)=0x00;
   Request.byte(1)=0x00;
   Request.byte(2)=0x00;
   Request.byte(3)=0x00;
   Request.byte(4)=0x00;
   Request.byte(5)=0x00;
   Request.byte(6)=0x00;
   Request.byte(7)=0x00;
   Request.rtr=0;
   output(Request);  
}

on key 'q'
{
   Wake_Up_Frame();
   Request.byte(0) = 0x00;
   Request.byte(1) = 0x0A;
   Request.byte(2) = 0x00;
   Request.byte(3) = 0x00;
   Request.byte(4) = 0x00;
   Request.byte(5) = 0x00;
   Request.byte(6) = 0x00;
   Request.byte(7) = 0x00;
   Util_SendHeader (Request_Header);
   Request.rtr=0;
   output(Request);
   Util_SendHeader (Response_Header);
}

Пожалуйста помогите.


person Prakash    schedule 11.07.2017    source источник


Ответы (1)


Для отправки LIN-сообщения требуются два output() вызова: 1-й с .rtr=0 и второй с .rtr=1.

Первый планирует передачу данных сообщения. Второй запускает передачу.

Если вместо второго output() какой-то внешний ведущий отправляет заголовок сообщения по шине LIN, а идентификатор заголовка совпадает с идентификатором запланированного сообщения, инструмент передает сообщение (действуя как ведомое устройство).

Для получения сообщения от ведомого требуется только второй output(). Он будет передавать заголовок сообщения по шине LIN. Любое ведомое устройство, у которого есть подходящее готовое сообщение (с таким же идентификатором), передаст данные сообщения.

person user8692573    schedule 28.09.2017