Получите текущее время для текущей задачи
time_T ssGetTaskTime(SimStruct *S, st_index)
SSimStruct, представляющий Блок s-function.
st_indexИндекс частоты дискретизации, соответствующей задаче, для которой должно быть возвращено текущее время.
Значение типа time_T.
Используйте, чтобы определить текущее время (time_T) задачи, соответствующей частоте дискретизации, заданной st_index. Можно использовать этот макрос в mdlOutputs и mdlUpdate, чтобы вычислить вывод блока. Смотрите для описания типа данных matlabroot/extern/include/tmwtypes.h time_T.
Макрос ssGetTaskTime должен быть назван только в проверке ssIsSampleHit. Это не даст правильные результаты, если названо tid, переданным в mdlOutputs.
C, C++
Следующий пример иллюстрирует правильное использование этого макроса:
static void mdlOutputs( SimStruct *S, int_T tid )
{
double t;
if(ssIsSampleHit(S,0,tid)) {
t = ssGetTaskTime(S,0);
ssPrintf("Task 0 sample hit in %s time = %g\n",
ssGetPath(S),t);
}
if(ssIsSampleHit(S,1,tid)) {
t = ssGetTaskTime(S,1);
ssPrintf("Task 1 sample hit in %s time = %g\n",
ssGetPath(S),t);
}
}