00001 #ifndef SeaBee3GUICommunicator_H 00002 #define SeaBee3GUICommunicator_H 00003 00004 #include "Qt/ui/SeaBee3GUI.h" 00005 #include "Robots/RobotBrain/RobotBrainComponent.H" 00006 00007 class SeaBee3MainDisplayForm; 00008 00009 class SeaBee3GUICommunicator : public RobotBrainComponent 00010 { 00011 public: 00012 SeaBee3GUICommunicator(OptionManager& mgr, 00013 const std::string& descrName = "SeaBee3Communicator", 00014 const std::string& tagName = "SeaBee3Communicator"); 00015 00016 virtual void updateMessage(const RobotSimEvents::EventMessagePtr& eMsg, 00017 const Ice::Current&); 00018 00019 virtual void registerTopics(); 00020 00021 virtual void evolve(); 00022 00023 void registerGUI(SeaBee3MainDisplayForm* form); 00024 00025 void toggleCamera(std::string id, bool active); 00026 00027 void updatePoseSettings(int updateSelect, int heading, int depth, int speed); 00028 00029 void updatePID(int pidSelect, float k, float p, float i, float d); 00030 00031 void enablePID(); 00032 00033 void disablePID(); 00034 00035 void SeaBeeInjectorMsg(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j); 00036 00037 private: 00038 SeaBee3MainDisplayForm *itsGUIForm; 00039 00040 bool itsGUIRegistered; 00041 IceUtil::Mutex itsGUIFormMutex; 00042 00043 Image<PixRGB<byte> > itsFwdImg; 00044 Image<PixRGB<byte> > itsDwnImg; 00045 IceUtil::Mutex itsImageMutex; 00046 00047 int itsFwdFrameCount; 00048 int itsLastFwdFrameCount; 00049 int itsDwnFrameCount; 00050 int itsLastDwnFrameCount; 00051 00052 }; 00053 00054 #endif 00055