Determine whether a task is continuous
boolean_T ssIsContinuousTask(SimStruct *S, int_T tid)
S
SimStruct representing an S-Function block.
tid
Task ID.
The Boolean value true
when the simulation is executing the
continuous task. Otherwise, returns false
.
Use in mdlOutputs
or mdlUpdate
when your
S-function has multiple sample times to determine if the task represented by the
task ID tid
is the continuous task. For example:
if (ssIsContinuousTask(S, tid)) { /* Executing in the continuous task */ if (ssIsSpecialSampleHit(S, 1, 0, tid)) { real_T *zoh = ssGetRWork(S); real_T *xC = ssGetContStates(S); *zoh = *xC; } }
You should not use this in single-rate S-functions, or if you did not register a continuous sample time.
C, C++
See the S-function mixedm.c
used in sfcndemo_mixedm
.