主要内容

ssGetInputPortSignal

获取进入输入端口的连续信号的地址

语法

const void *ssGetInputPortSignal(SimStruct *S, int_T inputPortIdx)

参数

年代

表示s -功能块的SimStruct。

inputPortIdx

需要指定地址的端口索引。

返回

一个指针(void *)到索引指定的输入端口inputPortIdx

描述

用于获取进入输入端口的连续信号的地址。你的s函数应该只使用这个宏mdlInitializeSizes已指定输入信号的元素是连续的,使用ssSetInputPortRequiredContiguous.对于非连续输入,使用ssGetInputPortSignalPtrs函数。

请注意

如果您已经指定输入端口是可重用使用的ssSetInputPortOptimOpts,则不能使用ssGetInputPortSignal除了在mdlOutputs.例如,如果输入被指定为可重用的SS_REUSABLE_AND_LOCAL国旗,mdlUpdate例程错误输出,因为它试图访问不可用的输入内存。

请注意

ssGetInputPortSignal当您在调试模式下编译S-function时,宏将成为一个函数(墨西哥人- g).

语言

C, c++

例子

下面的代码演示了使用ssGetInputPortSignal

nInputPorts = ssGetNumInputPorts(年代);For (i = 0;我< nInputPorts;i++) {int_T nu = ssgetinputporttwidth (S,i);if (ssgetinputportrequiredcontinuous (S,i)) {const void *u = ssGetInputPortSignal(S,i);UseInputVectorInSomeFunction (u,ν);} else {InputPtrsType u = ssGetInputPortSignalPtrs(S,i);For (j = 0;j <ν;j + +) {UseInputInSomeFunction (* u [j]); } } }

如果你知道输入总是real_T信号,ssGetInputPortSignal上面代码段中的行将是

const real_T *u = ssGetInputPortRealSignal(S,i);
之前介绍过的R2006a