gui_manager.cpp
Go to the documentation of this file.
00001 #include "gui_manager.h"
00002 
00003 
00004 GUImanager::GUImanager(QMainWindow &widget, Ui::MainWindow &win, QApplication &app)
00005 {
00006     //register types for QT
00007     qRegisterMetaType<long int>("long int");
00008     qRegisterMetaType<Led*>("Led*");
00009 
00010     _widget = &widget;
00011     _win = &win;
00012     _app = &app;
00013     _timer = _nh.createTimer(ros::Duration(LOOP_RATE), &GUImanager::_loopEvents, this);
00014 
00015     _eventSlot.initiate(win, app);
00016 
00017     _initiateLbls();
00018     _initiateLeds();
00019     _connectEvents();
00020     _subscribeListeners();
00021 
00022     _win->move_pbar->setVisible(false);
00023 
00024     //load values to cmbox from srdf file
00025     std::string filePath = ros::package::getPath("robotican_armadillo_moveit_config") + "/config/armadillo_robot.srdf";
00026     TiXmlDocument doc(filePath);
00027     if (doc.LoadFile())
00028     {
00029         TiXmlElement* root = doc.FirstChildElement("robot");
00030 
00031         for(TiXmlElement* e = root->FirstChildElement("group_state"); e != NULL; e = e->NextSiblingElement("group_state"))
00032             _win->cmbox_preset->addItem(QString::fromStdString(e->Attribute("name")));
00033     }
00034     else
00035     {
00036         std::string msg = "Can't load file ";
00037         msg.append(filePath);
00038         msg.append(" . Presets list will be empty. Check that the file exist, and is not corrupted");
00039         QMessageBox::warning(_widget, "Can't Load file", QString::fromStdString(msg));
00040     }
00041 }
00042 
00043 void GUImanager::startGUI()
00044 {
00045     _timer.start();
00046 }
00047 
00048 void GUImanager::_connectEvents()
00049 {
00050     //battery meter updates
00051     QObject::connect(&_eventSignal, SIGNAL(batValChanged(int)),
00052                      &_eventSlot, SLOT(setBatPwr(int)));
00053 
00054     //leds updates
00055     QObject::connect(&_eventSignal, SIGNAL(ledChanged(long int, Led*)),
00056                      &_eventSlot, SLOT(setLed(long int, Led*)));
00057 
00058     //move arm to driving mode
00059     QObject::connect(_win->drive_btn, SIGNAL(clicked()),
00060                      &_eventSlot, SLOT(moveArmToDrive()));
00061 
00062     //move arm to preset
00063     QObject::connect(_win->preset_btn, SIGNAL(clicked()),
00064                      &_eventSlot, SLOT(moveArmToPreset()));
00065 
00066     //exit app button
00067     QObject::connect(_win->exit_btn, SIGNAL(clicked()),
00068                      &_eventSlot, SLOT(closeApp()));
00069 }
00070 
00071 //**************************************************
00072 //this procedure is a called as ros::Timer callback,
00073 //therefore it will run in loop
00074 //**************************************************
00075 
00076 void GUImanager::_loopEvents(const ros::TimerEvent &timerEvent)
00077 {
00078     _eventSignal.signalBatVal(_batListener.getBatteryPwr());
00079     _eventSignal.signalLed(_batListener.getLastSignal(), &_batteryLed);
00080     _eventSignal.signalLed(_armListener.getLastSignal(), &_armLed);
00081     _eventSignal.signalLed(_panTiltListenere.getLastSignal(), &_panTiltLed);
00082     _eventSignal.signalLed(_odomListener.getLastSignal(), &_odomLed);
00083     _eventSignal.signalLed(_gripperListener.getLastSignal(), &_gripperLed);
00084     _eventSignal.signalLed(_imuListener.getLastSignal(), &_imuLed);
00085     _eventSignal.signalLed(_lidarListener.getLastSignal(), &_lidarLed);
00086     _eventSignal.signalLed(_gpsListener.getLastSignal(), &_gpsLed);
00087     _eventSignal.signalLed(_frontCamListener.getLastSignal(), &_frontCamLed);
00088     _eventSignal.signalLed(_rearCamListener.getLastSignal(), &_rearCamLed);
00089     _eventSignal.signalLed(_urfLeftListener.getLastSignal(), &_urfLeftLed);
00090     _eventSignal.signalLed(_urfRearListener.getLastSignal(), &_urfRearLed);
00091     _eventSignal.signalLed(_urfRightListener.getLastSignal(), &_urfRightLed);
00092     _eventSignal.signalLed(_kinect2Listener.getLastSignal(), &_kinect2Led);
00093     _eventSignal.signalLed(_sr300.getLastSignal(), &_sr300Led);
00094 }
00095 
00096 void GUImanager::_initiateLeds()
00097 {
00098     _armLed.initiate(*_win->arm_led);
00099     _panTiltLed.initiate(*_win->pan_tilt_led);
00100     _odomLed.initiate(*_win->odom_led);
00101     _gripperLed.initiate(*_win->gripper_led);
00102     _imuLed.initiate(*_win->imu_led);
00103     _lidarLed.initiate(*_win->lidar_led);
00104     _gpsLed.initiate(*_win->gps_led);
00105     _frontCamLed.initiate(*_win->front_cam_led);
00106     _rearCamLed.initiate(*_win->rear_cam_led);
00107     _urfLeftLed.initiate(*_win->urf_left_led);
00108     _urfRearLed.initiate(*_win->urf_rear_led);
00109     _urfRightLed.initiate(*_win->urf_right_led);
00110     _kinect2Led.initiate(*_win->kinect2_led);
00111     _sr300Led.initiate(*_win->sr300_led);
00112     _batteryLed.initiate(*_win->battery_led);
00113 }
00114 
00115 void GUImanager::_subscribeListeners()
00116 {
00117     //subscribe all listeners to appropriate topic
00118     _batListener.subscribe();
00119     _armListener.subscribe();
00120     _panTiltListenere.subscribe();
00121     _odomListener.subscribe();
00122     _gripperListener.subscribe();
00123     _imuListener.subscribe();
00124     _lidarListener.subscribe();
00125     _gpsListener.subscribe();
00126     _rearCamListener.subscribe();
00127     _frontCamListener.subscribe();
00128     _urfRightListener.subscribe();
00129     _urfRearListener.subscribe();
00130     _urfLeftListener.subscribe();
00131     _kinect2Listener.subscribe();
00132     _sr300.subscribe();
00133 }
00134 
00135 void GUImanager::_initiateLbls()
00136 {
00137     std::string tempParam;
00138 
00139     _nh.param<std::string>("battery_lbl_name",tempParam, "BATTERY");
00140     _win->battery_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00141 
00142     _nh.param<std::string>("gps_lbl_name",tempParam, "GPS");
00143     _win->gps_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00144 
00145     _nh.param<std::string>("imu_lbl_name",tempParam, "IMU");
00146     _win->imu_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00147 
00148     _nh.param<std::string>("lidar_lbl_name",tempParam, "LIDAR");
00149     _win->lidar_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00150 
00151     _nh.param<std::string>("odom_lbl_name",tempParam, "ODOM");
00152     _win->odom_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00153 
00154     _nh.param<std::string>("arm_lbl_name",tempParam, "ARM");
00155     _win->arm_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00156 
00157     _nh.param<std::string>("gripper_lbl_name",tempParam, "GRIPPER");
00158     _win->gripper_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00159 
00160     _nh.param<std::string>("left_urf_lbl_name",tempParam, "LEFT");
00161     _win->left_urf_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00162 
00163     _nh.param<std::string>("right_urf_lbl_name",tempParam, "RIGHT");
00164     _win->right_urf_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00165 
00166     _nh.param<std::string>("rear_urf_lbl_name",tempParam, "REAR");
00167     _win->rear_urf_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00168 
00169     _nh.param<std::string>("kinect2_lbl_name",tempParam, "KINECT2");
00170     _win->kinnect2_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00171 
00172     _nh.param<std::string>("sr300_lbl_name",tempParam, "SR300");
00173     _win->sr300_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00174 
00175     _nh.param<std::string>("rear_cam_lbl_name",tempParam, "REAR");
00176     _win->rear_cam_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00177 
00178     _nh.param<std::string>("front_cam_name",tempParam, "FRONT");
00179     _win->front_cam_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00180 
00181     _nh.param<std::string>("pan_tilt_name",tempParam, "PAN-TILT");
00182     _win->pan_tilt_lbl->setText(QApplication::translate("MainWindow", tempParam.c_str(), 0));
00183 }
00184 


robotican_gui
Author(s): eli
autogenerated on Tue Feb 21 2017 04:00:20