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