![]()  | 
  
    Laelaps
    2.3.5
    
   RoadNarrows Robotics Small Outdoor Mobile Robot Project 
   | 
 
#include <laeThreadKin.h>
  
 Public Member Functions | |
| LaeThreadKin (LaeKinematics &kin) | |
| Default constructor.  | |
| virtual | ~LaeThreadKin () | 
| Destructor.  | |
| int | reload (const LaeTunes &tunes) | 
| Reload tunable paramaters.  More... | |
| virtual void | waitOneCycle () | 
| Force calling thread to wait one full execution cycle.  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 | |
| static const double | ThreadKinPrioDft = 99 | 
| default priority  | |
| static const double | ThreadKinHzDft = 30.0 | 
| default run rate  | |
| static const long | ThreadKinTHealthDft = 5 | 
| monitor health period  | |
  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... | |
Protected Member Functions | |
| virtual void | transToRunning () | 
| Ready to Running state transition function.  More... | |
| virtual void | exec () | 
| Execute watchdog task within scheduled 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... | |
| virtual void | transToReady () | 
| Uninitialized to Ready state transition function.  More... | |
| virtual void | transToExit () | 
| Any to Exit state transition function.  More... | |
Protected Attributes | |
| LaeKinematics & | m_kin | 
| kinematics interface  | |
| bool | m_bWaitOneCycle | 
| [not] waiting for one cycle  | |
| struct timespec | m_tsSchedHealth | 
| working health scheduler time stamp  | |
  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... | |
  Static Protected Member Functions inherited from laelaps::LaeThread | |
| static void * | thread (void *pArg) | 
| The thread.  More... | |
Watchdog thread class.
Definition at line 82 of file laeThreadKin.h.
      
  | 
  protectedvirtual | 
Execute watchdog task within scheduled cycle.
This function executes under the lock/unlock mutex.
Reimplemented from laelaps::LaeThread.
Definition at line 124 of file laeThreadKin.cxx.
References laelaps::LaeKinematics::exec(), m_bWaitOneCycle, laelaps::LaeThread::m_condSync, m_kin, laelaps::LaeThread::m_tsExecThis, m_tsSchedHealth, laelaps::LaeKinematics::monitorHealth(), and ThreadKinTHealthDft.
| int LaeThreadKin::reload | ( | const LaeTunes & | tunes | ) | 
Reload tunable paramaters.
This function executes under the lock/unlock mutex.
Definition at line 87 of file laeThreadKin.cxx.
References laelaps::LaeTunes::getKinematicsHz(), laelaps::LaeThread::lock(), laelaps::LaeThread::m_fHz, m_kin, laelaps::LaeKinematics::reload(), laelaps::LaeThread::setHz(), and laelaps::LaeThread::unlock().
Referenced by laelaps::LaeRobot::reload().
      
  | 
  protectedvirtual | 
Ready to Running state transition function.
This function is called after entering the Running state but prior to any run execution.
This function does not execute under the lock/unlock mutex.
Reimplemented from laelaps::LaeThread.
Definition at line 119 of file laeThreadKin.cxx.
References laelaps::LaeThread::m_tsExecThis, and m_tsSchedHealth.
      
  | 
  virtual | 
Force calling thread to wait one full execution cycle.
Definition at line 108 of file laeThreadKin.cxx.
References laelaps::LaeThread::lock(), m_bWaitOneCycle, laelaps::LaeThread::m_condSync, laelaps::LaeThread::m_mutexSync, and laelaps::LaeThread::unlock().