Добро пожаловать в StackOverflow!
Вы можете активировать блок воспроизведения (по крайней мере, для CANoe, пожалуйста, проверьте совместимость с CANalyzer).
Мне понадобитсяактивация / деактивация блока воспроизведения в формате .asc
variables
{
char replayName[32] = "ibus_data";
}
on key 'b'
{
replayStart( replayName);
}
on key 'e'
{
replayStop( replayName);
}
on key 's'
{
replaySuspend( replayName);
}
on key 'r'
{
replayResume( replayName);
}
on key 'w'
{
writeReplayState( replayName);
}
void writeReplayState( char name[])
{
switch ( replayState( name))
{
case 0:
write( "Replay Block %s is stopped", replayName);
break;
case 1:
write( "Replay Block %s is running", replayName);
break;
case 2:
write( "Replay Block %s is suspended", replayName);
break;
default:
write( "Error: Replay Block %s has an unknown state!", replayName);
break;
};
}
Вам необходимо предварительно настроить файл воспроизведения, а для части фильтра требуется другое решение.Для получения дополнительной информации проверьте ссылку и этот пример: ReplayStart, ReplayStop, ReplaySuspend, ReplayResume, ReplayState
От: Обзор функций CAPL »Общие» Пример: ReplayStart, ReplayStop, ReplaySuspend, ReplayResume, ReplayState
специальные сигналы активации / деактивации
Одно «хакерское» решение, которое приходит мне в голову, это иметь систему флагов на месте.Конечно, некрасивое решение, вероятно, есть что-то лучшее под рукой.Попробуйте что-то вроде:
on message myMessage
{
if (flag)
output(myMessage)
}
on key 'u'
{
flag ? 0 : 1 // short for: toggle the status of the flag
}
Пожалуйста, дайте мне знать, если это помогло.
Относительно этого куска кода:
on key 'p' // specific signals deactivation
{
msg_MESSAGE01.SIGNAL01= 0; // assign the value to the message
msg_MESSAGE02.SIGNAL02 = 1; // assign the value to the message
output(msg_MESSAGE01); //send the message to the CAN bus
output(msg_MESSAGE02); //send the message to the CAN bus
}
Обратите внимание, что он выигралне делай, что ожидаешь.Вы просите отправить сообщение о действии клавиатуры пользователя.Если сообщение уже было установлено для циклического вывода, оно будет продолжать работать с часами, и на клавиатуре будет произведена дополнительная публикация.В противном случае сообщение будет опубликовано только один раз.
Предлагаемое решение работает с флагом в on message *
, который, в свою очередь, работает как фильтр, блокируя сообщение и повторяя его, только если установлен флаг.