Восстановите рабочую точку S-функции MEX C
Нет
C, C++
#define MDL_OPERATING_POINT
void mdlSetOperatingPoint(SimStruct* S, const mxArray* in)
S
SimStruct, представляющий Блок s-function.
const mxArray* in
Рабочая точка S-функции создается mdlGetOperatingPoint
.
Механизм Simulink® вызывает этот пользовательский метод в начале симуляции модели, содержащей S
(SimStruct, представляющий Блок s-function). mdlSetOperatingPoint
устанавливает начальное состояние симуляции S-функции к рабочей точке модели.
/* Function: mdlSetOperatingPoint * Abstract: * Unpack the MATLAB structure passed and restore it to * the RunTimeData structure */ static void mdlOperatingPoint(SimStruct* S, const mxArray* simSnap) { RunTimeData_T* rtd = (RunTimeData_T*)ssGetPWorkValue(S, 0); /* Check and load the count value */ { const mxArray* cnt = mxGetField(simSnap, 0, fieldNames[0]); ERROR_IF_NULL(S,cnt, "Count field not found in simulation state"); if ( mxIsComplex(cnt) || !mxIsUint64(cnt) || mxGetNumberOfElements(cnt) != 1 ) { ssSetErrorStatus(S, "Count field is invalid"); return; } rtd->cnt = ((uint64_T*)(mxGetData(cnt)))[0]; } }
Пользовательский код и Ручные Закодированные Блоки с помощью API S-функции| mdlInitializeConditions
|mdlGetOpeartingPoint
|SetOperatingPoint