[英]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.