model
.rtw
ФайлМожно получить метаинформацию о сгенерированном коде путем доступа
файл в папке сборки.к model
.rtw
Во время процесса сборки генератор кода пишет информацию о Simulink® сигнал и объекты данных параметра к
файл. model
.rtwObject
запись с CoderInfo
информация о свойстве записана для каждого параметра, или сигнализируйте, что это соответствует определенным условиям. Эти условия описаны в Записях объекта для Параметров и Записях объекта для Сигналов.
Object
записи содержат информацию, соответствующую связанному объекту данных. Получить доступ к Object
записи, необходимо записать код Компилятора Выходного языка (см. Информацию об объекте Доступа к данным при помощи Кода Компилятора выходного языка (TLC)).
Для некоторых данных, задавая классы памяти может быть полезным. Для получения дополнительной информации смотрите Точно Представление данных Управления путем Записи Кода TLC для Класса памяти (Embedded Coder). Embedded Coder® требуется.
Примечание
Они Object
примеры записи сгенерированы из модели rtwdemo_configrpinterface
в качестве примера. Параметры и сигналы индивидуально сконфигурированы при помощи
ExportedGlobal
класс памяти.
Object
запись, которая имеет CoderInfo
информация о свойстве включена в ModelParameters
раздел
файл для каждого параметра, который удовлетворяет этим условиям:model
.rtw
Параметр решает к Simulink.Parameter
объект данных или к объекту данных параметра, который прибывает из класса, выведенного из Simulink.Parameter
класс.
Символ параметра сохраняется в сгенерированном коде. Символ сохраняется когда CoderInfo.StorageClass
свойство объекта данных не установлено в Auto
или если вы устанавливаете класс памяти на отдельном параметре при помощи редакторов Отображений Кода или coder.mapping.api.CodeMapping
объект.
Этот пример показывает часть Object
запись для параметра.
ModelParameters { NumParameters 10 ... Parameter { Identifier "K1" LogicalSrc P7 WorkspaceVarName "K1" Protected no Tunable yes StorageClass "ExportedGlobal" Value [2] OriginalDataTypeIdx 2 CGTypeIdx 36 ContainerCGTypeIdx 42 IsPublic 1 ReferencedBy Matrix(1,4) [[1, 0, 4, 2];] GraphicalRef Matrix(1,2) [[0, 10];] GraphicalSource [-1, -1] OwnerSysIdx [1, -1] HasObject 1 Object { Package Simulink Class Parameter ObjectProperties { Value 2.0 CoderInfo { Object { Package Simulink Class CoderInfo ObjectProperties { HasCoderInfo 1 StorageClass "ExportedGlobal" TypeQualifier "" Alias "" Alignment -1 IsCSCPackageOverridden 0 CSCPackageName "Simulink" ParameterOrSignal "Parameter" CustomStorageClass "Default" CustomAttributes { Object { Package SimulinkCSC Class AttribClass_Simulink_Default ObjectProperties { } } } } } } ... }
Object
запись, которая имеет CoderInfo
информация о свойстве включена в любого ExternalOutputs
, ExternalInputs
, или BlockOutputs
раздел
файл для каждого сигнала (включая корневой уровень Inport и блоки Outport), чей символ сохраняется в сгенерированном коде. Символ сохраняется, когда сигнал использует класс памяти кроме model
.rtwAuto
и индивидуально сопоставлен.
Object
запись, которая имеет CoderInfo
информация о свойстве включена в
файл для каждого сигнала, который сохраняет символ сигнала в сгенерированном коде и удовлетворяет этим условиям:model
.rtw
CoderInfo.StorageClass
свойство объекта данных не установлено в Auto
.
Объект данных индивидуально сопоставлен с предопределенным классом памяти при помощи редактора Отображений Кода или coder.mapping.api.CodeMapping
объект.
Если вы конфигурируете сигнал быть неструктурированной глобальной переменной в сгенерированном коде, его валидность и уникальность осуществляются, и его символ сохраняется.
Этот пример показывает часть Object
запись для блока Outport корневого уровня.
ExternalOutputs { ... NumExternalOutputs 1 ... ExternalOutput { ArgSrc Y0 Block [1,3] BlockName "<Root>/Out1" GrSrc [0, 4] Identifier "output" StorageClass "ExportedGlobal" HasObject 1 Object { Package Simulink Class Signal ObjectProperties { CoderInfo { Object { Package Simulink Class CoderInfo ObjectProperties { HasCoderInfo 1 StorageClass "ExportedGlobal" TypeQualifier "" Alias "output" Alignment -1 IsCSCPackageOverridden 0 CSCPackageName "Simulink" ParameterOrSignal "Signal" CustomStorageClass "Default" CustomAttributes { Object { Package SimulinkCSC Class AttribClass_Simulink_Default ObjectProperties { } } } } } } ... }
Здесь, пример кода показывает, как получить доступ к информации об объекте данных от
файл при помощи кода TLC.model
.rtw
Этот фрагмент кода выполняет итерации по Parameter
структуры в ModelParameters
раздел
файл. Код извлекает информацию из параметра model
.rtwObject
записи.
%with CompiledModel.ModelParameters %foreach modelParamIdx = NumParameters %assign thisModelParam = Parameter[modelParamIdx] %assign paramName = thisModelParam.Identifier %if EXISTS("thisModelParam.Object.ObjectProperties") %with thisModelParam.Object.ObjectProperties %assign valueInObject = Value %with CoderInfo.Object.ObjectProperties %assign storageClassInObject = StorageClass %endwith %% *********************************** %% Access user-defined properties here %% *********************************** %if EXISTS("MY_PROPERTY_NAME") %assign userDefinedPropertyName = MY_PROPERTY_NAME %endif %% *********************************** %endwith %endif %endforeach %endwith
Этот фрагмент кода выполняет итерации по ExternalBlockOutput
структуры в BlockOutputs
раздел
файл. Код извлекает информацию из model
.rtwObject
сигнала записи.
%with CompiledModel.BlockOutputs %foreach blockOutputIdx = NumExternalBlockOutputs %assign thisBlockOutput = ExternalBlockOutput[blockOutputIdx] %assign signalName = thisBlockOutput.Identifier %if EXISTS("thisBlockOutput.Object.ObjectProperties") %with thisBlockOutput.Object.ObjectProperties %with CoderInfo.Object.ObjectProperties %assign storageClassInObject = StorageClass %endwith \ %% ***********************************\ %% Access user-defined properties here\ %% *********************************** %if EXISTS("MY_PROPERTY_NAME") %assign userDefinedPropertyName = MY_PROPERTY_NAME %endif %% *********************************** %endwith %endif %endforeach %endwith