mirror of
https://github.com/nasa/trick.git
synced 2024-12-24 07:16:41 +00:00
19025d77ad
Reorganized. Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory. Created a libexec directory that holds all of the executables that users don't need to execute directly. Changed all of the executables remaining in bin to start with "trick-". In the sim_services directories changed all source files to find the Trick headers in their new location. Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level. Moved the makefiles, docs, man, and other architecture independent files into a top level share directory. Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on. refs #63
67 lines
1.6 KiB
C++
67 lines
1.6 KiB
C++
/*
|
|
PURPOSE:
|
|
( gettimeofday Clock )
|
|
PROGRAMMERS:
|
|
(((Robert W. Bailey) (LinCom) (April 1992) (--) (Realtime.))
|
|
((Robert W. Bailey) (LinCom) (7/22/92) (--) (--))
|
|
((Eddie J. Paddock) (MDSSC) (Oct 1992) (--) (Realtime.))
|
|
((Alex Lin) (NASA) (April 2009) (--) (port to c++)))
|
|
|
|
*/
|
|
|
|
#ifndef ITIMER_HH
|
|
#define ITIMER_HH
|
|
|
|
#include <time.h>
|
|
#include <sys/time.h>
|
|
#include <semaphore.h>
|
|
#include <string>
|
|
|
|
#include "trick/Timer.hh"
|
|
|
|
namespace Trick {
|
|
|
|
class ITimer : public Timer {
|
|
|
|
public:
|
|
|
|
ITimer() ;
|
|
~ITimer() ;
|
|
|
|
/** Post the semaphore value from the interrupt handler */
|
|
void semaphore_post() ;
|
|
|
|
/** @copybrief Trick::Timer::init() */
|
|
virtual int init() ;
|
|
|
|
/** @copybrief Trick::Timer::start() */
|
|
virtual int start(double frame_time) ;
|
|
|
|
/** @copybrief Trick::Timer::reset() */
|
|
virtual int reset(double frame_time) ;
|
|
|
|
/** @copybrief Trick::Timer::stop() */
|
|
virtual int stop() ;
|
|
|
|
/** @copybrief Trick::Timer::pause() */
|
|
virtual int pause() ;
|
|
|
|
/** @copybrief Trick::Timer::shutdown() */
|
|
virtual int shutdown() ;
|
|
|
|
protected:
|
|
|
|
struct timespec res; /* ** resolution of the clock */
|
|
struct timespec timeout; /* ** timeout value of some kind */
|
|
sem_t * semaphore; /* ** Posted by SIGALRM handler to tell sched loop to wake up. */
|
|
std::string sem_name ; /* ** name of the semaphore */
|
|
|
|
} ;
|
|
|
|
}
|
|
|
|
Trick::ITimer * get_itimer() ;
|
|
void it_handler(int sig) ;
|
|
|
|
#endif
|