00001 /**************************************************************************** 00002 ** Form interface generated from reading ui file 'Qt/SeaBee3GUI.ui' 00003 ** 00004 ** WARNING! All changes made in this file will be lost! 00005 ****************************************************************************/ 00006 00007 #ifndef SEABEE3MAINDISPLAYFORM_H 00008 #define SEABEE3MAINDISPLAYFORM_H 00009 00010 #include <qvariant.h> 00011 #include <qpixmap.h> 00012 #include <qmainwindow.h> 00013 #include <list> 00014 #include <IceUtil/Mutex.h> 00015 #include <queue> 00016 #include "Component/ModelManager.H" 00017 #include "Image/Image.H" 00018 #include "Image/PixelsTypes.H" 00019 #include "Qt/SeaBee3GUICommunicator.H" 00020 #include "GUI/SimpleMeter.H" 00021 #include "Util/MathFunctions.H" 00022 #include "Robots/SeaBeeIII/MapperI.H" 00023 #include "Image/CutPaste.H" 00024 #include "Raster/PngParser.H" 00025 #include "Raster/GenericFrame.H" 00026 #include "Image/Point2D.H" 00027 #include "Ice/RobotSimEvents.ice.H" 00028 00029 class QVBoxLayout; 00030 class QHBoxLayout; 00031 class QGridLayout; 00032 class QSpacerItem; 00033 class QAction; 00034 class QActionGroup; 00035 class QToolBar; 00036 class QPopupMenu; 00037 class ImageCanvas; 00038 class QGroupBox; 00039 class QFrame; 00040 class QLabel; 00041 class QLineEdit; 00042 class QCheckBox; 00043 class QSpinBox; 00044 class QButtonGroup; 00045 class QRadioButton; 00046 class QTabWidget; 00047 class QWidget; 00048 class QPushButton; 00049 class QLCDNumber; 00050 class QComboBox; 00051 class SeaBee3GUICommunicator; 00052 00053 class SeaBee3MainDisplayForm : public QMainWindow 00054 { 00055 Q_OBJECT 00056 00057 public: 00058 SeaBee3MainDisplayForm( QWidget* parent = 0, const char* name = 0, WFlags fl = WType_TopLevel ); 00059 ~SeaBee3MainDisplayForm(); 00060 00061 QGroupBox* groupBox9_4; 00062 QFrame* frame3; 00063 ImageCanvas* ThrusterCurrentMeterCanvas4; 00064 ImageCanvas* ThrusterCurrentMeterCanvas5; 00065 ImageCanvas* ThrusterCurrentMeterCanvas2; 00066 ImageCanvas* ThrusterCurrentMeterCanvas3; 00067 ImageCanvas* ThrusterCurrentMeterCanvas6; 00068 QLabel* textLabel2; 00069 QLabel* textLabel2_2; 00070 QLabel* textLabel2_2_2; 00071 QLabel* textLabel2_2_3; 00072 QLabel* textLabel2_2_4; 00073 QLabel* textLabel2_2_5; 00074 QLabel* textLabel2_2_6; 00075 QLabel* textLabel2_2_7; 00076 ImageCanvas* ThrusterCurrentMeterCanvas7; 00077 QLabel* textLabel1_3; 00078 QLabel* textLabel1_2; 00079 QLabel* textLabel1; 00080 ImageCanvas* ThrusterCurrentMeterCanvas1; 00081 ImageCanvas* ThrusterCurrentMeterCanvas0; 00082 QGroupBox* groupBox1; 00083 QGroupBox* groupBox9_3; 00084 QLineEdit* field_int_press; 00085 ImageCanvas* IPressureCanvas; 00086 QCheckBox* ExtPressAuto; 00087 QSpinBox* IntPressMax; 00088 QSpinBox* IntPressMin; 00089 QSpinBox* ExtPressMax; 00090 QSpinBox* ExtPressMin; 00091 QGroupBox* groupBox6; 00092 ImageCanvas* CompassCanvas; 00093 QLineEdit* field_heading; 00094 QCheckBox* IntPressAuto; 00095 QGroupBox* groupBox10; 00096 ImageCanvas* EPressureCanvas; 00097 QLineEdit* field_ext_press; 00098 ImageCanvas* ImageDisplay0_2_2; 00099 QLineEdit* desired_heading_field_2_3; 00100 QLineEdit* desired_heading_field_2_2; 00101 QGroupBox* groupBox10_2; 00102 QGroupBox* groupBox2; 00103 QButtonGroup* buttonGroup1; 00104 QRadioButton* radio_manual; 00105 QRadioButton* radio_auto; 00106 QLineEdit* desired_speed_field; 00107 QLineEdit* desired_depth_field; 00108 QLabel* textLabel2_3_2_2; 00109 QLabel* textLabel2_2_2_3_2_2; 00110 QLabel* textLabel2_2_2_3_2_2_2; 00111 QLineEdit* desired_heading_field; 00112 QGroupBox* groupBox4; 00113 QLabel* textLabel2_3_2_2_2; 00114 QLabel* textLabel2_3_2_2_2_2; 00115 QLineEdit* heading_output_field; 00116 QLineEdit* depth_output_field; 00117 QTabWidget* tabWidget3; 00118 QWidget* tab; 00119 QFrame* frame4; 00120 ImageCanvas* ImageDisplay1; 00121 ImageCanvas* ImageDisplay2; 00122 ImageCanvas* ImageDisplay3; 00123 ImageCanvas* ImageDisplay0; 00124 QWidget* TabPage; 00125 QFrame* frame4_2; 00126 ImageCanvas* MovementDisplay0; 00127 ImageCanvas* MovementDisplay1; 00128 QWidget* tab_2; 00129 QGroupBox* groupBox9_2; 00130 QLabel* textLabel2_3_2_2_3_3_2; 00131 QLabel* textLabel2_3_2_2_3_2_2; 00132 QLineEdit* field_depth_i; 00133 QLineEdit* field_depth_d; 00134 QLineEdit* field_depth_k; 00135 QLabel* textLabel2_3_2_2_3_2_4_2_2; 00136 QLabel* textLabel2_3_2_2_3_4_2; 00137 QLineEdit* field_depth_p; 00138 QGroupBox* groupBox11; 00139 QLabel* textLabel1_4_2; 00140 QLabel* textLabel1_4_3; 00141 QLabel* textLabel1_4_3_2; 00142 QLabel* textLabel1_4; 00143 QPushButton* recordButton; 00144 QPushButton* stopButton; 00145 QPushButton* eraseButton; 00146 QPushButton* saveButton; 00147 QLabel* textLabel1_4_4; 00148 QLCDNumber* dataLoggerLCD; 00149 QGroupBox* groupBox9; 00150 QLabel* textLabel2_3_2_2_3_2_4_2; 00151 QLabel* textLabel2_3_2_2_3_2; 00152 QLabel* textLabel2_3_2_2_3_3; 00153 QLabel* textLabel2_3_2_2_3_4; 00154 QLineEdit* field_heading_i; 00155 QLineEdit* field_heading_k; 00156 QLineEdit* field_heading_d; 00157 QLineEdit* field_heading_p; 00158 QWidget* TabPage_2; 00159 ImageCanvas* MapCanvas; 00160 QGroupBox* groupBox15; 00161 QLabel* textLabel1_5; 00162 QLineEdit* MapName; 00163 QPushButton* SaveMapBtn; 00164 QPushButton* LoadMapBtn; 00165 QGroupBox* groupBox12; 00166 QPushButton* PlatformBtn; 00167 QLabel* PlatformPic; 00168 QLabel* GatePic; 00169 QPushButton* GateBtn; 00170 QLabel* PipePic; 00171 QPushButton* PipeBtn; 00172 QLabel* BuoyPic; 00173 QPushButton* FlareBtn; 00174 QLabel* BinPic; 00175 QLabel* BarbwirePic; 00176 QLabel* MachineGunNestPic; 00177 QLabel* OctagonSurfacePic; 00178 QPushButton* BinBtn; 00179 QPushButton* OctagonSurfaceBtn; 00180 QPushButton* MachineGunNestBtn; 00181 QPushButton* BarbwireBtn; 00182 QGroupBox* groupBox13; 00183 QComboBox* ObjectList; 00184 QLabel* textLabel2_3; 00185 QLineEdit* MapObjectY; 00186 QLabel* textLabel1_6; 00187 QLabel* textLabel2_4; 00188 QLineEdit* MapObjectX; 00189 QLineEdit* MapObjectVarX; 00190 QLineEdit* MapObjectVarY; 00191 QLabel* textLabel1_7; 00192 QPushButton* DeleteBtn; 00193 QPushButton* PlaceBtn; 00194 QWidget* TabPage_3; 00195 QPushButton* BriefcaseFoundBtn; 00196 QPushButton* BombingRunBtn; 00197 QPushButton* ContourFoundBoxesBtn; 00198 QPushButton* BarbwireDoneBtn; 00199 QPushButton* ContourFoundBarbwireBtn; 00200 QPushButton* FlareDoneBtn; 00201 QPushButton* GateFoundBtn; 00202 QPushButton* InitDoneBtn; 00203 QPushButton* GateDoneBtn; 00204 QPushButton* ContourFoundFlareBtn; 00205 QWidget* TabPage_4; 00206 QLabel* textLabel1_8; 00207 QLineEdit* colorFileLoadText; 00208 QPushButton* ColorPickLoadBut; 00209 QLabel* textLabel2_3_2_2_5; 00210 QLabel* textLabel2_3_2_2_4; 00211 QLabel* textLabel2_3_2_2_4_3; 00212 QLabel* textLabel2_3_2_2_7; 00213 QLabel* textLabel2_3_2_2_6; 00214 QLineEdit* v_mean_val; 00215 QLineEdit* h1__mean_val; 00216 QLineEdit* h2_mean_val; 00217 QLineEdit* s_mean_val; 00218 ImageCanvas* AvgColorImg; 00219 QLabel* textLabel2_3_2_2_4_3_2; 00220 QLineEdit* h1_std_val; 00221 QLineEdit* h2_std_val; 00222 QLineEdit* v_std_val; 00223 QLineEdit* s_std_val; 00224 ImageCanvas* ColorPickerImg; 00225 00226 virtual void setSensorVotes( std::vector<ImageIceMod::SensorVote> votes ); 00227 virtual void setCompositeHeading( int heading ); 00228 virtual void setCompositeDepth( int depth ); 00229 virtual void pushRectAngle( float a ); 00230 virtual Image<PixRGB<byte> > makeCompassImage( int heading ); 00231 virtual void setThrusterMeters( int zero, int one, int two, int three, int four, int five, int six, int seven ); 00232 00233 public slots: 00234 virtual void pushFwdRectangle( ImageIceMod::QuadrilateralIce quad ); 00235 virtual void pushRectRatio( float r ); 00236 virtual void pushContourPoint( Point2D<int> p ); 00237 virtual void setSalientPoint( Point2D<float> p ); 00238 virtual void Image1Click( int a, int b, int c ); 00239 virtual void init( ModelManager * mgr ); 00240 virtual void setImage( Image<PixRGB<byte> > & img, std::string cameraID ); 00241 virtual void ToggleCamera0(); 00242 virtual void ToggleCamera1(); 00243 virtual void ToggleCamera2(); 00244 virtual void ToggleCamera3(); 00245 virtual void ToggleCamera( std::string cameraID, bool active ); 00246 virtual void registerCommunicator( nub::soft_ref<SeaBee3GUICommunicator> c ); 00247 virtual void setJSAxis( int axis, float val ); 00248 virtual void setSensorValues( int heading, int pitch, int roll, int intPressure, int extPressure, int headingValue, int depthValue ); 00249 virtual void updateDesiredHeading(); 00250 virtual void updateDesiredDepth(); 00251 virtual void updateDesiredSpeed(); 00252 virtual void updateHeadingPID(); 00253 virtual void updateDepthPID(); 00254 virtual void manualClicked(); 00255 virtual void autoClicked(); 00256 virtual void sendInitDone(); 00257 virtual void sendGateFound(); 00258 virtual void sendGateDone(); 00259 virtual void sendContourFoundFlare(); 00260 virtual void sendFlareDone(); 00261 virtual void sendContourFoundBarbwire(); 00262 virtual void sendBarbwireDone(); 00263 virtual void sendContourFoundBoxes(); 00264 virtual void sendBombingRunDone(); 00265 virtual void sendBriefcaseFound(); 00266 virtual void addPlatform(); 00267 virtual void addGate(); 00268 virtual void addPipe(); 00269 virtual void addFlare(); 00270 virtual void addBin(); 00271 virtual void addBarbwire(); 00272 virtual void addMachineGunNest(); 00273 virtual void addOctagonSurface(); 00274 virtual void selectObject( int index ); 00275 virtual void refreshMapImage(); 00276 virtual void moveObject(); 00277 virtual void deleteObject(); 00278 virtual void saveMap(); 00279 virtual void loadMap(); 00280 virtual void loadColorPickerImg(); 00281 virtual void clickColorPickerImg( int x, int y, int but ); 00282 00283 protected: 00284 std::vector<ImageIceMod::QuadrilateralIce> itsFwdRectangles; 00285 std::vector<Point2D<int> > itsRectangles; 00286 std::vector<MapperI::MapObject> mapObjects; 00287 SimpleMeter *currentMeter7; 00288 SimpleMeter *currentMeter6; 00289 SimpleMeter *currentMeter5; 00290 SimpleMeter *currentMeter4; 00291 SimpleMeter *currentMeter3; 00292 SimpleMeter *currentMeter2; 00293 SimpleMeter *currentMeter1; 00294 SimpleMeter *currentMeter0; 00295 nub::soft_ref<SeaBee3GUICommunicator> GUIComm; 00296 ModelManager *itsMgr; 00297 std::list<int> headingHist; 00298 std::list<int> extPressHist; 00299 std::list<int> intPressHist; 00300 IceUtil::Mutex itsDataMutex; 00301 int selectedIndex; 00302 Image<PixRGB<byte > > MapImage; 00303 Point2D<float> itsSalientPoint; 00304 std::list<float> itsRectAngles; 00305 std::list<float> itsRectRatios; 00306 int itsCompositeHeading; 00307 int itsCompositeDepth; 00308 std::vector<ImageIceMod::SensorVote> itsSensorVotes; 00309 int itsCurrentHeading; 00310 int itsCurrentDepth; 00311 Image<PixH2SV2<float> > itsConvert; 00312 00313 00314 protected slots: 00315 virtual void languageChange(); 00316 00317 private: 00318 QPixmap image0; 00319 QPixmap image1; 00320 QPixmap image2; 00321 QPixmap image3; 00322 QPixmap image4; 00323 QPixmap image5; 00324 QPixmap image6; 00325 QPixmap image7; 00326 QPixmap image8; 00327 00328 }; 00329 00330 #endif // SEABEE3MAINDISPLAYFORM_H