如何在CAPL中检查消息是否在模拟中接收?

2024-10-02 10:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在CAPL中检查消息是否在模拟中接收,如果消息没有进入跟踪,我想发送新消息。我尝试过使用类似的函数。我想检查是否收到了特定的邮件? TestWaitForPDU();TestWaitFormMessage(msg,2000)等,但在简单的配置中,它们不起作用

我也尝试过使用istimerActive()或istimeraunning(),但这些函数不会检查消息是否已停止接收或发送

我在generic node中工作。我已经尝试过类似的方法

on timer tslpack
{
  int sleepack;
   long Systemtime[9];
  sleepack= isTimerActive(tslpack);
   //write("Bus Active");
    
 // write("Running Status %d",tslpack.isRunning());
 

 

        if(sleepack==1)
          {
            write("timer cancelled");
            cancelTimer(tslpack);
            Settimer(tslpack,100);
          }
          else
          {
            result=1;
        if(result ==1)
        {
         
        write("Bus Sleep");
          sleeptime=timeNow();
    
    
      
       result = 0;
       }

}

Tags: 函数消息if邮件msgresultwritetimer
1条回答
网友
1楼 · 发布于 2024-10-02 10:34:39

您已经提到,您不是在测试节点中编写代码,而是希望在模拟节点中编写代码。显然,函数TestWaitForPDU();TestWaitFormessage(msg,2000)应该在测试中使用,正如函数名称所示。
我想您正在等待CAN消息,因此我将为您提供一个示例代码。

variables
{
  msTimer TimerToCheckMessage;
  message CAN1.0x123 TxMsg;    //Message which you want to send
}

on start
{
  setTimer(TimerToCheckMessage,103);
  TxMsg.dlc = 4;
}

on message CAN1.0x1            //Message which you want to check
{
  setTimer(TimerToCheckMessage,103);
}

on timer TimerToCheckMessage
{
  output(TxMsg);
  setTimer(TimerToCheckMessage,103);
}

相关问题 更多 >

    热门问题