CAN 报文信号,CAPL

CAN message signals, CAPL

我正在尝试将每个 CAN 消息中的信号数据保存在单独的变量中。 例如。我有一个 dlc =4 的 CAN 消息 'msg1',在 CANalyzer 的 CAPL 中带有信号 {8, 5, 7, 21}, 我想将它们保存在如下变量中: int var1 = msg1.byte(0); 但我在操作后一直将零 (0) 作为变量的最终值。

非常感谢任何帮助。 谢谢

如果您还没有这样做,请使用关键字 this:

实现消息事件
on message msg1 {
  var1 = this.byte(0);
  ...
}

当CANalyzer接收到on message事件中指定的消息时,该事件将始终被触发。这样您还可以确保 var1 存储的值是最新的。 您还可以使用数组来使用更通用的方法。

on message msg1 {
  int i;
  int var[msg1.dlc];
  for (i = 0; i < msg1.dlc; i++) {
    var[i] = this.byte(i);
  }
}