Как сгенерировать возможные значения сигнала из dbc как общий вывод с CAPL
Я использую Canoe версии 10.0, и я хотел спросить, есть ли умный способ для генерации необязательного значения сигнала из базы данных в другое значение.
Прямо сейчас я делаю это жестко, но это раздражает для каждого сигнала. Особенно, когда я знаю базу данных, содержащую информацию, такую как длина сигнала, начальный бит и минимальное и максимальное возможное значение.
Я видел, что есть такие опции, как getSignal, setSignal и т. Д., Но мне не удалось понять, как правильно их использовать для достижения моей цели.
Спасибо за помощь.
1 ответ
Я знаю, что это было давно, но я понимаю следующее.
Особенно, когда я знаю, что база данных содержит такую информацию, как длина сигнала, стартовый бит и минимальное и максимальное возможное значение.
Обычно база данных определяется в 2 файлах:
- DBC (формат от VECTOR), который определяет сигналы, имя, начало бита, длину и т. Д.
- Файл EXCEL, который определяет периодичность кадров и сигнализирует значения по умолчанию.
Вы можете вводить файлы DBC непосредственно в CANoe/CANalyser, и CAPL сможет получить прямой доступ к значениям сигналов.
on message ABSdata // <== frame name as defined in the DBC file
{
if (this.DIR == RX)
{
// CarSpeed is a signal belonging to the frame ABSdata
write("The signal value of car speed is %d", this.CarSpeed);
}
}
Нет необходимости писать какую-либо сложную функцию для извлечения значения сигнала. CANoe/CANalyser выполнит правильное декодирование, если вы предоставите правильный файл DBC.
Коротко: Нет, вы не можете получить доступ к символическим значениям из CAPL для данного сигнала, описанного в базе данных dbc/fibex. Таким образом, вы не можете сделать звонок, как:
SetSignal (SignalnamefromDbc, SNA_VALUE); /*SNA_VALUE defined in dbcis 7*/
Есть несколько обходных путей, но мне нужно больше информации о том, что может и не может сделать ваша симуляция.
Например: OEM-производители наряду с Vector, как правило, пишут определенные библиотеки dll для генерации реалистичных значений сигнала без вашего конкретного запроса. Эти dll обычно связаны с узлом моделирования, и их можно активировать / нарушить / остановить в любое время во время моделирования.