簡體   English   中英

如果消息在模擬中接收,如何檢查CAPL?

[英]How to check in CAPL if message is receiving in simulation or not?

我想在 CAPL 中檢查消息是否在模擬中接收,如果它沒有進入跟蹤,我想發送新消息。 我試過使用類似的功能。 我想檢查特定消息是否正在接收? TestWaitForPDU();TestWaitFormessage(msg,2000) 等,但在簡單配置中這些不起作用。

我也嘗試過使用 istimerActive() 或 istimerunning(),但這些函數不會檢查消息是否已停止接收或傳輸。

我在通用節點工作。我嘗試過這樣的事情

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;
       }

}

您已經提到您不是在測試節點中編寫代碼,而是想在模擬節點中編寫代碼。 顯然,函數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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM