获取CAN总线中所有活动消息的列表

时间:2016-02-05 16:50:52

标签: can-bus capl

我只是学会在CAPL上使用CANoe,我需要创建一个网关来过滤2个CAN总线之间的消息。

对于第一部分,我需要创建一种方法来将传输从总线1切换到总线2,反之亦然(已经完成)。

然后我必须能够从任何总线中选择一条特定的消息,将其发送到另一条总线。所有这一切都必须以图形方式与面板一起使用,并且我使用复选框来切换第1部分和下拉列表以进行消息过滤。

您是否知道如何从最后一个(例如10秒)获取总线中活动(Rx / Tx)消息的列表? (我知道我必须使用计时器来调用更新功能)

1 个答案:

答案 0 :(得分:1)

您可以通过定义on message事件处理程序来订阅来自总线的所有消息。将为每条消息调用它(取决于您指定的过滤条件)。您可以使用output重新发送邮件来创建网关。

例如,您的图形面板可以将变量my_id设置为您要从总线1到总线2中继的消息的ID。然后您可以写:

on message CAN1.*
{
   message CAN2.* msg;
   if((this.dir == rx) && (this.id == my_id)) {
       msg = this;
       output(msg);
   }
}

如果要将相同的消息从总线1中继到总线2,则需要附加条件this.dir == rx,反之亦然。它将阻止您无限期地重新传输相同的消息。