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/WorldStatePool.h"
00013 #include "Shared/Profiler.h"
00014 #include "local/EntryPoint.h"
00015 #include <list>
00016 
00017 class Motion : public Process {
00018 public:
00019   //! constructor
00020   Motion();
00021   //! destructor
00022   ~Motion();
00023 
00024   virtual void DoStart();
00025   virtual void run();
00026   virtual void DoStop();
00027 
00028   static const char * getClassName() { return "Motion"; }
00029   static ProcessID::ProcessID_t getID() { return ProcessID::MotionProcess; }
00030   
00031   static const char * getMotionCommandID() { return "MotionCommands"; }
00032   static const char * getMotionOutputID() { return "MotionOutput"; }
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::EventQueue_t> events;
00041   SharedObject<sim::SensorQueue_t> sensorFrames;
00042   SharedObject<sim::StatusRequest_t> statusRequest;
00043   SharedObject<MotionManager> motionmanager;
00044   SharedObject<SoundManager> soundmanager;
00045   SharedObject<WorldStatePool> worldstatepool;
00046   SharedObject<sim::MotionWakeup_t> motionWakeup;
00047   SharedObject<motionProfiler_t> motionProf;
00048   
00049   IPCEventTranslator * etrans;
00050   class MessageReceiver * sensrecv;
00051   class MessageReceiver * statusrecv;
00052   class MessageReceiver * wakeuprecv;
00053   class MotionExecThread * motionExec;
00054   class IPCMotionHook * motionfwd;
00055   WirelessThread wireless_thread;
00056 
00057   EntryPoint motionLock;
00058   
00059   static bool gotSensors(RCRegion* msg);
00060   static bool gotWakeup(RCRegion* msg);
00061   unsigned int lastSensorSN;
00062   
00063 private:
00064   Motion(const Motion&); //!< don't call (copy constructor)
00065   Motion& operator=(const Motion&); //!< don't call (assignment operator)
00066 };
00067 
00068 /*! @file
00069  * @brief Defines Motion, which DESCRIPTION
00070  * @author ejt (Creator)
00071  *
00072  * $Author: ejt $
00073  * $Name: tekkotsu-4_0 $
00074  * $Revision: 1.1 $
00075  * $State: Exp $
00076  * $Date: 2007/06/14 15:37:41 $
00077  */
00078 
00079 #endif

Tekkotsu Hardware Abstraction Layer 4.0
Generated Thu Nov 22 01:00:53 2007 by Doxygen 1.5.4