ssGetInputPortSignal
获取进入输入端口的连续信号的地址
语法
const void *ssGetInputPortSignal(SimStruct *S, int_T inputPortIdx)
参量
S
表示 S-Function 模块的 SimStruct。
inputPortIdx
需要地址的端口索引。
返回
指向索引 inputPortIdx
指定的输入端口的指针 (void *
)。
描述
用于获取进入输入端口的连续信号的地址。仅当 mdlInitializeSizes
使用 ssSetInputPortRequiredContiguous
指定输入信号的元素是连续的时,您的 S-Function 才应使用此宏。对于不连续的输入,请使用 ssGetInputPortSignalPtrs
函数。
注意
如果您已指定使用
可重复使用输入端口,那么您不能在 ssSetInputPortOptimOpts
mdlOutputs
之外的任何地方使用 ssGetInputPortSignal
。例如,如果使用 SS_REUSABLE_AND_LOCAL
标志将输入指定为可重复使用,则 mdlUpdate
例程会出错,因为它尝试访问不可用的输入内存。
注意
当您在调试模式 (mex -g
) 下编译 S-Function 时,ssGetInputPortSignal
宏将成为函数。
语言
C、C++
示例
下面的代码演示了 ssGetInputPortSignal
的用法。
nInputPorts = ssGetNumInputPorts(S); for (i = 0; i < nInputPorts; i++) { int_T nu = ssGetInputPortWidth(S,i); if ( ssGetInputPortRequiredContiguous(S,i) ) { const void *u = ssGetInputPortSignal(S,i); UseInputVectorInSomeFunction(u, nu); } else { InputPtrsType u = ssGetInputPortSignalPtrs(S,i); for (j = 0; j < nu; j++) { UseInputInSomeFunction(*u[j]); } } }
如果您知道输入始终是 real_T
信号,则上述代码片段中的 ssGetInputPortSignal
行将是
const real_T *u = ssGetInputPortRealSignal(S,i);
版本历史记录
在 R2006a 之前推出