Динамическое назначение имен сигналов из строки в CAPL - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть строка, в которой хранится имя сигнала, извлеченное из файла Excel.Я хочу динамически назначить имя сигнала, используя строку, если у меня много таких сигналов.

Например, если у меня есть сигнал с именем 'speed' в моем файле dbc, и у меня есть строка, котораяхранит «скорость», мне нужно установить значение сигнала «скорость» как 100.

variable
{
    message BCM BCM;
    char signal[100]= "speed";
}

on message * 
{
    $signal= 100;
}

Я получаю ошибку:
Ошибка: идентификатор «сигнал» не имеет тип сигнала.

Есть ли решение этой проблемы, чтобы я мог каким-то образом преобразовать строку в имя сигнала?

1 Ответ

0 голосов
/ 27 декабря 2018

Вы смешиваете переменные форматы, как это.Единственный объект, для которого вы можете использовать $, это тип dbSignal .Вам потребуется функция типа getSignal ( dbSignal name ); но с параметром char [].К сожалению, Vector не реализовал такой обходной путь, оставив вам единственную возможность передавать строки сигналов по параметрам тестового набора (если вы используете тестовые узлы XML).

Так как, я полагаю, у вас их слишком много, я предлагаю вам написать скрипт на другом языке сценариев, составляя текст самого файла .can, заполняя место dbsignals строками из Excel, а затем используйте.can файл для тестирования / симуляции.

...