Я запрограммировал сокет UDP на C++, чтобы получить строку из другой программы. Теперь мне нужно использовать данные в проекте Simulink. Я попробовал блок UDP-приемника в Simulink, но не могу отделить строку данных, поэтому я предпочитаю запускать свой UDP-сокет (на C++) как блок в Simulink. Я знаю, что мне следует использовать S-функцию, но я не знаю, как это сделать и есть ли другая возможность.
Как я могу запустить программу C++ как блок Simulink?
comment
Какая у вас проблема с выводом блока приемника Simulink UDP? Это может быть легче решить, чем создавать собственную S-функцию, особенно если вы не знакомы с написанием S-функций.
- person Praetorian   schedule 17.04.2012
comment
После блока приемника UDP я помещаю блок декодера ASCII. Я отправляю X:3.14 Y:55 и после декодера ASCII получаю (в блоке Display) 00301400055. Одним из решений может быть способ различать буквы, символы и разделять их как переменные.
- person Tapia   schedule 17.04.2012
comment
Я никогда не использовал наборы инструментов xPC Target и/или Instrument Control, поэтому не могу помочь вам с деталями, но не можете ли вы передать вывод блока UDP в функциональный блок MATLAB и проанализировать данные? Если вас не волнует генерация кода из модели, синтаксический анализ можно легко выполнить с помощью регулярных выражений.
- person Praetorian   schedule 17.04.2012
Ответы (1)
Существует функция под названием Legacy Code Tool
, которая должна делать то, что вам нужно. По сути, это упрощает процесс определения пользовательских блоков S-функции Simulink при использовании существующих C
/C++
. Кажется, я помню, что есть несколько ограничений при использовании C++
вместо C
, но я не думаю, что они слишком значительны...
person
BigA
schedule
20.08.2012