ssSetRunTimeParamInfo

Задайте атрибуты параметра периода выполнения

Синтаксис

void ssSetRunTimeParamInfo(SimStruct *S, int_T param,
  ssParamRec *info)

Аргументы

S

SimStruct, представляющий Блок s-function.

param

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

информация

Структура ssParamRec, содержащая атрибуты параметра периода выполнения.

Описание

Используйте эту функцию в mdlSetWorkWidths, чтобы задать информацию о параметре периода выполнения. Используйте структуру ssParamRec, чтобы передать атрибуты параметра функции. Смотрите Создают и Параметры периода выполнения S-функции Обновления для получения дополнительной информации.

Структура ssParamRec

Макрос 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;

Запись содержит следующие поля.

имя

Имя параметра. Это должно указать на постоянную память. Не устанавливайте на локальную переменную (static char name[32], или имя вектора символа хорошо).

nDimensions

Количество размерностей, которые имеет этот параметр.

размерности

Массив, дающий размер каждой размерности параметра.

dataTypeId

Тип данных параметра. Для списка встроенных типов данных смотрите ssGetInputPortDataType.

complexSignal

Задает, имеет ли этот параметр комплексные числа (TRUE) или вещественные числа, (FALSE) как значения.

данные

Указатель на значение этого параметра периода выполнения. Если параметр является вектором или матрицей или комплексным числом, это поле указывает на массив значений, представляющих элементы параметра. Комплексные сигналы Simulink® сохранены чередованные. Аналогично комплексные параметры периода выполнения должны быть сохранены чередованные. Обратите внимание на то, что mxArrays хранит действительные и комплексные части комплексных матриц, когда два разделяют непрерывные части данных вместо того, чтобы чередовать действительные и комплексные части.

Примечание

ssSetRunTimeParamInfo должен установить это поле на фактическое значение параметра. Это необходимо для Simulink Coder™, чтобы выполнить оптимизацию объединения параметра правильно. Если вам не удается установить поле данных во время регистрации и затем заполнить его в более позднем соединении, вы можете видеть ошибку указать, что некоторые параметры были неправильно объединены друг с другом.

dataAttributes

Указатель атрибутов данных является персистентным местом хранения, где S-функция может хранить дополнительную информацию, описывающую данные, и затем восстановить эту информацию позже (потенциально в различной функции).

nDlgParamIndices

Количество диалоговых параметров раньше вычисляло этот параметр периода выполнения.

dlgParamIndices

Индексы диалоговых параметров раньше вычисляли этот параметр периода выполнения.

transformed

Задает отношение между этим параметром периода выполнения и диалоговыми параметрами, заданными dlgParamIndices. Это поле может иметь любое из следующих значений, заданных TransformFlag в simstruc.h 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

Задает, выписать ли значения этого параметра к файлу model.rtw как (TRUE) матрица или как (FALSE) вектор.

Языки

C, C++

Пример

Смотрите S-функцию sfun_runtime4.c, используемый в sfcndemo_runtime.

Представлено до R2006a

Была ли эта тема полезной?