0

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

任何帮助深表感谢。谢谢

4

1 回答 1

0

如果您还没有这样做,请使用关键字 this 实现 on message 事件:

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);
  }
}
于 2017-09-28T13:38:45.137 回答