У вас есть два способа динамически влиять на значение вашего сообщения: библиотеки DLL и отправка пользовательских сообщений.
Обычная отправка сообщения - это основной способ, где
- вы определяете сообщение, например:
message Battery_Traction Batt_msg;
- вы запускаете его отправку( выход функция)
- вы настроили циклическую отправку
on timer Cycletimemsg1 {output(msg1);}
и т. Д.
IL DLL делают все это дляВы без особых усилий по кодированию с вашей стороны, но они в значительной степени зависят от настроек и атрибутов dbc, которые вы связали в качестве базы данных с вашим каналом CAN .
К сожалению, они не очень хорошо играют вместе, а это значит, что вам нужны передовые ноу-хау CANoe для их использования в одной и той же среде.Вы в основном обошли ваши CANOEILNLVECTOR.dll, работающие, отправив явное сообщение.
Таким образом, ваш код, если вы обращаетесь к своему сигналу через IL, должен выглядеть так:
variables
{
/*no need to define custom message object, they are already "known" to IL by dbc*/
}
on start
{
$Batt_msg::Isolation_Signal = 0x02; //0x02:On
/*NO need for output either (IF YOUR MESSAGE IS defined Cyclic in dbc), */
}
Если ваш сигнал необозначенный на $Batt_msg::Isolation_Signal
, просто перетащите сигнал с панели символов браузеров CAPL и добавьте знак $ перед ним.
Через знак доллара ($) вы получаете доступ к атрибуту значения сигнала объектов класса dbsignal .