Как сгенерировать возможные значения сигнала из 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 обычно связаны с узлом моделирования, и их можно активировать / нарушить / остановить в любое время во время моделирования.

Другие вопросы по тегам