将非运内参数的值写入
文件模型
.rtw.
INT_T SSWRITERTWPARAMSETTINGS(SIMSTRUCT * S,INT_T NPARAMSETTINGS,INT_T PARAMTYPE,CONST CHAR_T * SARKENAME,...)
S.
Simstruct代表S函数块。
nparamsettings.
参数设置数。
paramtype.
参数类型(参见参数设置类型特定的参数)。
setainname.
参数的名称。
......
剩下的参数取决于参数类型(参见参数设置类型特定的参数)。
一个INT_T.
(1
或者0.
) 或者Boolean_t.
(真的
或者错误的
)表明该功能的成功或失败。
使用此功能mdlrtw.
将非运内参数设置信息写入此S函数
文件。您还可以使用此宏写出为此S函数生成代码所需的其他常量值。模型
.rtw.
本节列出了每个参数类型所需的参数特定参数。
sswrite_value_str.
(未引用的字符向量):使用sswrite_value_str.
对于任何单词字符向量,不会以数字开头或包含混合字符。在某些情况下,sswritertwparamsettings.
即使您使用过,括在引号中的字符向量sswrite_value_str.
。例如,如果字符向量的长度导致模型文件中的相应行以包裹在字符向量的中间,sswritertwparamsettings.
使用引号来维护字符向量的值。
争论 | 描述 |
---|---|
const char_t *值 |
字符矢量(例如,美国 ) |
sswrite_value_qstr.
(引用字符向量):使用sswrite_value_qstr.
对于任何多字或混合字符向量或以数字开头的单个字字符向量。代码生成金宝app®编码器™如果任何以引号括起来的开头,则产品错误熄灭。
争论 | 描述 |
---|---|
const char_t *值 |
字符矢量(例如,“美国。” ) |
sswrite_value_vect_str.
(字符向量的矢量):使用sswrite_value_vect_str.
编写字符向量的向量,其中每个元素括在引号中。
争论 | 描述 |
---|---|
const char_t *值 |
字符向量矢量(例如,[“美国”,“墨西哥”] ) |
INT_T NITEMSINVECT. |
矢量大小 |
sswrite_value_num.
(号码):使用sswrite_value_num.
写真真实,浮点值。
争论 | 描述 |
---|---|
const real_t值 |
号码(例如,2 ) |
sswrite_value_vect.
(数字矢量):使用sswrite_value_vect.
写入真实,浮点向量的值。
争论 | 描述 |
---|---|
const real_t *值 |
数字矢量(例如,[300,100] ) |
int_t vectlen. |
矢量大小 |
sswrite_value_2dmat.
(数字矩阵):使用sswrite_value_2dmat.
写入真实,浮点2-D值的值。
争论 | 描述 |
---|---|
const real_t *值 |
数字矩阵(例如,[[170,130],[60,40]] ) |
int_t nrows. |
矩阵中的行数 |
int_t ncols. |
矩阵中的列数 |
sswrite_value_dtype_num.
(数据类型编号):使用sswrite_value_dtype_num.
以Simulink格式写入复杂值,或者使用除双重以外的数金宝app据类型。
争论 | 描述 |
---|---|
const void *价值 |
号码(例如,[3 + 4i] ) |
INT_T DTINFO. |
数据类型(见指定数据类型信息) |
sswrite_value_dtype_vect.
(数据类型矢量):使用sswrite_value_dtype_vect.
在Simulink格式中编写复杂的值矢量,或者使用除双外的数据类型。金宝app
争论 | 描述 |
---|---|
const void *价值 |
数据类型矢量(例如,[1 + 2i,3 + 4i] ) |
int_t vectlen. |
矢量大小 |
INT_T DTINFO. |
数据类型(见指定数据类型信息) |
sswrite_value_dtype_2dmat.
(数据类型矩阵):使用sswrite_value_dtype_2dmat.
以Simulink格式编写复杂的2-D矩阵,或者使用除双外的数据类型。金宝app
争论 | 描述 |
---|---|
const void *价值 |
矩阵(例如,[1 + 2i 3 + 4i;5 6] ) |
int_t nrows. |
矩阵中的行数 |
int_t ncols. |
矩阵中的列数 |
INT_T DTINFO. |
数据类型(见指定数据类型信息) |
sswrite_value_dtype_ml_vector.
(数据类型键入的matlab®向量):使用sswrite_value_dtype_ml_vector.
将复杂的值矢量的真实和虚部写入单独的数组。sswrite_value_dtype_ml_vector.
允许您为向量指定数据类型。
争论 | 描述 |
---|---|
const void * rvalue |
矢量的真实成分(例如,[1 3] ) |
const void * ivalue |
矢量的虚部 (例如。, [2 5] ) |
int_t vectlen. |
矢量中的元素数量 |
INT_T DTINFO. |
数据类型(见指定数据类型信息) |
sswrite_value_dtype_ml_2dmat.
(数据类型MATLAB矩阵):使用sswrite_value_dtype_ml_2dmat.
将复杂的2-D矩阵的实部和虚部写入单独的矩阵。sswrite_value_dtype_ml_2dmat.
允许您为值指定数据类型。
争论 | 描述 |
---|---|
const void * rvalue |
矩阵的真实组成部分 (例如。, [1 5 3 6] ) |
const void * ivalue |
矩阵的虚部组成部分 (例如。, [2 0 4 0] ) |
int_t nrows. |
矩阵中的行数 |
int_t ncols. |
矩阵中的列数 |
INT_T DTINFO. |
数据类型(见指定数据类型信息) |
C,C ++
看到s函数sfun_frmad.c.
用于sfcndemo_frame.
有关使用此功能的完整示例。运行此模型需要DSP系统工具箱™许可证。
此S函数以与S函数参数关联的以下变量声明开始。
/ *参数* / enum {fcn_argc = 0,amp_argc,freq_argc,ts_argc,frmsize_argc,noisamp_argc,noisfreq_argc,num_args};#define fcn_arg(ssgetsfcnparam(s,fcn_argc))#define amp_arg(ssgetsfcnparam(s,amp_argc))#define freq_arg(ssgetsfcnparam(s,freq_argc))#define ts_arg(ssgetsfcnparam(S.,TS_ARGC)) #define FRMSIZE_ARG(S) (ssGetSFcnParam(S,FRMSIZE_ARGC)) #define NOISAMP_ARG(S) (ssGetSFcnParam(S,NOISAMP_ARGC)) #define NOISFREQ_ARG(S) (ssGetSFcnParam(S,NOISFREQ_ARGC)) #define GET_FRMSIZE(S) (mxGetPr(FRMSIZE_ARG(S)))[0]
S函数的mdlrtw.
然后用途sswritertwparamsettings.
将S函数参数写入模型
.rtw.
文件。
real_t noisa = mxgetpr(noisamp_arg(s))[0];real_t noisf = mxgetpr(noisfreq_arg(s))[0];real_t ts = mxgetpr(ts_arg(s))[0];int_t fcn =(int)(mxgetpr(fcn_arg(s))[0]);int32_t fsize = mxgetpr(frmsize_arg(s))[0];if(!sswritertwparamsettings(s,5,sswrite_value_str,fcn == 1)?“常数”:“sine”,sswrite_value_num,“ts”,ts,sswrite_value_dtype_num,“framesize”,&fsize,dtinfo(ss_int32,ss_int32,complex_no),sswrite_value_num,“noiseamp”,noisa,sswrite_value_num,“comotefreq”,noisf)){return;/ *发生错误。* /}
当为模型生成代码时,金宝appSimulink编码器产品首先写入名为的结构sfcnparamsettings.
到了模型
.rtw.
基于S函数中提供的信息的文件mdlrtw.
方法。在这个例子中,得到的sfcnparamsettings.
是:
SFCNParamSettings {函数正弦TS 0.005帧中化64 Noiseamp 4.0 NoteFreq 80.0}
S函数的目标语言编译器文件sfun_frmad.tlc.
然后使用变量名称访问S函数参数sfcnparamsettings.
结构体。例如:
%分配fnname = sfcnparamsettings.function%分配frmsize = sfcnparamsettings.framesize%分配ts = sfcnparamsettings.ts%分配noisa = sfcnparamsettings.noiseamp%分配noisf = sfcnparamsettings.noisefreq