此方法會起始設定 RiCOSTimer 物件。
RiCBoolean RiCOSTimer_init (RiCOSTimer *const me,
timeUnit ptime, void (*cbkfunc)(void *),
void *params);
me
要起始設定的 RiCOSTimer 物件。
pTime
計時器每時間計數之間的時間。 在大部分配接器中,時間單位是毫秒;不過,這取決於特定的配接器實作。
cbkfunc
時間計數計時器回呼函數,用於通知計時器用戶端發生時間計數。
參數
回呼函數的參數。
如果成功,此方法會傳回 RiCTRUE。
RiCBoolean RiCOSTimer_init(RiCOSTimer * const me,
timeUnit ptime, void (*cbkfunc)(void *), void *params)
{
if (me == NULL) return RiCFALSE;
me->cbkfunc = cbkfunc;
me->param = params;
if (((RiCTimerManager*)params)->realTimeModel) {
/**** VxWorks TickTimer(Real Time) ****/
me->m_Time = ptime;
/* 建立執行橋接器的執行緒,傳遞
此參數作為引數。 */
me->ticks = cvrtTmInMStoTicks(me->m_Time);
me->hThread = taskSpawn("timer", PRIORITY_HIGH, 0,
SMALL_STACK, (int (*)())bridge,
(int)(void *)me /*p1*/, 0,0,0,0,0,0,0,0,0 );
return me->hThread != ERROR;
}
else {
/**** IdleTimer (Simulated Time) ****/
me->m_Time = 0; /* 建立環境定義切換
直到系統進入閒置模式為止。 */
me->hThread = taskSpawn("timer", PRIORITY_LOW, 0,
SMALL_STACK, (int (*)())bridge, (int)(void*)me,
0,0,0,0,0,0,0,0,0);
return RiCTRUE;
}
}