ssSetRunTimeParamInfo

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

Синтаксис

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

Аргументы

S

SimStruct, представляющий блок S-Function.

param

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

info

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

Описание

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

Структура ssParamRec

The 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

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

Языки

C, C++

Пример

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

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