Укажите, что блок 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
. В основном, если блок безусловно поддерживает или не поддерживает Для Каждой подсистемы, функция может использоваться в 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); }