coder.dictionary.Entry class

Пакет: coder.dictionary

Сконфигурируйте определение словаря Embedded Coder

Описание

Объект coder.dictionary.Entry класс представляет одно определение Embedded Coder. В этом API объект называется записью. Информация, которую представляет объект, является определением. В этой документации определение относится к определению объекта ввода.

A coder.Dictionary объект содержит три coder.dictionary.Section объекты, которые представляют разделы словаря Embedded Coder: Классы памяти, разделы памяти и шаблоны индивидуальной настройки функций. A coder.dictionary.Section объект содержит coder.dictionary.Entry объекты, которые представляют определения, хранящиеся в этом разделе словаря Embedded Coder. Имя раздела определяет тип определений кода, содержащихся в разделе. Для доступа к разделам словаря Embedded Coder Dictionary используйте coder.Dictionary объект. Для доступа к словарным статьям в разделе используйте coder.dictionary.Section объект.

Создание

Функции addEntry, getEntry, copyEntry, и find создать coder.dictionary.Entry объекты.

Свойства

расширить все

A coder.dictionary.Entry объект имеет эти свойства.

Имя определения словаря кодера, которое представляет статья. Имя должно быть уникальным среди определений в разделе словаря.

Местоположение определения кода. Это свойство доступно только для чтения.

  • Built-in - Предоставляется Simulink®.

  • Имя модели - Определено в модели Simulink.

  • Имя словаря - Определяется в словаре данных Simulink.

  • Имя пакета - Определяется в пакете Simulink или в пользовательском пакете.

Для доступа к свойствам определения кода, которое представляет запись, используйте getAvailableProperties, get, и set методы. Каждый тип определения кода имеет доступные свойства в списке.

Классы памяти

Имя класса памяти. Имя должно быть уникальным среди классов памяти в словаре.

Списки встроенных и примерных классов памяти, которые предоставляет Simulink, см. в разделе Выбор классе памяти для управления представлением данных в Сгенерированном коде.

Пользовательский текст, который можно использовать для описания назначения и функциональности класса памяти.

Местоположение определения кода. Это свойство доступно только для чтения.

  • Built-in - Предоставляется компанией Simulink.

  • Имя модели - Определено в модели Simulink.

  • Имя словаря - Определяется в словаре данных Simulink.

  • Имя пакета - Определяется в пакете Simulink или в пользовательском пакете.

Спецификация для доступа к данным, сопоставленным с моделью. Доступ к данным непосредственно (Direct) или через настраиваемые get и set функции (Function). Для получения дополнительной информации смотрите Доступ к данным через функции при помощи классов памяти в словаре Embedded Coder.

Зависимости

  • Установка значения свойства Function:

    • Устанавливает DataScope на Imported.

    • Означает, что вы не можете задать свойства мультиобразцов.

    • Включает следующие свойства:

      • AccessMode

      • AllowedAccess

      • GetFunctionName

      • SetFunctionName

    • Устанавливает PreserveDimensions свойство к false. Чтобы сохранить размерности многомерных массивов в сгенерированном коде, установите DataAccess на Direct.

Спецификация, что сгенерированный код определяет данные (Exported) или импорт (Imported) определение данных из внешнего кода. Встроенные классы памяти и классы памяти в пакетах, таких как Simulink, могут использовать другие опции возможностей, такие как File.

Зависимости

  • Установка значения свойства Imported:

    • Отключает DefinitionFile. Чтобы включить ваши внешние исходные файлы кода в процесс сборки, используйте параметры конфигурации модели. Для получения примера см. раздел «Настройка Данных интерфейса».

    • Означает, что вы не можете задать HeaderFile на $N.hхотя вы можете использовать $N лексема.

  • Чтобы задать это свойство равным Exportedнеобходимо использовать один из лексем $N или $R в значении HeaderFile.

Имя файла заголовка, который объявляет данные, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NИмя связанного элемента данных
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control

Зависимости

  • Если вы задаете DataScope на Exportedнеобходимо использовать один из лексем $R или $N в значении этого свойства.

  • Если вы задаете DataScope на Imported, вы не можете задать значение этого свойства $N.h, но вы можете использовать $N лексема.

Имя исходного файла, который определяет данные как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NИмя связанного элемента данных
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control

Зависимости

Настройка DataScope на Imported отключает DefinitionFile. Чтобы включить ваши внешние исходные файлы кода в процесс сборки, используйте параметры конфигурации модели. Для получения примера см. раздел «Настройка Данных интерфейса».

Спецификация для класса памяти для доступа к данным, связанным с моделью, через функции при помощи Value или Pointer. Для получения дополнительной информации смотрите Доступ к данным через функции при помощи классов памяти в словаре Embedded Coder.

Зависимости

Это свойство включено только при установке DataAccess на Function.

Спецификация для класса памяти, разрешающая чтение и запись (ReadWrite), только для чтения (ReadOnly), или только запись (WriteOnly) доступ к данным.

