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