Задайте, что блок For Each Subsystem поддерживает S-функцию, работающую внутри подсистемы.
void ssSupportsMultipleExecInstances(SimStruct *S, boolean_T val)
S
SimStruct, представляющий блок S-Function.
val
Вектор символов имеет значение любой из true
или false
. Если true
тогда For Each Subsystem будет поддерживать, чтобы S-функция работала внутри него.
Позволяет блоку S-function работать из блока For Each Subsystem. Лучше всего вызвать этот макрос из mdlSetWorkWidths
функция.
C, C++
В этом примере ssSupportsMultipleExecInstances
функция находится внутри mdlInitializeSize
. В основном, если блок безоговорочно поддерживает или не поддерживает подсистему For Each, функция может использоваться внутри mdlInitializeSize
. Если же решение опирается на скомпилированную информацию, то эта функция должна использоваться внутри mdlSetWorkWidths
.
static void mdlInitializeSizes(SimStruct *S) { ssSetNumDiscStates(S, 0); /* no default dstate */ if (!ssSetNumInputPorts(S, 1)) return; ssSetInputPortWidth(S, 0, 1); if (!ssSetNumOutputPorts(S, 1)) return; ssSetOutputPortWidth(S, 0, 1); ssSetNumRWork(S, 0); ssSetNumDWork(S, 1); ssSetNumIWork(S, 0); ssSetNumPWork(S, 0); ssSetNumModes(S, 0); ssSetDWorkWidth(S, 0, 1); ssSetDWorkUsedAsDState(S, 0, SS_DWORK_USED_AS_DSTATE); ssSetDWorkName(S, 0, "State"); ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE | SS_OPTION_WORKS_WITH_CODE_REUSE | SS_OPTION_USE_TLC_WITH_ACCELERATOR); ssSupportsMultipleExecInstances(S, true); }