По умолчанию, если модель использует пользовательский тип данных (такой как Simulink.AliasType
возразите или класс перечисления), генератор кода помещает соответствующее определение типа (typedef
) в
файл. Когда вы генерируете код от многоуровневых моделей, каждая модель копирует определение типа. Эти дублирующиеся определения могут препятствовать тому, чтобы вы компилировали тела сгенерированного кода вместе.model
_types.h
Однако можно сконфигурировать генератор кода, чтобы поместить одно определение типа в заголовочный файл в _sharedutils
папка. Затем когда вы генерируете код из модели, если определение типа уже существует в _sharedutils
папка, генератор кода не копирует определение, но вместо этого снова использует его посредством включения (#include
).
Через этот механизм можно совместно использовать:
Тип данных Simulink® возражает, что вы инстанцируете от классов Simulink.AliasType
, Simulink.Bus
, и Simulink.NumericType
. Для основной информации о создании и использовании этих объектов, смотрите Имена типов данных Управления в Сгенерированном коде (Embedded Coder) и Simulink.Bus
.
Перечисления, которые вы задаете, например, путем авторской разработки enum
класс в файле скрипта или при помощи функции Simulink.defineIntEnumType
. Для основной информации об определении перечислений в Simulink смотрите Использование Перечислимые Данные в Моделях Simulink.
Совместно использовать пользовательский тип данных через многоуровневые модели:
Задайте тип данных. Например, создайте Simulink.AliasType
объект.
Установите осциллограф данных и свойства заголовочного файла к определенным значениям, которые позволяют совместно использовать.
Для объекта типа данных, набор DataScope
свойство к 'Exported'
и, опционально, задайте имя заголовочного файла через HeaderFile
свойство.
Для перечисления, которое вы задаете как enum
класс в файле скрипта, реализуйте getDataScope
метод (с возвращаемым значением 'Exported'
) и, опционально, реализуйте getHeaderFile
метод.
Для перечисления, которое вы задаете при помощи Simulink.defineIntEnumType
функция, набор 'DataScope'
парный аргумент к 'Exported'
и, опционально, задайте 'HeaderFile'
парный аргумент
Используйте тип данных в моделях.
Прежде, чем сгенерировать код из каждой модели, набор параметр конфигурации модели Shared code placement к Shared location
.
Сгенерируйте код из моделей.
Примечание
Можно сконфигурировать определение пользовательского типа данных, чтобы появиться в заголовочном файле в _sharedutils
папка. Разделяемые служебные функции, которые сборка модели генерирует в _sharedutils
папка не использует имя пользовательского типа данных. Только типовой кодекс, расположенный в папках кода для каждой модели, использует имя пользовательского типа данных.