Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int StartTimer(dev_timer_t *timer)
- {
- int status;
- int seconds,nano;
- struct sigaction sig_act;
- sigset_t mask;
- char debugBuf[256] = { '\0' };
- if(timer_dev[timer->timerno].status != STARTED)
- {
- sigemptyset(&mask);
- sig_act.sa_handler = (void *)sig_handler;
- sig_act.sa_flags = 0;
- sigemptyset(&sig_act.sa_mask);
- seconds= timer->timeout / 1000;
- nano= (timer->timeout % 1000) * 1000000;
- if(timer->timerno != APPTIMER1)
- {
- timer_values[timer->timerno].timeout.it_interval.tv_sec = 1;
- timer_values[timer->timerno].timeout.it_value.tv_sec = seconds;
- timer_values[timer->timerno].timeout.it_interval.tv_nsec =1;
- timer_values[timer->timerno].timeout.it_value.tv_nsec = nano;
- }
- else
- {
- timer_values[timer->timerno].timeout.it_value.tv_sec = seconds;
- timer_values[timer->timerno].timeout.it_value.tv_nsec = nano;
- timer_values[timer->timerno].timeout.it_interval.tv_sec = 0;
- timer_values[timer->timerno].timeout.it_interval.tv_nsec = 0;
- }
- status=timer_create(CLOCK_REALTIME, &timer_values[timer->timerno].evp, &timerid[timer->timerno]);
- if (status == FAILURE)
- {
- debug_log("SYSTEM:timer_create failed",ERROR_LOG);
- return FAILURE;
- }
- timer_settime(timerid[timer->timerno],timer_values[timer->timerno].type, &timer_values[timer->timerno].timeout, NULL);
- sigaction(timer_values[timer->timerno].evp.sigev_signo, &sig_act, 0);
- //timer_connect(timerid,my_handler,0);
- timer_dev[timer->timerno].status = STARTED;
- //debug_log("SYSTEM:Timer Started",DEBUG_LOG);
- memset(debugBuf,'\0',sizeof(debugBuf));
- sprintf(debugBuf,"SYSTEM:_______________________________Timer %d started, timer_t = %d\n",timer->timerno + 1, (int)timerid[timer->timerno]);
- debug_log(debugBuf,DEBUG_LOG);
- }
- else
- {
- memset(debugBuf,'\0',sizeof(debugBuf));
- sprintf(debugBuf, "SYSTEM:__________________________OOPS... could not Start timer %d, Its already Started",timer->timerno+1);
- debug_log(debugBuf,DEBUG_LOG);
- return INUSE;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement