首页 > 解决方案 > 自适应检索 CAN 通道的 sysVar BusLoad

问题描述

我正在为测试创建一个程序节点。该测试需要了解被测 CAN 通道的总线负载。除了检索相应通道的 sysVar Busload 之外,该测试几乎是完全自主的。我想这样做,以便我可以像这样检索 BusLoad 值:

合适的方式:

on message *{
      BusLoad = @_Statistics::CAN1::Busload;
}

我想要的是:

on message *{
      BusLoad = @_Statistics::this.msgChannel::Busload;
}

我对 CAPL 非常陌生,因此将不胜感激,我不确定这是否可能。

谢谢!:)

标签: caplcanoe

解决方案


你可以想到这样的事情:

on message *{
  switch (this.can)
      {
        case 1:
          BusLoad = @_Statistics::CAN1::Busload;
          break;
        case 2:
          BusLoad = @_Statistics::CAN2::Busload;
          break;
        case 3:
          BusLoad = @_Statistics::CAN3::Busload;
          break;

        // and so on

        default:
          // what happens on default
          break;
      }
}

推荐阅读