Documentation Center

  • Trial Software
  • Product Updates

Contents

ssGetInputPortRealSignal

Get the address of a real, contiguous signal entering an input port

Syntax

const real_T *ssGetInputPortRealSignal(SimStruct *S, int_T inputPortIdx)

Arguments

S

SimStruct representing an S-Function block.

inputPortIdx

Index of the port whose signal is required.

Returns

A pointer (real_T *) to a real signal on the input port specified by the index inputPortIdx.

Description

Use to obtain the real signal on a particular input port. A method should use this macro only if the input signal is known to be real and mdlInitializeSizes has specified that the elements of the input signal be contiguous, using ssSetInputPortRequiredContiguous.

    Note   The ssGetInputPortRealSignal macro becomes a function when you compile your S-function in debug mode (mex -g).

Languages

C, C++

Example

The following code demonstrates the use of ssGetInputPortRealSignal.

Set flags to require that the input ports be contiguous:

void mdlInitializeSizes(SimStruct* S) {
	int_T i;
	/* snip */
	if (!ssSetNumInputPorts(S,2)) return;
		for (i = 0; i < 2; i++) {
        	/* snip */
					ssSetInputPortDirectFeedThrough(S,i,1);
					ssSetInputPortRequiredContiguous(S,i,1);
		}
                /* snip */
	}

You can now use ssGetInputPortRealSignal in mdlOutputs:

void mdlOutputs(SimStruct* S, int_T tid) {
	int_T i;
	
	/* snip */

	for (i = 0; i < 2; i++) {
			 int_T nu = ssGetInputPortWidth(S,i);
 			const real_T* u  = ssGetInputPortRealSignal(S,i);
			 UseInputVectorInSomeFunction(u, nu);
		}
		/* snip */
	}

See the S-function sfun_frmdft.csfun_frmdft.c used in sfcndemo_framesfcndemo_frame for a complete example using this function. Running this model requires a DSP System Toolbox™ license.

Was this topic helpful?