Создание представлений Simulink пользовательских типов данных, определенных кодом C или C++
выполняет синтаксический анализ заголовочных файлов C или C++ (importInfo = Simulink.importExternalCTypes(headerFiles).h или .hpp), идентифицированные headerFiles для typedef, struct, и enum и создает представления типов Simulink ®. Выходные данные ,importInfo, определяет успешно и неудачно импортированные типы.
Представления Simulink можно использовать для:
Повторно используйте существующий алгоритмический код C и протестируйте его взаимодействие с алгоритмом управления Simulink. Пример использования устаревшего инструмента кода см. в разделе Интеграция функции C, аргументы которой указывают на структуры.
Создайте код (Simulink Coder™), который повторно использует типы и данные, определенные существующим кодом. Затем можно интегрировать и скомпилировать созданный и существующий код в одном приложении. Пример см. в разделе Обмен структурированными и перечисленными данными между сгенерированным и внешним кодом (встроенный кодер).
Создание и организация данных (сигналов, параметров и состояний) в модели с использованием стандартных типов данных, определенных организацией в коде C.
Для создания структур сигналов в Simulink используются невиртуальные шины. См. раздел Группирование сигнальных линий в виртуальные шины.
Для создания структур параметров используйте структуры MATLAB ® иSimulink.Parameter объекты. См. раздел Организация определений связанных параметров блоков в структурах.
Сведения о создании перечисляемых данных см. в разделе Использование перечисляемых данных в моделях Simulink.
Соответствие примитиву typedef оператор, используйте Simulink.AliasType объект для задания типов данных параметра и сигнала в модели.
По умолчанию функция:
Импорт перечисляемого типа путем создания файла сценария, производного класса перечисления от Simulink.IntEnumType, как описано в разделе Определение перечислений Simulink. При необходимости можно отредактировать определение класса для его настройки (например, путем реализации addClassNameToEnumNames метод).
Импорт типа структуры путем создания Simulink.Bus в базовой рабочей области.
Импорт примитива typedef оператор путем генерации Simulink.AliasType в базовой рабочей области.
Интерпретирует типовые типы данных C, такие как int или short, в соответствии с длинами слов вашего хост-компьютера. Например, для большинства современных машин, int имеет 32-битную длину слова, поэтому функция представляет int структурное поле как элемент шины, использующий тип данных Simulink int32.
Чтобы переопределить это поведение по умолчанию, определите целевую аппаратную плату с помощью HardwareImplementation парный аргумент.
Дополнительные сведения о поведении по умолчанию см. в разделе Советы.
создает представления Simulink пользовательских типов данных C путем анализа модели, идентифицируемой с помощью importInfo = Simulink.importExternalCTypes(modelName)modelName. При использовании параметров конфигурации цели моделирования в модели для определения файлов заголовков для включения во время моделирования используйте этот синтаксис для импорта типов с целью моделирования модели на хост-компьютере. Функция интерпретирует типовые типы данных C в соответствии с длинами слов главного компьютера.
При использовании этого синтаксиса не используйте аргументы пары, такие как HardwareImplementation, что может противоречить параметрам конфигурации целевой модели. При использовании таких аргументов пары с таким синтаксисом функция генерирует предупреждение.
указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Этот синтаксис можно использовать для:importInfo = Simulink.importExternalCTypes(___,Name,Value)
Укажите имена типов для импорта с помощью Names парный аргумент.
Управление способом хранения импортированных типов в Simulink, например, путем создания типов в словаре данных Simulink. Используйте MATFile и DataDictionary аргументы пары.
Управление тем, как функция интерпретирует типовые типы данных C. Используйте HardwareImplementation парный аргумент.
Обеспечьте синхронизацию определений C-кода и представлений Simulink путем повторной попытки импорта обновленных определений C-кода. Можно выбрать, следует ли перезаписывать существующие представления Simulink. Используйте Overwrite и Verbose аргументы пары.
Функция не поддерживает:
Типы данных C, не соответствующие типу, поддерживаемому Simulink. Например, Simulink не распознает эквивалент для long double. Сведения о типах данных, поддерживаемых Simulink, см. в разделе Типы данных, поддерживаемые Simulink.
Типы указателей, например структура, определяющая поле, значением которого является указатель или typedef оператор, базовый тип которого является типом указателя.
Структуры, определяющие поле, значение которого имеет несколько измерений.
Если значением поля является массив 1-D, функция создает элемент шины, который представляет вектор, а не матрицу.
Профсоюзы.
Если поле структуры представляет данные с фиксированной точкой или если typedef оператор сопоставляется с базовым типом с фиксированной точкой, функция устанавливает тип данных соответствующего элемента шины или Simulink.AliasType объект к соответствующему целочисленному типу Simulink (например, int16). Импортер не может определить масштабирование с фиксированной точкой путем синтаксического анализа кода C. После использования функции необходимо вручную указать тип данных элемента шины или базовый тип Simulink.AliasType с помощью fixdt функция.
Если функциональный блок MATLAB или диаграмма Stateflow ® в модели использует импортированный тип перечисления или структуры, настройте параметры конфигурации модели для включения (#include) определение типа из внешнего файла заголовка. См. разделы Управление импортированными определениями типов шины и перечисления (для функционального блока MATLAB) и Доступ к переменным и функциям пользовательского кода в диаграммах Stateflow (Stateflow Charts) и Интеграция пользовательских структур в диаграммы Stateflow (Stateflow Charts) (для диаграммы).
По умолчанию:
Для импортированного перечисления, поскольку класс перечисления Simulink является производным от Simulink.IntEnumType, при моделировании или создании кода из модели перечисление использует размер целого числа, который является собственным для целевого оборудования. Характеристики целевого оборудования задаются с помощью таких параметров конфигурации модели, как Поставщик и тип производственного устройства и Собственный размер слова на производственном оборудовании.
Для импортированного типа структуры:
Функция импортирует поле структуры как численно сложное, только если поле использует один из соответствующих типов структуры Simulink Coder в качестве типа данных. Например, если поле структуры во внешнем коде использует тип данных. cint8_T, функция импортирует поле как элемент шины (Simulink.BusElement object), тип данных которого - int8 и Complexity свойство имеет значение 'complex'.
Для вложенных структур функция создает объект шины для каждого уникального типа структуры.
Для импортированного типа структуры или перечисления, если внешний код использует typedef оператор для наименования типа, имя созданного объекта шины или класс перечисления Simulink соответствует typedef имя. Если код не использует typedef оператор, имя объекта или класса struct_ или typeenum_ где typetype - имя тега типа. Если имя тега не указано или применяется typedef имя, Simulink создает произвольное имя для объекта или класса.
Функция настраивает созданные представления Simulink как импортированные для целей моделирования и создания кода. Например, для объектов шины функция устанавливает DataScope свойство для 'Imported' и HeaderFile с именем внешнего файла заголовка. Для моделирования или создания кода из модели, использующей одно из этих представлений Simulink, необходимо сделать файл заголовка доступным для модели.
При указании файлов для Simulink.importExternalCTypes для использования или генерации, например, с помощью DataDictionary аргумент пары:
Если существующие файлы находятся в текущей папке или в пути MATLAB, указывать путь к файлу не требуется. Имя файла можно указать самостоятельно.
Для управления расположением папки созданных файлов можно указать пути, а также имена файлов. Вы также можете использовать OutputDir парный аргумент.
enumeration | Simulink.AliasType | Simulink.Bus