CAPL阻止节点发送消息

时间:2016-10-26 10:48:37

标签: can-bus capl canoe

我有一个CAPL文件附加到CAN节点,该节点使用'output'函数定期发送消息。如何使用第二个CAPL文件阻止发送消息的节点(在执行节点执行的所有操作时)?

3 个答案:

答案 0 :(得分:1)

您可以向节点添加输出过滤器,如下所示,以阻止消息。

enter image description here

答案 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节点的任何值。