Сгенерируйте представления Simulink пользовательских типов данных, заданных кодом C or C++
анализирует C или заголовочные файлы C++ (importInfo = Simulink.importExternalCTypes(headerFiles).h или .hpp) идентифицированный headerFiles для typedefStruct (), и enum введите определения, и генерирует представления Simulink® типов. Выход, importInfo, идентифицирует успешно и неудачно импортированные типы.
Можно использовать представления Simulink:
Снова используйте свой существующий алгоритмический код С и, посредством симуляции, протестируйте ее взаимодействие со своим алгоритмом управления Simulink. Для примера, который показывает, как использовать Legacy Code Tool, смотрите, Интегрируют Функцию C, Аргументы Которой Являются Указателями на Структуры.
Сгенерируйте код (Simulink Coder™), который снова использует типы и данные, которые задает ваш существующий код. Можно затем интегрировать и скомпилировать сгенерированный и существующий код в отдельное приложение. Для примера смотрите, обмениваются Структурированными и Перечислимыми Данными Между Сгенерированным и Внешним Кодом (Embedded Coder).
Создайте и организуйте данные (сигналы, параметры и состояния) в модели при помощи стандартных типов данных, которые ваша организация задает в коде С.
Чтобы создать структуры сигналов в 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. Когда вы будете использовать параметры конфигурации Simulation Target в модели, чтобы идентифицировать заголовочные файлы для включения в процессе моделирования, используйте этот синтаксис, чтобы импортировать типы в целях симуляции модели на вашем хосте - компьютере. Функция интерпретирует типовые типы данных C согласно размерам слова вашего хоста - компьютера.
Когда вы будете использовать этот синтаксис, не используйте парные аргументы, такие как HardwareImplementation, это может конфликтовать с параметрами конфигурации целевой модели. Когда вы используете такие парные аргументы с этим синтаксисом, функция генерирует предупреждение.
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Можно использовать этот синтаксис для:importInfo = Simulink.importExternalCTypes(___,Name,Value)
Задайте имена типов, чтобы импортировать при помощи Names парный аргумент.
Управляйте способом, которым Simulink хранит импортированные типы, например, путем генерации типов в словаре данных Simulink. Используйте MATFile и DataDictionary парные аргументы.
Управляйте способом, которым функция интерпретирует типовые типы данных C. Используйте HardwareImplementation парный аргумент.
Обеспечьте синхронию между определениями кода С и представлениями Simulink путем попытки импортировать обновленные определения кода С снова. Можно выбрать, перезаписать ли существующие представления Simulink. Используйте Overwrite и Verbose парные аргументы.
Функция не поддерживает:
Типы данных C, которые не соответствуют типу, который поддерживает Simulink. Например, Simulink не распознает эквивалент за long double. Для получения информации о типах данных, которые поддерживает Simulink, смотрите Типы данных, Поддержанные Simulink.
64-битные целочисленные типы.
Типы указателей, такие как структура, которая задает поле, значение которого является указателем или typedef оператор, базовый тип которого является типом указателя.
Структуры, которые задают поле, значение которого имеет больше чем одну размерность.
Если значение поля является 1D массивом, функция создает элемент шины, который представляет вектор, не матрицу.
Объединения.
Если поле структуры представляет данные фиксированной точки, или если typedef оператор сопоставляет с базовым типом фиксированной точки, функция устанавливает тип данных соответствующего элемента шины или Simulink.AliasType возразите против соответствующего целочисленного типа Simulink (такого как int16). Средство импорта не может определить фиксированную точку, масштабирующуюся путем парсинга кода С. После использования функции необходимо вручную задать тип данных элемента шины или базовый тип Simulink.AliasType объект при помощи fixdt функция.
Если блок MATLAB Function или график Stateflow® в вашей модели используют импортированное перечисление или тип структуры, сконфигурируйте параметры конфигурации модели, чтобы включать (#include) определение типа от вашего внешнего заголовочного файла. Смотрите Управление Импортированные Определения Шины и Перечисляемого типа (для блока MATLAB Function) и доступ к Переменным Пользовательского кода и Функциям в диаграммах Stateflow (Stateflow) и Интегрируйте Пользовательские Структуры в диаграммах Stateflow (Stateflow) (для графика).
По умолчанию:
Для импортированного перечисления, потому что класс перечисления Simulink выводит из Simulink.IntEnumType, когда вы симулируете или генерируете код из модели, перечисление использует целочисленный размер, который является нативным к вашему целевому компьютеру. Вы задаете характеристики своего целевого компьютера при помощи параметров конфигурации модели, таких как Production device vendor and type и Native word size in production hardware.
Для импортированного типа структуры:
Функция импортирует поле структуры, так же численно объединяют, только если поле использует один из соответствующих типов структуры Simulink Coder как тип данных. Например, если поле структуры в вашем внешнем коде использует тип данных cint8_T, функция импортирует поле как элемент шины (Simulink.BusElement объект), чьим типом данных является 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