(Не рекомендуемый) Верните состояние симуляции S-функции C MEX как допустимую структуру данных MATLAB, такую как матричная структура или массив ячеек.
Примечание
mdlGetSimState
не рекомендуется. Использовать mdlGetOpeartingPoint
вместо этого.
Нет
C, C++
#define MDL_SIM_STATE
mxArray* mdlGetSimState(SimStruct* S)
S
SimStruct, представляющий блок S-Function.
Simulink® engine вызывает этот пользовательский метод, чтобы получить состояние симуляции (SimState) модели, содержащей S
. Вызов этого метода должен происходить после mdlStart
и до mdlTerminate
для обеспечения доступности всех структур данных S-функций (например, состояний, векторов DWork и выходов).
/* Function: mdlGetSimState * Abstract: * Package the RunTimeData structure as a MATLAB structure * and return it. */ static mxArray* mdlGetSimState(SimStruct* S) { RunTimeData_T* rtd = (RunTimeData_T*)ssGetPWorkValue(S, 0); const char* fieldNames[] = {"Count"}; /* Create a MATLAB structure to hold the run-time data */ mxArray* simSnap = mxCreateStructMatrix(1, 1, 1, fieldNames); mxSetField(simSnap, 0, fieldNames[0], mxCreateDoubleScalar(rtd->cnt)); return simSnap; }