Задайте, может ли S-функция быть снова использована через модели
void ssSetSupportedForCodeReuseAcrossModels(SimStruct *S, int_T val)
S
SimStruct, представляющий Блок s-function.
val
Любой int_T (1 or 0)
или boolean_T (true or false)
значение.
Используйте эту функцию в mdlInitializeSizes
метод, чтобы задать, можно ли снова использовать S-функцию в допускающей повторное использование подсистеме библиотеки через иерархию модели - ссылки.
Необходимо установить SS_OPTION_WORKS_WITH_CODE_REUSE
отметьте к true
в ssSetOptions
функция.
Сконфигурируйте S-функцию для повторного использования кода через модели, только если S-функция не получает доступ ни к каким структурам данных модели специфичным. Сгенерированный код в _sharedutils
папка скомпилирована отдельно, чем сгенерированный код в model_ert_rtw
папка. Допускающий повторное использование код подсистемы библиотеки сгенерирован в _sharedutils
папка не имеет доступа к типам и макросам, которые объявляются в model.h
. Допускающий повторное использование код подсистемы библиотеки должен быть независимым.
C, C++
static void mdlInitializeSizes(SimStruct *S) { ssSetOptions(S, SS_OPTION_WORKS_WITH_CODE_REUSE | SS_OPTION_EXCEPTION_FREE_CODE | SS_OPTION_DISALLOW_CONSTANT_SAMPLE_TIME); ssSetSupportedForCodeReuseAcrossModels(S, 1); }
ssSetModelReferenceSampleTimeInheritanceRule
, ssSetModelReferenceSampleTimeDisallowInheritance
, ssSetModelReferenceSampleTimeDefaultInheritance
S-функции для повторного использования кода (Simulink Coder)