如何解决如何在仿真中接收消息,是否在CAPL中进行检查?
我想在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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。