我有一个CAPL文件附加到CAN节点,该节点使用'output'函数定期发送消息。如何使用第二个CAPL文件阻止发送消息的节点(在执行节点执行的所有操作时)?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以通过取消每条消息的计时器来停止所有循环消息
示例:
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"在其他节点它将停止消息,就像所有消息都必须写入环境变量一样,然后就可以控制其他节点消息了。
答案 2 :(得分:0)
您在模拟中创建一个sysvar,它将用作模拟.can节点中的开关。
您只需要将输出代码调节为您创建的系统变量的值即可。
if (Sysvar_SimEnabled)
{
output(message);
output(message1);
output(message3);
}
此“ Sysvar_SimEnabled”将是全局变量,因此可以将其设置为来自另一个.can CAPL节点的任何值。