Go to the documentation of this file.00001 #include "mrta/robot.h"
00002 #include "mrta/task.h"
00003 #include "rqt_mrta/labeled_status_widget.h"
00004 #include "rqt_mrta/ui_labeled_status_widget.h"
00005
00006 namespace rqt_mrta
00007 {
00008 LabeledStatusWidget::LabeledStatusWidget(QWidget* parent, mrta::Robot* robot)
00009 : QWidget(parent), ui_(new Ui::LabeledStatusWidget())
00010 {
00011 ui_->setupUi(this);
00012 connect(robot, SIGNAL(idle()), this, SLOT(setGreen()));
00013 connect(robot, SIGNAL(busy()), this, SLOT(setYellow()));
00014 connect(robot, SIGNAL(offline()), this, SLOT(setGray()));
00015 connect(robot, SIGNAL(idChanged(const QString&)), this,
00016 SLOT(setLabel(const QString&)));
00017 switch (robot->getState())
00018 {
00019 case mrta::Robot::Idle:
00020 setGreen();
00021 break;
00022 case mrta::Robot::Busy:
00023 setYellow();
00024 break;
00025 case mrta::Robot::Offline:
00026 setGray();
00027 break;
00028 }
00029 setLabel(robot->getId());
00030 }
00031
00032 LabeledStatusWidget::LabeledStatusWidget(QWidget* parent, mrta::Task* task) {}
00033
00034 LabeledStatusWidget::~LabeledStatusWidget()
00035 {
00036 ROS_INFO_STREAM("[~LabeledStatusWidget] before ...");
00037 if (ui_)
00038 {
00039 delete ui_;
00040 ui_ = NULL;
00041 }
00042 ROS_INFO_STREAM("[~LabeledStatusWidget] after ...");
00043 }
00044
00045 void LabeledStatusWidget::setGreen()
00046 {
00047 ui_->status_widget->setCurrentRole(StatusWidget::Green, "");
00048 }
00049
00050 void LabeledStatusWidget::setYellow()
00051 {
00052 ui_->status_widget->setCurrentRole(StatusWidget::Yellow, "");
00053 }
00054
00055 void LabeledStatusWidget::setRed()
00056 {
00057 ui_->status_widget->setCurrentRole(StatusWidget::Red, "");
00058 }
00059
00060 void LabeledStatusWidget::setBlue()
00061 {
00062 ui_->status_widget->setCurrentRole(StatusWidget::Blue, "");
00063 }
00064
00065 void LabeledStatusWidget::setGray()
00066 {
00067 ui_->status_widget->setCurrentRole(StatusWidget::Gray, "");
00068 }
00069
00070 void LabeledStatusWidget::setLabel(const QString& label)
00071 {
00072 ui_->label->setText(label);
00073 }
00074
00075 void LabeledStatusWidget::objectDestroyed()
00076 {
00077 ui_->label->setText("");
00078 ui_->status_widget->setCurrentRole(StatusWidget::None, "");
00079 }
00080 }