ssGetInputPortSignal
Get the address of a contiguous signal entering an input port
Syntax
const void *ssGetInputPortSignal(SimStruct *S, int_T inputPortIdx)
Arguments
SSimStruct that represents an S-Function block.
inputPortIdxIndex of the port whose address is required.
Returns
A pointer (void *) to the input port specified by the index
inputPortIdx.
Description
Use to get the address of a contiguous signal entering an input port. Your
S-function should use this macro only if mdlInitializeSizes has
specified that the elements of the input signal be contiguous, using
ssSetInputPortRequiredContiguous. For noncontiguous input,
use the ssGetInputPortSignalPtrs
function.
Note
If you have specified that the input ports are reusable using
, then you cannot use
ssSetInputPortOptimOptsssGetInputPortSignal anywhere except in
mdlOutputs. For example, if the inputs have been
specified as reusable with the SS_REUSABLE_AND_LOCAL flag,
the mdlUpdate routine errors out because it tries to access
input memory that is unavailable.
Note
The ssGetInputPortSignal macro becomes a function when you
compile your S-function in debug mode (mex -g).
Languages
C, C++
Examples
The following code demonstrates the use of
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]);
}
}
}
If you know that the inputs are always real_T signals, the
ssGetInputPortSignal line in the above code snippet would
be
const real_T *u = ssGetInputPortRealSignal(S,i);
Version History
Introduced before R2006a