Получение текущего времени для текущей задачи
time_T ssGetTaskTime(SimStruct *S, st_index)
SSimStruct представляет S-функциональный блок.
st_indexИндекс времени выборки, соответствующий задаче, для которой должно быть возвращено текущее время.
Значение типа time_T.
Используется для определения текущего времени (time_T) задачи, соответствующей частоте выборки, указанной st_index. Этот макрос можно использовать в mdlOutputs и mdlUpdate для вычисления выходных данных блока. Посмотрите для описания matlabroot/extern/include/tmwtypes.htime_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);
}
}