Зависимости

Это свойство включено только при установке DataAccess на Function.

Имя get функция, которая выбирает связанные данные, заданные как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$NИмя связанного элемента данных (обязательно)
$RИмя корневой модели
$MТекст Mangle, который гарантирует уникальность
$UТекст лексемы пользователя. См. «Управление форматом идентификатора».

Зависимости

Это свойство включено только при установке DataAccess на Function и AllowedAccess на ReadWrite или ReadOnly.

Имя set функция, которая выбирает измененные данные, заданные как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$NИмя связанного элемента данных (обязательно)
$RИмя корневой модели
$MТекст Mangle, который гарантирует уникальность
$UТекст лексемы пользователя. См. «Управление форматом идентификатора».

Зависимости

Это свойство включено только при установке DataAccess на Function и AllowedAccess на ReadWrite или WriteOnly.

Спецификация для класса памяти для использования либо настроек хранения, заданных для данных с одним экземпляром, либо настроек, заданных для данных с мультиобразцами. При применении класса хранения к элементу данных словарь Embedded Coder Dictionary определяет, является ли это классом хранения с одним экземпляром или классом хранения с несколькими экземплярами, по типу данных и контексту модели в иерархии моделей-ссылок.

Зависимости

Выбор этого свойства включает свойства SingleInstanceStorageType, MultiInstanceStorageType, и MultiInstanceStructureTypeName, MultiInstanceStructureInstanceName.

Спецификация для агрегирования данных, которые используют класс памяти, в структуру в сгенерированном коде. Каждый элемент данных появляется в коде как поле структуры. Чтобы создать структуру, используйте Structured.

Зависимости

Установка значения свойства Structured включает StructureTypeName и StructureInstanceName.

Имя типа структуры в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Зависимости

Настройка StorageType на Structured включает это свойство.

Имя структурной переменной в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Зависимости

Настройка StorageType на Structured включает это свойство.

Спецификация для агрегирования данных одного экземпляра, который использует класс памяти, в структуру в сгенерированном коде. Каждый элемент данных появляется в коде как поле структуры. Чтобы создать структуру, используйте Structured.

Зависимости

  • Установка свойства UseDifferentPropSettingsForInstanceData на true включает это свойство.

  • Установка значения свойства Structured включает свойства SingleInstanceStructureTypeName и SingleInstanceStructureInstanceName.

Имя типа структуры в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Зависимости

Настройка SingleInstanceStorageType на Structured включает это свойство.

Имя структурной переменной в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Зависимости

Настройка SingleInstanceStorageType на Structured включает это свойство.

Спецификация для агрегирования данных одного экземпляра, который использует класс памяти, в структуру в сгенерированном коде. Каждый элемент данных появляется в коде как поле структуры. Вы не можете изменить значение этого свойства.

Зависимости

Установка свойства UseDifferentPropSettingsForInstanceData на true включает это свойство.

Имя типа структуры в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Зависимости

  • Установка свойства UseDifferentPropSettingsForInstanceData на true включает это свойство.

  • Если вы задаете свойство DataAccess на Function, вы не можете задать это свойство.

Имя структурной переменной в сгенерированном коде, заданное как имя или правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$GИмя класса памяти
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Зависимости

  • Установка свойства UseDifferentPropSettingsForInstanceData на true включает это свойство.

  • Если вы задаете свойство DataAccess на Function, вы не можете задать это свойство.

Спецификация, что сгенерированные коды инициализируют данные.

  • Dynamic - Сгенерированный код инициализирует данные как часть функции точки входа инициализации модели.

  • Static - Сгенерированный код инициализирует данные в том же операторе, который определяет и выделяет память для данных. Оператор назначения появляется в верхней части .c или .cpp исходный файл, вне функции.

  • None - Сгенерированный код не инициализирует данные.

Зависимости

  • Если вы задаете Const на true, вы не можете задать это свойство Dynamic.

  • Установка значения свойства Dynamic устанавливает свойство Const на false.

Расположение в памяти для выделения данных, заданное как coder.dictionary.Entry объект, который представляет раздел памяти, который существует в словаре Embedded Coder. Для получения информации о разделах памяти смотрите Control Data и Function Placement in Memory путем вставки прагм.

Спецификация для класса памяти, чтобы сохранить размерности многомерных массивов в сгенерированном коде. Для получения дополнительной информации см. Раздел «Сохранение размерностей многомерных массивов» в Сгенерированном коде.

Спецификация для применения const квалификатор данных.

Зависимости

  • Если вы выбираете это свойство, вы не можете задать DataInit на Dynamic.

  • Настройка DataInit на Dynamic \ устанавливает это свойство равным false.

Спецификация для применения volatile квалификатор данных.

Спецификация для применения пользовательского квалификатора к данным. Для примера некоторые архитектуры памяти поддерживают квалификаторы far и huge.

Не используйте это свойство для применения ключевого слова static. Вместо этого используйте встроенный класс памяти FileScope, который невозможно применить в редакторе Отображения. Смотрите раздел «Выбор класса памяти для управления представлением данных в сгенерированном коде».

Спецификация, указывающая, разрешать ли использование класса памяти с параметрами модели.

Зависимости

  • Настройка DataInit на Static устанавливает это свойство на true.

  • Настройка DataInit на Dynamic устанавливает это свойство на false.

  • Чтобы задать значение этого свойства, установите DataInit на None.

Спецификация, указывающая, разрешать ли использование класса памяти с сигналами модели.

Зависимости

  • Настройка DataInit на Dynamic устанавливает это свойство на true.

  • Настройка DataInit на Static устанавливает это свойство на false.

  • Чтобы задать значение этого свойства, установите DataInit на None.

Индивидуальные настройки функций

Имя шаблона. Имя должно быть уникальным среди шаблонов функций в словаре. Embedded Coder® содержит встроенные шаблоны, перечисленные в этой таблице.

ШаблонОписание
ModelFunctionВ редакторе Отображения используйте для функций точки входа функции инициализации, выполнения, завершения и сброса (см. «Настройка генерации кода по умолчанию для функций»)
UtilityFunctionВ редакторе Отображения используйте общие служебные функции (см. «Настройка генерации кода по умолчанию для функций»)

Пользовательский текст, который можно использовать, чтобы описать назначение и функциональность шаблона функции.

Имена функций в сгенерированном коде, заданные как правило именования. Правило именования включает комбинацию текста и лексем. Допустимые лексемы перечислены в этой таблице.

ЛексемаОписание
$RИмя корневой модели
$NБазовое имя связанной функции, например step
$UТекст лексемы пользователя, который вы задаете для модели, как описано в Identifier Format Control
$CДля общих служебных функций, контрольная сумма вставлена, чтобы избежать конфликтов имен
$MТекст управления именами, вставленный, при необходимости, чтобы избежать конфликтов имен

Расположение в памяти для выделения функции, заданное как coder.dictionary.Entry объект, который представляет раздел памяти, который существует в словаре Embedded Coder. Для получения информации о разделах памяти смотрите Control Data и Function Placement in Memory путем вставки прагм.

Разделы памяти

Имя раздела памяти. Имя должно быть уникальным среди разделов памяти словаря. Embedded Coder предоставляет встроенные разделы памяти, перечисленные в этой таблице.

Раздел памятиОписание
MemConstПрименить проверку типа склада const к данным.
MemVolatileПрименить проверку типа склада volatile к данным.
MemConstVolatileПрименить проверку типа склада const и volatile к данным.

Пользовательский текст, который можно использовать, чтобы описать назначение и функциональность раздела памяти.

Комментарий кода, который генератор кода включает в себя прагмы или другие украшения, которые вы задаете PreStatement и PostStatement.

Код, такой как прагмы, для вставки перед определениями и объявлениями данных или функций, которые находятся в разделе памяти.

Можно использовать лексему $R чтобы представлять имя модели, которая использует раздел памяти.

Когда вы задаете StatementsSurround на EachVariable, можно использовать лексему $N чтобы представлять имя каждой переменной или функции, которая использует раздел памяти.

Код, такой как прагмы, для вставки после определений и объявлений данных или функций, которые находятся в разделе памяти.

Можно использовать лексему $R чтобы представлять имя модели, которая использует раздел памяти.

Когда вы задаете StatementsSurround на EachVariable, можно использовать лексему $N чтобы представлять имя каждой переменной или функции, которая использует раздел памяти.

Спецификация для вставки операторов кода (PreStatement и PostStatement):

  • Вокруг каждой переменной и функции, которая использует раздел памяти. Выберите EachVariable.

  • Один раз, вокруг всего раздела памяти. Сгенерированный код агрегирует определения переменной и функции в смежный блок кода и окружает блок операторами. Выберите AllVariables.

Методы

расширить все

Примеры

свернуть все

Откройте модель rtwdemo_roll и представлять словарь Embedded Coder Dictionary при помощи coder.Dictionary coderDictionary объекта. Используйте этот объект для доступа к Классам памяти разделу словаря, который содержит определения класса памяти.

rtwdemo_roll
coderDictionary = coder.dictionary.open('rtwdemo_roll');

Создайте coder.dictionary.Section объект, который представляет раздел «Классы памяти» Embedded Coder.

storageClassesSect = getSection(coderDictionary, 'StorageClasses');

Добавьте определение с именем MyStorageClass в раздел «Классы памяти». В определении класса памяти используются настройки свойств по умолчанию. Изменить эти настройки можно при помощи set функция.

newEntry = addEntry(storageClassesSect,'MyStorageClass')
newEntry = 

  Entry with properties:

          Name: 'MyStorageClass'
    DataSource: 'rtwdemo_roll'
Введенный в R2019b