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