orca-robotics INTRODUCTION Overview Download and Install Quick Start Documentation Publications REPOSITORY Interfaces Components Libraries Utilities Software Map DEVELOPER Tutorials Examples Dev Guide Dashboard Wiki login/pass: orca/orca PEOPLE Contributors Users Project Download Mailing lists
|
estop.h00001 #ifndef SEGWAYRMP_ESTOP_H 00002 #define SEGWAYRMP_ESTOP_H 00003 00004 #include <IceUtil/Mutex.h> 00005 #include <orcaifaceimpl/estopImpl.h> 00006 #include <gbxsickacfr/gbxiceutilacfr/timer.h> 00007 00008 namespace segwayrmp { 00009 00010 // 00011 // @brief Establishes an orca::EStop interface, and works out when 00012 // the e-stop needs to be activated. 00013 // 00014 // Note: we begin in the EStop-triggered state: ie we're not moving unless 00015 // someone explicitly says it's OK. 00016 // 00017 // @author Alex Brooks 00018 // 00019 class EStop : public orcaifaceimpl::EStopNonStandardImpl 00020 { 00021 00022 public: 00023 00024 EStop( double keepAlivePeriodSec, 00025 const orcaice::Context &context ); 00026 00028 void initInterface( gbxsickacfr::gbxiceutilacfr::Thread* thread ); 00029 00030 // If true, we should _NOT_MOVE_ !! 00031 bool isEStopTriggered(); 00032 00033 // Inherited from orcaifaceimpl::EStopNonStandardImpl 00034 void activateEStop(); 00035 void keepAlive(); 00036 double getRequiredKeepAlivePeriodSec(); 00037 void setToOperatingMode(); 00038 00039 private: 00040 00041 IceUtil::Mutex mutex_; 00042 00043 bool isEStopTriggered_; 00044 double keepAlivePeriodSec_; 00045 gbxsickacfr::gbxiceutilacfr::Timer keepAliveTimer_; 00046 00047 orcaifaceimpl::EStopImplPtr eStopImpl_; 00048 00049 orcaice::Context context_; 00050 00051 }; 00052 00053 } 00054 00055 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)