ssGetInputPortSignal
获取进入输入端口的连续信号的地址
语法
const void *ssGetInputPortSignal(SimStruct *S, int_T inputPortIdx)
参量
S表示 S-Function 模块的 SimStruct。
inputPortIdx需要地址的端口索引。
返回
指向索引 inputPortIdx 指定的输入端口的指针 (void *)。
描述
用于获取进入输入端口的连续信号的地址。仅当 mdlInitializeSizes 使用 ssSetInputPortRequiredContiguous 指定输入信号的元素是连续的时,您的 S-Function 才应使用此宏。对于不连续的输入,请使用 ssGetInputPortSignalPtrs 函数。
注意
如果您已指定使用 可重复使用输入端口,那么您不能在 ssSetInputPortOptimOptsmdlOutputs 之外的任何地方使用 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 之前推出