00001 #ifndef ICECOMMUNICATOR_H 00002 #define ICECOMMUNICATOR_H 00003 00004 #include <QtGui/QtGui> 00005 #include "Ice/RobotBrainObjects.ice.H" 00006 #include "Ice/RobotSimEvents.ice.H" 00007 #include "Ice/IceImageUtils.H" 00008 #include <Ice/Ice.h> 00009 00010 #include "Robots/RobotBrain/RobotBrainComponent.H" 00011 00012 00013 //#include "Util/Timer.H" 00014 //#include "GUI/CompassMeter.H" 00015 //#include "GUI/DepthMeter.H" 00016 //#include "GUI/PressureMeter.H" 00017 //#include "GUI/CircleFillMeter.H" 00018 00019 // 00020 //class BeeStemData 00021 //{ 00022 //public: 00023 // float heading; 00024 // float externalPressure; 00025 // float internalPressure; 00026 // int headingPIDOutput; 00027 // int depthPIDOutput; 00028 // bool killSwitch; 00029 //}; 00030 00031 class IceCommunicator : public QObject, public RobotBrainComponent 00032 { 00033 Q_OBJECT 00034 00035 public: 00036 IceCommunicator(OptionManager& mgr, 00037 const std::string& descrName = "IceCommunicator", 00038 const std::string& tagName = "IceCommunicator"); 00039 00040 virtual void updateMessage(const RobotSimEvents::EventMessagePtr& eMsg, 00041 const Ice::Current&); 00042 00043 virtual void registerTopics(); 00044 00045 virtual void evolve(); 00046 00047 signals: 00048 void NewFwdLeftImg(QImage); 00049 void NewFwdRightImg(QImage); 00050 void NewDwnLeftImg(QImage); 00051 void NewDwnRightImg(QImage); 00052 00053 00054 // void setOrangeSegEnabled(bool enabled); 00055 // void setSalientPointsEnabled(bool enabled); 00056 00057 private: 00058 // void updateFwdImg(); 00059 // 00060 // void updateDwnImg(); 00061 // 00062 // void updateBeeStemData(); 00063 // 00064 // void updateSaliencyImage(); 00065 // 00066 // 00067 // SeaBee3MainDisplayForm *itsGUIForm; 00068 // 00069 // bool itsGUIRegistered; 00070 // IceUtil::Mutex itsGUIFormMutex; 00071 // 00072 // IceUtil::Mutex itsUpdateMutex; // Locks lists for incoming updates 00073 // 00074 // std::list<Image<PixRGB<byte> > > itsFwdRetinaImages; 00075 // char itsFwdRetinaImagesSize; 00076 // char itsFwdRetinaMsgCounter; 00077 // 00078 // std::list<Image<PixRGB<byte> > > itsDwnRetinaImages; 00079 // char itsDwnRetinaImagesSize; 00080 // char itsDwnRetinaMsgCounter; 00081 // 00082 // std::list<Image<PixRGB<byte> > > itsOrangeSegImages; 00083 // bool itsOrangeSegEnabled; 00084 // 00085 // std::list<Image<PixRGB<byte> > > itsRedSegImages; 00086 // char itsRedSegImagesSize; 00087 // 00088 // std::list<Point2D<int> > itsSalientPoints; 00089 // int itsSalientPointsSize; 00090 // bool itsSalientPointsEnabled; 00091 // 00092 // char itsVisionMsgCounter; 00093 // 00094 // std::list<BeeStemData> itsBeeStemData; 00095 // char itsBeeStemDataSize; 00096 // char itsBeeStemMsgCounter; 00097 // CompassMeter itsCompassMeter; 00098 // DepthMeter itsDepthMeter; 00099 // PressureMeter itsPressureMeter; 00100 // CircleFillMeter itsCircleFillMeter; 00101 // 00102 // Timer itsTimer; 00103 // 00104 // Image<PixRGB<byte> > itsFwdVisionImage; 00105 // Image<PixRGB<byte> > itsDwnVisionImage; 00106 00107 }; 00108 00109 #endif 00110