Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

Motion.h

Go to the documentation of this file.
00001 //-*-c++-*-
00002 #ifndef INCLUDED_Motion_h_
00003 #define INCLUDED_Motion_h_
00004 
00005 #include "Process.h"
00006 #include "sim.h"
00007 #include "IPC/ProcessID.h"
00008 #include "IPC/SharedObject.h"
00009 #include "SharedGlobals.h"
00010 #include "Motion/MotionManager.h"
00011 #include "Sound/SoundManager.h"
00012 #include "Shared/Profiler.h"
00013 #include "local/EntryPoint.h"
00014 #include <list>
00015 
00016 class Motion : public Process {
00017 public:
00018   //! constructor
00019   Motion();
00020   //! destructor
00021   ~Motion();
00022 
00023   virtual void doStart();
00024   virtual void run();
00025   virtual void doStop();
00026 
00027   static const char * getClassName() { return "Motion"; }
00028   static ProcessID::ProcessID_t getID() { return ProcessID::MotionProcess; }
00029   
00030   static const char * getMotionCommandID() { return "MotionCommands"; }
00031   static const char * getMotionOutputID() { return "MotionOutput"; }
00032   static const char * getMotionOutputPIDsID() { return "MotionOutputPIDs"; }
00033   static const char * getMotionManagerID() { return "MotionManager"; }
00034   static const char * getMotionProfilerID() { return "MotionProfiler"; }
00035 
00036 protected:
00037   SharedObject<sim::SoundPlayQueue_t> sounds;
00038   SharedObject<sim::MotionCommandQueue_t> motions;
00039   SharedObject<sim::MotionOutput_t> motionout;
00040   SharedObject<sim::MotionOutputPIDs_t> motionoutpids;
00041   SharedObject<sim::EventQueue_t> events;
00042   SharedObject<sim::StatusRequest_t> statusRequest;
00043   SharedObject<MotionManager> motionmanager;
00044   SharedObject<SoundManager> soundmanager;
00045   SharedObject<sim::MotionWakeup_t> motionWakeup;
00046   SharedObject<motionProfiler_t> motionProf;
00047   
00048   IPCEventTranslator * etrans;
00049   class MessageReceiver * statusrecv;
00050   class MessageReceiver * wakeuprecv;
00051   class MotionExecThread * motionExec;
00052   class IPCMotionHook * motionfwd;
00053   WirelessThread wireless_thread;
00054 
00055   EntryPoint motionLock;
00056   
00057   static bool gotWakeup(RCRegion* msg);
00058   
00059 private:
00060   Motion(const Motion&); //!< don't call (copy constructor)
00061   Motion& operator=(const Motion&); //!< don't call (assignment operator)
00062 };
00063 
00064 /*! @file
00065  * @brief Defines Motion, which DESCRIPTION
00066  * @author ejt (Creator)
00067  */
00068 
00069 #endif

Tekkotsu Hardware Abstraction Layer 5.1CVS
Generated Mon May 9 05:01:39 2016 by Doxygen 1.6.3