У меня очень большой программный проект на C / C ++ в Visual Studio и Eclipse. Есть некоторые сторонние программы в виде моделей SIMULINK. Возможно ли в настоящее время:
1) Написать функции оболочки C / C ++ для моделей SIMULINK?
2) Вызывать функции из внешней среды, такие как проекты VS или Eclipse C / C ++, для выполнения интеграции и дальнейших задач?
Я знаю, что вы можете использовать функции MEX (MATLAB Exec.), Которые являются C / C ++ или FORTRAN, обернутыми для использования MATLAB. Но это не идеально для меня.
Случай использования
Мой пример использования основан на моделировании и симуляции, но мои подсистемы довольно разнообразны с точки зрения формата данных. 50% в C / C ++, 35% в моделях SIMULINK, а остальные в двоичных исполняемых файлах, объектном коде, символьных данных и т. Д. Я занимаюсь некоторым сложным моделированием системы; Извините, но не могу сказать вам больше из соображений защиты.
Судя по полученным ответам, люди хотят просто использовать то, что предлагает Mathworks. Мое намерение состояло в том, чтобы получить больше как ответ да нет, но до сих пор у меня тоже были хорошие объяснения.
ОБНОВИТЬ
Мне нужно будет оценить встроенный кодер SIMULINK и посмотреть, сколько дополнительных усилий потребуется для полировки сгенерированного кода. Я читал, что во встроенном кодере есть средство генерации кода на уровне производства; должно быть интересно.
Есть два варианта в зависимости от ваших требований:
преобразовать модели Simulink в C, используя Simulink Coder. Это эффективно выводит вас из среды Simulink, поэтому интеграция функциональных возможностей модели в существующую среду идентична включению любого другого кода на языке Си. Конечно, для этого вам нужен доступ к Simulink Coder.
Вызов MATLAB Engine. Обратите внимание, вы не можете позвонить только Simulink. Вы вызываете MATLAB и запускаете различные команды MATLAB для загрузки, выполнения и опроса модели Simulink.
Других решений пока нет …