Укажите атрибуты параметра времени выполнения
void ssSetRunTimeParamInfo(SimStruct *S, int_T param, ssParamRec *info)
SSimStruct представляет S-функциональный блок.
paramИндекс параметра времени выполнения.
infossParamRec структура, содержащая атрибуты параметра времени выполнения.
Используйте эту функцию в mdlSetWorkWidths для указания информации о параметре времени выполнения. Использовать ssParamRec для передачи атрибутов параметра функции. Дополнительные сведения см. в разделе Создание и обновление параметров времени выполнения S-функции.
simstruc.h макрос определяет эту структуру следующим образом:
typedef struct ssParamRec_tag {
const char *name;
int_T nDimensions;
int_T *dimensions;
DTypeId dataTypeId;
boolean_T complexSignal;
void *data;
const void *dataAttributes;
int_T nDlgParamIndices;
int_T *dlgParamIndices;
TransformedFlag transformed; /* Transformed status */
boolean_T outputAsMatrix; /* Write out parameter
* as a vector (false)
* [default] or a matrix (true)
*/
} ssParamRec;
Запись содержит следующие поля.
nameИмя параметра. Это должно указывать на постоянную память. Не устанавливать локальную переменную (static char name[32] или имя вектора символа в порядке).
nDimensionsКоличество размеров, которое имеет этот параметр.
dimensionsМассив, задающий размер каждого измерения параметра.
dataTypeIdТип данных параметра. Список встроенных типов данных см. в разделе ssGetInputPortDataType.
complexSignalУказывает, имеет ли этот параметр в качестве значений комплексные числа (true) или вещественные числа (false).
data Указатель на значение этого параметра времени выполнения. Если параметр является вектором или матрицей или комплексным числом, это поле указывает на массив значений, представляющих элементы параметра. Сложные сигналы Simulink ® сохраняются с чередованием. Аналогично, сложные параметры времени выполнения должны храниться с чередованием. Обратите внимание, чтоmxArrays сохраняет действительную и комплексную части комплексных матриц как две отдельные смежные части данных вместо перемежения действительной и комплексной частей.
Примечание
ssSetRunTimeParamInfo в этом поле должно быть установлено фактическое значение параметра. Это необходимо для того, чтобы Simulink Coder™ правильно выполнил оптимизацию пула параметров. Если не удается установить поле данных во время регистрации и затем заполнить его на более позднем этапе, может появиться ошибка, указывающая на то, что некоторые параметры были неправильно объединены друг с другом.
dataAttributesУказатель атрибутов данных является постоянным местом хранения, где S-функция может хранить дополнительную информацию, описывающую данные, и затем восстанавливать эту информацию позже (потенциально в другой функции).
nDlgParamIndicesКоличество диалоговых параметров, используемых для вычисления этого параметра времени выполнения.
dlgParamIndicesИндексы диалоговых параметров, используемых для вычисления этого параметра времени выполнения.
transformedУказывает связь между этим параметром времени выполнения и диалоговыми параметрами, указанными dlgParamIndices. Это поле может иметь любое из следующих значений, определенных TransformFlag в simstruc.h.
RTPARAM_NOT_TRANSFORMED
Указывает, что этот параметр времени выполнения соответствует одному диалоговому параметру (nDialogParamIndices равен единице) и имеет то же значение, что и параметр диалогового окна.
RTPARAM_TRANSFORMED
Указывает, что значение этого параметра времени выполнения зависит от значений нескольких диалоговых параметров (nDialogParamIndices > 1) или что этот параметр времени выполнения соответствует одному диалоговому параметру, но имеет другое значение или тип данных.
RTPARAM_MAKE_TRANSFORMED_TUNABLE
Указывает, что этот параметр времени выполнения соответствует одному настраиваемому диалоговому параметру (nDialogParamIndices является единицей) и что значение параметра времени выполнения или тип данных отличаются от значений параметра диалогового окна. Во время создания кода продукт Simulink Coder записывает тип данных и значение параметра времени выполнения (а не параметра диалога) в файл Simulink Coder. Например, предположим, что параметр диалогового окна содержит переменную рабочего пространства k типа double и ценность 1. Далее предположим, что S-функция устанавливает тип данных соответствующей переменной времени выполнения в int8 и значение параметра времени выполнения для 2. В этом случае во время генерации кода продукт Simulink Coder записывает k в файл Simulink Coder в качестве int8 переменная с начальным значением 2.
outputAsMatrixУказывает, следует ли записывать значения этого параметра в файл в виде матрицы (true) или вектора (false).model.rtw
C, C++
См. S-функцию sfun_runtime4.c используется в sfcndemo_runtime.