diff -r f45fd4cd3832 -r 34654679f262 doc/doxygen/html/timers__unix_8c-source.html --- a/doc/doxygen/html/timers__unix_8c-source.html Fri Jul 06 10:53:15 2007 +0200 +++ b/doc/doxygen/html/timers__unix_8c-source.html Mon Jul 16 08:56:03 2007 +0200 @@ -18,7 +18,7 @@
00001 #include <stdlib.h> 00002 00003 #include <sys/time.h> @@ -28,84 +28,84 @@ 00007 #include "applicfg.h" 00008 #include "timer.h" 00009 -00010 pthread_mutex_t CanFestival_mutex = PTHREAD_MUTEX_INITIALIZER; +00010 pthread_mutex_t CanFestival_mutex = PTHREAD_MUTEX_INITIALIZER; 00011 -00012 TASK_HANDLE TimerLoopThread; +00012 TASK_HANDLE TimerLoopThread; 00013 -00014 TIMEVAL last_time_set = TIMEVAL_MAX; +00014 TIMEVAL last_time_set = TIMEVAL_MAX; 00015 -00016 struct timeval last_sig; +00016 struct timeval last_sig; 00017 -00018 timer_t timer; +00018 timer_t timer; 00019 -00020 void EnterMutex(void) +00020 void EnterMutex(void) 00021 { -00022 pthread_mutex_lock(&CanFestival_mutex); +00022 pthread_mutex_lock(&CanFestival_mutex); 00023 } 00024 -00025 void LeaveMutex(void) +00025 void LeaveMutex(void) 00026 { -00027 pthread_mutex_unlock(&CanFestival_mutex); +00027 pthread_mutex_unlock(&CanFestival_mutex); 00028 } 00029 -00030 void timer_notify(sigval_t val) +00030 void timer_notify(sigval_t val) 00031 { -00032 gettimeofday(&last_sig,NULL); -00033 EnterMutex(); -00034 TimeDispatch(); -00035 LeaveMutex(); +00032 gettimeofday(&last_sig,NULL); +00033 EnterMutex(); +00034 TimeDispatch(); +00035 LeaveMutex(); 00036 // printf("getCurrentTime() return=%u\n", p.tv_usec); 00037 } 00038 -00039 void initTimer(void) +00039 void initTimer(void) 00040 { 00041 struct sigevent sigev; 00042 00043 // Take first absolute time ref. -00044 gettimeofday(&last_sig,NULL); +00044 gettimeofday(&last_sig,NULL); 00045 00046 memset (&sigev, 0, sizeof (struct sigevent)); 00047 sigev.sigev_value.sival_int = 0; 00048 sigev.sigev_notify = SIGEV_THREAD; 00049 sigev.sigev_notify_attributes = NULL; -00050 sigev.sigev_notify_function = timer_notify; +00050 sigev.sigev_notify_function = timer_notify; 00051 -00052 timer_create (CLOCK_REALTIME, &sigev, &timer); +00052 timer_create (CLOCK_REALTIME, &sigev, &timer); 00053 } 00054 -00055 void StopTimerLoop(void) +00055 void StopTimerLoop(void) 00056 { -00057 EnterMutex(); -00058 timer_delete (timer); -00059 LeaveMutex(); +00057 EnterMutex(); +00058 timer_delete (timer); +00059 LeaveMutex(); 00060 } 00061 -00062 void StartTimerLoop(TimerCallback_t init_callback) +00062 void StartTimerLoop(TimerCallback_t init_callback) 00063 { -00064 initTimer(); -00065 EnterMutex(); +00064 initTimer(); +00065 EnterMutex(); 00066 // At first, TimeDispatch will call init_callback. -00067 SetAlarm(NULL, 0, init_callback, 0, 0); -00068 LeaveMutex(); +00067 SetAlarm(NULL, 0, init_callback, 0, 0); +00068 LeaveMutex(); 00069 } 00070 -00071 void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr) +00071 void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr) 00072 { 00073 pthread_create(Thread, NULL, ReceiveLoopPtr, (void*)port); 00074 } 00075 -00076 void WaitReceiveTaskEnd(TASK_HANDLE Thread) +00076 void WaitReceiveTaskEnd(TASK_HANDLE Thread) 00077 { 00078 pthread_kill(Thread, SIGTERM); 00079 pthread_join(Thread, NULL); 00080 } 00081 -00082 #define maxval(a,b) ((a>b)?a:b) -00083 void setTimer(TIMEVAL value) +00082 #define maxval(a,b) ((a>b)?a:b) +00083 void setTimer(TIMEVAL value) 00084 { 00085 // printf("setTimer(TIMEVAL value=%d)\n", value); 00086 // TIMEVAL is us whereas setitimer wants ns... -00087 long tv_nsec = 1000 * (maxval(value,1)%1000000); +00087 long tv_nsec = 1000 * (maxval(value,1)%1000000); 00088 time_t tv_sec = value/1000000; 00089 struct itimerspec timerValues; 00090 timerValues.it_value.tv_sec = tv_sec; @@ -113,17 +113,17 @@ 00092 timerValues.it_interval.tv_sec = 0; 00093 timerValues.it_interval.tv_nsec = 0; 00094 -00095 timer_settime (timer, 0, &timerValues, NULL); +00095 timer_settime (timer, 0, &timerValues, NULL); 00096 } 00097 -00098 TIMEVAL getElapsedTime(void) +00098 TIMEVAL getElapsedTime(void) 00099 { 00100 struct timeval p; 00101 gettimeofday(&p,NULL); 00102 // printf("getCurrentTime() return=%u\n", p.tv_usec); -00103 return (p.tv_sec - last_sig.tv_sec)* 1000000 + p.tv_usec - last_sig.tv_usec; +00103 return (p.tv_sec - last_sig.tv_sec)* 1000000 + p.tv_usec - last_sig.tv_usec; 00104 } -