mdlSetOperatingPoint

Restore operating point of C MEX S-function

Required

No

Languages

C, C++

Syntax

#define MDL_OPERATING_POINT
void mdlSetOperatingPoint(SimStruct* S, const mxArray* in)

Arguments

S

SimStruct representing an S-Function block.

const mxArray* in

Operating point of S-Function created by mdlGetOperatingPoint.

Description

The Simulink® engine invokes this custom method at the beginning of a simulation of the model containing S (SimStruct representing an S-Function block). mdlSetOperatingPoint sets the initial simulation state of the S-function to the operating point of the model.

Example

/* Function: mdlSetOperatingPoint
 * Abstract:
 *   Unpack the MATLAB structure passed and restore it to
 *   the RunTimeData structure
 */
static void mdlOperatingPoint(SimStruct* S, 
const mxArray* simSnap)
{
    RunTimeData_T* rtd = 
	  (RunTimeData_T*)ssGetPWorkValue(S, 0);

    /* Check and load the count value */
    {
        const mxArray* cnt = 
				mxGetField(simSnap, 0, fieldNames[0]);
        ERROR_IF_NULL(S,cnt,
				"Count field not found in simulation state");
        if ( mxIsComplex(cnt) ||
             !mxIsUint64(cnt) ||
             mxGetNumberOfElements(cnt) != 1 ) {
            ssSetErrorStatus(S, "Count field is invalid");
            return;
        }
        rtd->cnt = ((uint64_T*)(mxGetData(cnt)))[0];
    }
}

Introduced in R2019a