Сигналы CAN сообщения, CAPL
Я пытаюсь сохранить данные сигнала в каждом сообщении CAN в отдельных переменных. Например, У меня есть сообщение CAN 'msg1' dlc =4, с сигналами {8, 5, 7, 21} в CAPL CANalyzer, я хотел бы сохранить их в переменных, таких как: int var1 = msg1.byte(0); но я продолжаю получать ноль (0) как окончательное значение переменной после операции.
Буду признателен за любую оказанную помощь. Спасибо
1 ответ
Решение
Если вы этого еще не сделали, внедрите событие on message, используя ключевое слово 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);
}
}