Writing S-Functions | ![]() ![]() |
Write tunable parameter information to the model.rtw
file.
Syntax
int_T ssWriteRTWParameters(SimStruct *S, int_T nParams, int_T paramType, const char_T *paramName, const char_T *stringInfo, ...)
Arguments
S
SimStruct representing an S-Function block.
nParams
Number of tunable parameters.
paramType
Type of parameter (see Parameter Type-Specific Arguments).
paramName
Name of the parameter.
stringInfo
General information about the parameter, such as how it was derived.
...
Remaining arguments depend on the parameter type (see Parameter Type-Specific Arguments).
Description
Use this function in mdlRTW
to write tunable parameter information to this S-function's model.rtw
file. Your S-function must write the parameters out in the same order as they are declared at the beginning of the S-function. This function returns true if successful.
Note This function is provided for compatibility with S-functions that do not use run-time parameters. It is suggested that you use run-time parameters (see Run-Time Parameters). If you do use run-time parameters, you do not need to use this function. |
Parameter Type-Specific Arguments
This section lists the parameter-specific arguments required by each parameter type.
SS_WRITE_VALUE_VECT
(vector parameterArgument |
Description |
const real_T *valueVect |
Pointer to an array of vector values |
int_T vectLen |
Length of the vector |
SSWRITE_VALUE_2DMAT
(matrix parameter)Argument |
Description |
const real_T *valueMat |
Pointer to an array of matrix elements |
int_T nRows |
Number of rows in the matrix |
int_T nCols |
Number of columns in the matrix |
SSWRITE_VALUE_DTYPE_2DMAT
Argument |
Description |
const real_T *valueMat |
Pointer to an array of matrix elements |
int_T nRows |
Number of rows in the matrix |
int_T nCols |
Number of columns in the matrix |
int_T dtInfo |
Data type of matrix elements (see Specifying Data Type Info) |
SSWRITE_VALUE_DTYPE_ML_VECT
Argument |
Description |
const void *rValueVect |
Real component of the complex vector |
const void *iValueVect |
Imaginary component of the complex vector |
int_T vectLen |
Length of the vector |
int_T dtInfo |
Data type of the vector (see Specifying Data Type Info) |
SSWRITE_VALUE_DTYPE_ML_2DMAT
Specifying Data Type Info
You obtain the data type of the value argument passed to the ssWriteRTW
macros using
where dTypeId
can be any one of the enum
values in BuiltInDTypeID
(SS_DOUBLE
, SS_SINGLE
, SS_INT8
, SS_UINT8
, SS_INT16
, SS_UINT16
, SS_INT32
, SS_UINT32
, SS_BOOLEAN
) defined in simstuc_types.h
. The isComplex
argument is either 0
or 1
.
For example, DTINFO(SS_INT32,0)
is a noncomplex 32-bit signed integer.
If isComplex==1
, the array of values is assumed to have the real and imaginary parts arranged in an interleaved manner (i.e., Simulink format). If you prefer to pass the real and imaginary parts as two separate arrays, you should use the macro ssWriteRTWMxVectParam or ssWriteRTWMx2dMatParam.
Example
See simulink/src/sfun_multiport.c
for an example that uses this function.
Languages
See Also
mdlRTW
![]() | ssWriteRTWMxVectParam | ssWriteRTWParamSettings | ![]() |