static timer_t Linux_TimerID = NULL; /*Timer id*/
{
sigevent_t SigEvent = {{0}}; /* Signal event */struct itimerspec stTimerSpec = {{0}}; /* Timer attributes */
UINT32 ulTimeMs = 0U; /*Cycle Time*/
SigEvent.sigev_notify = SIGEV_THREAD;
SigEvent.sigev_notify_function = Linux_Timer;
SigEvent.sigev_notify_attributes = NULL;
ulTimeMs = TASK_CYCLE_VALUE;
if(-1 == timer_create(CLOCK_REALTIME, &SigEvent, &Linux_TimerID))
{
Log_Msg("ERROR!!! Create timer error: %s", strerror(errno));
}
else
{
stTimerSpec.it_value.tv_sec = (time_t)ulTimeMs / 1000;
stTimerSpec.it_value.tv_nsec = ((time_t)ulTimeMs % 1000) * 1000000;
stTimerSpec.it_interval.tv_sec = (time_t)ulTimeMs / 1000;
stTimerSpec.it_interval.tv_nsec = ((time_t)ulTimeMs % 1000) * 1000000;
if(-1 == timer_settime(Linux_TimerID, 0, &stTimerSpec, NULL))
{
Log_Msg("ERROR!!! Set timer(%d) error: %s", (int)Linux_TimerID, strerror(errno));
}
else
{
rtVal = RSSP2_OK;
}
}
}