exponenta event banner

ssSupportsMultipleExecInstances

Укажите, что блок «Для каждой подсистемы» поддерживает S-функцию, работающую внутри подсистемы.

Синтаксис

void ssSupportsMultipleExecInstances(SimStruct *S, boolean_T val)

Аргументы

S

SimStruct представляет S-функциональный блок.

val

Вектор символов имеет значение: true или false. Если true, тогда для каждой подсистемы будет поддерживаться работа S-функции внутри нее.

Описание

Позволяет S-функциональному блоку работать из блока для каждой подсистемы. Лучше всего вызвать этот макрос из 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);
}

Представлен в R2010b