Я не знаю протокол SWITCH, но я могу помочь вам получить доступ к байту за байтом полезной нагрузки интересующего вас сообщения. Допустим, ваш идентификатор сообщения равен 0x100 (или у вас есть его имя по базе данных dbc, ваш вызов).определить сообщение).
Если вы работаете в тестовой среде (тестовый узел, такой как тестовый узел CAPL / XML), вы можете определить тестовый сценарий / функцию и в ней следующую последовательность:
message 0x100 MessageContainer;
тогда вы ждете своего сообщения в точке, где вы ожидаете, что полезная нагрузка будет вам по вкусу:
...,,.
testwaitformessage(0x100,cycletimeofMessage); /*Cycletime the message has, or maximum time you expect your message to arrive*/
testGetWaitEventMsgData(MessageContainer); /*the message object MessageContainer will be filled with the content of the message catched early in testwaitformessage()*/
write("%X",MessageContainer.byte(0)); /*you access the bytes through the .byte selector field of the message object and do whatever you wish with it.*/
Если вы хотите выполнить декодирование в узле моделирования , вы можете сделать это только через события, и это намного проще:
on message 0x100
{
write("The first byte of the captured message 0x100 is 0x%X",this.byte(0));
}
Конечно, эта процедура по событию работает и в тестовых средах.