Определите, запросил ли блок сокращение блока до начала симуляции и действительно ли оно было уменьшено после начала цикла симуляции
uint_T ssGetBlockReduction(SimStruct *S)
S
SimStruct, представляющий блок S-Function.
Результат этой функции зависит от того, когда она вызывается. При вызове перед началом цикла симуляции, т.е. в mdlSetWorkWidths
или ранее, этот макрос возвращается 1
если блок ранее запросил его сокращение. При вызове после начала цикла симуляции этот макрос возвращается 1
если блок был фактически уменьшен, т.е. исключен из списка блоков, которые должны быть выполнены во время цикла симуляции. В противном случае возвращается 0
.
Используйте, чтобы определить, запрошено ли блочное сокращение, или, если блок уже был уменьшен.
Примечание
Если блок был уменьшен, единственным методом коллбэка для блока после начала цикла симуляции является метод mdlTerminate
способ. Далее, Simulink® engine вызывает mdlTerminate
метод только, если блок установил свой SS_OPTION_CALL_TERMINATE_ON_EXIT
опция, использование ssSetOptions
. Таким образом, если вашему блоку нужно определить, был ли он на самом деле уменьшен, он должен задать SS_OPTION_CALL_TERMINATE_ON_EXIT
опция перед началом цикла симуляции и вызовом ssGetBlockReduction
в своей mdlTerminate
способ.
C, C++