Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef STDR_ROBOT_CREATOR_CONNECTOR
00023 #define STDR_ROBOT_CREATOR_CONNECTOR
00024
00025 #include "stdr_gui/stdr_robot_creator/stdr_robot_creator_loader.h"
00026
00031 namespace stdr_gui
00032 {
00037 class CRobotCreatorConnector:
00038 public QObject
00039 {
00040 Q_OBJECT
00041
00042 private:
00044 int argc_;
00046 char** argv_;
00047
00049 float climax_;
00050
00052 CRobotCreatorLoader loader_;
00053
00055 stdr_msgs::RobotMsg new_robot_msg_;
00056
00058 unsigned int laser_hightlight_id_;
00060 unsigned int sonar_hightlight_id_;
00062 unsigned int rfid_antenna_hightlight_id_;
00064 unsigned int co2_sensor_hightlight_id_;
00065 unsigned int thermal_sensor_hightlight_id_;
00066 unsigned int sound_sensor_hightlight_id_;
00067
00069 QTreeWidgetItem* current_laser_;
00071 QTreeWidgetItem* current_sonar_;
00073 QTreeWidgetItem* current_rfid_;
00074 QTreeWidgetItem* current_co2_sensor_;
00075 QTreeWidgetItem* current_thermal_sensor_;
00076 QTreeWidgetItem* current_sound_sensor_;
00078 QTreeWidgetItem* current_footprint_point_;
00079
00085 void showMessage(QString msg);
00086
00087
00088 public:
00089
00091 static int laser_number;
00093 static int sonar_number;
00095 static int rfid_number;
00096 static int co2_sensors_number;
00097 static int thermal_sensors_number;
00098 static int sound_sensors_number;
00099
00106 CRobotCreatorConnector(int argc, char **argv);
00107
00112 ~CRobotCreatorConnector(void);
00113
00118 void initialise(void);
00119
00125 void deleteTreeNode(QTreeWidgetItem *item);
00126
00131 void editRobot(void);
00132
00137 void addLaser(void);
00138
00144 void addLaser(stdr_msgs::LaserSensorMsg lmsg);
00145
00151 void eraseLaser(QTreeWidgetItem *item);
00152
00158 void editLaser(QTreeWidgetItem *item);
00159
00165 int searchLaser(QString frameId);
00166
00172 void saveLaser(QTreeWidgetItem *item);
00173
00179 void loadLaser(QTreeWidgetItem *item);
00180
00187 void updateLaserTree(QTreeWidgetItem *item,stdr_msgs::LaserSensorMsg l);
00188
00193 void addFootprintPoint(void);
00194
00199 void addFootprintPoint(geometry_msgs::Point pt);
00200
00205 void eraseFootprintPoint(QTreeWidgetItem *item);
00206
00211 void addSonar(void);
00212
00218 void addSonar(stdr_msgs::SonarSensorMsg smsg);
00219
00225 void eraseSonar(QTreeWidgetItem *item);
00226
00232 void editSonar(QTreeWidgetItem *item);
00233
00239 int searchSonar(QString frameId);
00240
00246 void saveSonar(QTreeWidgetItem *item);
00247
00253 void saveRfidAntenna(QTreeWidgetItem *item);
00254 void saveCO2Sensor(QTreeWidgetItem *item);
00255 void saveThermalSensor(QTreeWidgetItem *item);
00256 void saveSoundSensor(QTreeWidgetItem *item);
00257
00263 void loadSonar(QTreeWidgetItem *item);
00264
00270 void loadRfidAntenna(QTreeWidgetItem *item);
00271 void loadCO2Sensor(QTreeWidgetItem *item);
00272 void loadThermalSensor(QTreeWidgetItem *item);
00273 void loadSoundSensor(QTreeWidgetItem *item);
00274
00281 void updateSonarTree(QTreeWidgetItem *item,stdr_msgs::SonarSensorMsg l);
00282
00289 void updateRfidTree(QTreeWidgetItem *item,stdr_msgs::RfidSensorMsg l);
00290 void updateCO2SensorTree(QTreeWidgetItem *item,stdr_msgs::CO2SensorMsg l);
00291 void updateThermalSensorTree(QTreeWidgetItem *item,stdr_msgs::ThermalSensorMsg l);
00292 void updateSoundSensorTree(QTreeWidgetItem *item,stdr_msgs::SoundSensorMsg l);
00293
00298 void addRfidAntenna(void);
00299 void addCO2Sensor(void);
00300 void addThermalSensor(void);
00301 void addSoundSensor(void);
00302
00308 void addRfidAntenna(stdr_msgs::RfidSensorMsg rmsg);
00309 void addCO2Sensor(stdr_msgs::CO2SensorMsg rmsg);
00310 void addThermalSensor(stdr_msgs::ThermalSensorMsg rmsg);
00311 void addSoundSensor(stdr_msgs::SoundSensorMsg rmsg);
00312
00318 void eraseRfid(QTreeWidgetItem *item);
00319 void eraseCO2Sensor(QTreeWidgetItem *item);
00320 void eraseThermalSensor(QTreeWidgetItem *item);
00321 void eraseSoundSensor(QTreeWidgetItem *item);
00322
00328 void editRfid(QTreeWidgetItem *item);
00329 void editCO2Sensor(QTreeWidgetItem *item);
00330 void editThermalSensor(QTreeWidgetItem *item);
00331 void editSoundSensor(QTreeWidgetItem *item);
00332
00338 void editFootprintPoint(QTreeWidgetItem *item);
00339
00345 int searchRfid(QString frameId);
00346 int searchCO2Sensor(QString frameId);
00347 int searchThermalSensor(QString frameId);
00348 int searchSoundSensor(QString frameId);
00349
00354 void drawRobot(void);
00355
00360 void drawLasers(void);
00361
00366 void drawSonars(void);
00367
00372 void drawRfidAntennas(void);
00373 void drawCO2Sensors(void);
00374 void drawThermalSensors(void);
00375 void drawSoundSensors(void);
00376
00381 void updateRobotPreview(void);
00382
00387 void updateRobotTree(void);
00388
00395 void setInitialPose(float x, float y);
00396
00401 stdr_msgs::RobotMsg getNewRobot(void);
00402
00408 void setNewRobot(stdr_msgs::RobotMsg msg);
00409
00410
00411 public Q_SLOTS:
00412
00419 void treeItemClicked ( QTreeWidgetItem * item, int column );
00420
00425 void updateLaser(void);
00426
00431 void updateSonar(void);
00432
00437 void updateLaserOpen(void);
00438
00443 void updateSonarOpen(void);
00444
00449 void updateRfidAntenna(void);
00450 void updateCO2Sensor(void);
00451 void updateThermalSensor(void);
00452 void updateSoundSensor(void);
00453 void updateKinematicModel(void);
00454
00459 void updateRfidAntennaOpen(void);
00460 void updateCO2SensorOpen(void);
00461 void updateThermalSensorOpen(void);
00462 void updateSoundSensorOpen(void);
00463
00468 void updateRobot(void);
00469
00474 void updateRobotOpen(void);
00475
00480 void updateFootprintPoint(void);
00481
00486 void updateFootprintPointOpen(void);
00487
00492 void saveRobot(void);
00493
00498 void getRobotFromYaml(void);
00499
00504 void loadRobot(void);
00505
00506
00507 Q_SIGNALS:
00508
00514 void loadRobotPressed(stdr_msgs::RobotMsg newRobotMsg);
00515
00522 void saveRobotPressed(stdr_msgs::RobotMsg newRobotMsg,QString file_name);
00523 };
00524 }
00525
00526 #endif