Laelaps  2.3.5
RoadNarrows Robotics Small Outdoor Mobile Robot Project
UTThread Class Reference
Inheritance diagram for UTThread:
laelaps::LaeThread

Protected Member Functions

virtual void transToReady ()
 Uninitialized to Ready state transition function. More...
 
virtual void transToRunning ()
 Ready to Running state transition function. More...
 
virtual void transToExit ()
 Any to Exit state transition function. More...
 
virtual void exec ()
 Execute task(s) within scheduled [sub]cycle. More...
 
- Protected Member Functions inherited from laelaps::LaeThread
void lock ()
 Lock the I2C bus. More...
 
void unlock ()
 Unlock the I2C bus. More...
 
void changeState (ThreadState eNewState)
 Change the thread state. More...
 
void timedWait (const struct timespec &tsTimeout)
 Timed wait until state change or time out. More...
 
virtual void readyBlock ()
 Block indefinitely while in the ready state. More...
 
virtual void schedBlock ()
 Block the thread until the next subcycle task is to be run. More...
 

Protected Attributes

Random m_rand
 
- Protected Attributes inherited from laelaps::LaeThread
std::string m_strThreadName
 thread identifying name
 
ThreadState m_eState
 thread state
 
pthread_mutex_t m_mutexSync
 synchonization mutex
 
pthread_cond_t m_condSync
 synchonization condition
 
pthread_t m_thread
 pthread identifier
 
int m_nPriority
 thread OS scheduling priority
 
double m_fHz
 thread cycle run rate (Hertz)
 
double m_fTExec
 task execution cycle period (seconds)
 
struct timespec m_tsExecPeriod
 task execution period (converted)
 
struct timespec m_tsJitter
 allowable scheduling jitter
 
struct timespec m_tsSched
 working scheduler time stamp
 
struct timespec m_tsExecLast
 start of last execution time stamp
 
struct timespec m_tsExecThis
 start of this execution time stamp
 
int m_nSlipErrCnt
 slipped error count leaky bucket
 

Additional Inherited Members

- Public Types inherited from laelaps::LaeThread
enum  ThreadState {
  ThreadStateUninit,
  ThreadStateReady,
  ThreadStateStart,
  ThreadStateRunning,
  ThreadStateExit
}
 Kinematics thread states. More...
 
- Public Member Functions inherited from laelaps::LaeThread
 LaeThread (const std::string &strThreadName)
 Default constructor.
 
virtual ~LaeThread ()
 Destructor.
 
virtual int createThread (int nPriority)
 Create the thread. More...
 
virtual int runThread (const double fHz)
 Run the thread. More...
 
virtual int terminateThread ()
 Terminate the thread. More...
 
virtual void setHz (const double fHz)
 Calculate thread new full cycle run rate. More...
 
std::string getThreadName () const
 Get assigned thread name. More...
 
int getThreadPriority () const
 Get thread system scheduling priority. More...
 
double getThreadHz () const
 Get thread run full cycle rate. More...
 
- Static Public Attributes inherited from laelaps::LaeThread
static const int ThreadPriorityMin = 1
 minimum scheduling priority
 
static const int ThreadPriorityMax = 99
 maximum scheduling priority
 
static const double ThreadMinHz = 0.001
 minimum thread Hertz More...
 
- Static Protected Member Functions inherited from laelaps::LaeThread
static void * thread (void *pArg)
 The thread. More...
 

Detailed Description

Definition at line 144 of file utThread.cxx.

Member Function Documentation

virtual void UTThread::exec ( )
inlineprotectedvirtual

Execute task(s) within scheduled [sub]cycle.

This function is called every cycle in the Running state.

A hook for any derived thread class. A simple debug print execution for the base class.

This function executes under the lock/unlock mutex.

Context:
This thread.

Reimplemented from laelaps::LaeThread.

Definition at line 173 of file utThread.cxx.

References OptsRand.

174  {
175  ulong_t usec;
176  double f;
177 
178  LaeThread::exec();
179 
180  if( OptsRand )
181  {
182  f = (double)m_rand.uniform(0.0, 2.0);
183  usec = (ulong_t)(f * m_fTExec * 1000000);
184  usleep(usec);
185  }
186  }
static bool_t OptsRand
thread random jitter
Definition: utThread.cxx:88
double m_fTExec
task execution cycle period (seconds)
Definition: laeThread.h:205
virtual void UTThread::transToExit ( )
inlineprotectedvirtual

Any to Exit state transition function.

This function is called after entering the Exit state but prior to terminating the thread.

A hook for any derived thread class. A no-op for the base class.

This function does not execute under the lock/unlock mutex.

Context:
This thread.

Reimplemented from laelaps::LaeThread.

Definition at line 168 of file utThread.cxx.

169  {
170  printf("UTThread::transToExit, state=%d\n", m_eState);
171  }
ThreadState m_eState
thread state
Definition: laeThread.h:197
virtual void UTThread::transToReady ( )
inlineprotectedvirtual

Uninitialized to Ready state transition function.

This function is called after entering the Ready state but prior to being blocked waiting to be run.

A hook for any derived thread class. A no-op for the base class.

This function does not execute under the lock/unlock mutex.

Context:
This thread.

Reimplemented from laelaps::LaeThread.

Definition at line 158 of file utThread.cxx.

159  {
160  printf("UTThread::transToReady, state=%d\n", m_eState);
161  }
ThreadState m_eState
thread state
Definition: laeThread.h:197
virtual void UTThread::transToRunning ( )
inlineprotectedvirtual

Ready to Running state transition function.

This function is called after entering the Running state but prior to any run execution.

A hook for any derived thread class. A no-op for the base class.

This function does not execute under the lock/unlock mutex.

Context:
This thread.

Reimplemented from laelaps::LaeThread.

Definition at line 163 of file utThread.cxx.

164  {
165  printf("UTThread::transToRunning, state=%d\n", m_eState);
166  }
ThreadState m_eState
thread state
Definition: laeThread.h:197

The documentation for this class was generated from the following file: