Помещение значения сигнала в переменную в CAPL - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь вытянуть значение сигнала (из файла DBC) в переменную, но получаю сообщение "Должно быть константное выражение" . Если я пытаюсь добавить фильтр типа .DefaultValue, он работает, но это не то значение, которое я хочу. Я хочу получить значение сигнала во время вызова этой функции CAPL . Вот пример:

float Cell_Voltage = Mc00_UCell00; (здесь я получаю ошибку, должна быть константным выражением)

float Cell_Voltage = Mc00_UCell00.DefaultValue; (это работает, но я не хочу значение по умолчанию)

Есть ли фильтр для извлечения текущего значения сигнала Mc00_UCell0?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

В CAPL, чтобы получить целое число от значения сигнала с плавающей запятой, вы должны написать

float Cell_Voltage = $Mc00_UCell00;

Называется "Прямой доступ к значениям сигнала"

0 голосов
/ 07 сентября 2018

Вы говорите следующие работы:

float Cell_Voltage = Mc00_UCell00.DefaultValue; 

и следующее не работает:

float Cell_Voltage = Mc00_UCell00; 

Обратите внимание, что в C и многих других языках точка указывает, что из структуры осуществляется доступ к члену. Это означало бы, что в рабочем примере вы получаете доступ к члену и присваиваете его Cell_Voltage, а в нерабочем примере вы хотите назначить целую структуру простой переменной, и это действительно не сработает.

Решите, какой элемент структуры вам нужен, и укажите адрес с точечной нотацией.

...