我有一个 CAPL 文件附加到 CAN 节点,该节点使用“输出”功能定期发送消息。如何使用第二个 CAPL 文件来阻止发送消息的节点(同时执行节点所做的一切)?
问问题
4357 次
3 回答
1
您可以在模拟中创建一个 sysvar,它将用作模拟*.can
网络节点中的开关。
您只需要将输出代码设置为您创建的系统变量的值。
if (Sysvar_SimEnabled)
{
output(message);
output(message1);
output(message3);
}
这Sysvar_SimEnabled
将是一个全局变量,因此可以设置为来自另一个*.can
CAPL 网络节点的任何值。
于 2018-09-21T14:49:31.403 回答
1
您可以通过取消每条消息的计时器来停止所有循环消息
例子:
message can1.0x12 message1;
msTimer tmessage1;
on timer tmessage1
{
output(message1); // sending message
setTimer(tmessage1,100); // set the cyclic time as 100ms
}
on envVar envmessage1
{
if (getValue(envmessage1) == 1)
{
setTimer(tmessage1,100); // set and start the cyclic time as 100ms
}
else
{
cancelTimer(tmessage1); // cancel the cyclic timer
}
}
如果你只是envmessage1 = 0
在另一个节点上做,它会停止消息,就像所有消息一样,必须编写环境变量,然后你可以控制其他节点消息。
于 2017-07-25T14:37:36.537 回答