Commit 03e0f8a6 authored by pixhawk's avatar pixhawk

Merge branch 'master' of git@pixhawk.ethz.ch:qgroundcontrol

parents 227edfeb 5d47074b
...@@ -162,6 +162,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ...@@ -162,6 +162,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
this->status = (int)state.status; this->status = (int)state.status;
getStatusForCode((int)state.status, uasState, stateDescription); getStatusForCode((int)state.status, uasState, stateDescription);
emit statusChanged(this, uasState, stateDescription); emit statusChanged(this, uasState, stateDescription);
emit statusChanged(this->status);
stateAudio = " changed status to " + uasState; stateAudio = " changed status to " + uasState;
} }
......
...@@ -55,7 +55,8 @@ This file is part of the PIXHAWK project ...@@ -55,7 +55,8 @@ This file is part of the PIXHAWK project
#define CONTROL_MODE_TEST1_INDEX 6 #define CONTROL_MODE_TEST1_INDEX 6
UASControlWidget::UASControlWidget(QWidget *parent) : QWidget(parent), UASControlWidget::UASControlWidget(QWidget *parent) : QWidget(parent),
uas(NULL) uas(NULL),
engineOn(false)
{ {
ui.setupUi(this); ui.setupUi(this);
...@@ -94,6 +95,9 @@ void UASControlWidget::setUAS(UASInterface* uas) ...@@ -94,6 +95,9 @@ void UASControlWidget::setUAS(UASInterface* uas)
ui.controlStatusLabel->setText(tr("Connected to ") + uas->getUASName()); ui.controlStatusLabel->setText(tr("Connected to ") + uas->getUASName());
connect(uas, SIGNAL(modeChanged(int,QString,QString)), this, SLOT(updateMode(int,QString,QString)));
connect(uas, SIGNAL(statusChanged(int)), this, SLOT(updateState(int)));
this->uas = uas; this->uas = uas;
} }
} }
...@@ -102,6 +106,28 @@ UASControlWidget::~UASControlWidget() { ...@@ -102,6 +106,28 @@ UASControlWidget::~UASControlWidget() {
} }
void UASControlWidget::updateMode(int uas,QString mode,QString description)
{
Q_UNUSED(uas);
Q_UNUSED(mode);
Q_UNUSED(description);
}
void UASControlWidget::updateState(int state)
{
switch (state)
{
case (int)MAV_STATE_ACTIVE:
engineOn = true;
ui.controlButton->setText(tr("Stop Engine"));
break;
case (int)MAV_STATE_STANDBY:
engineOn = false;
ui.controlButton->setText(tr("Activate Engine"));
break;
}
}
void UASControlWidget::setMode(int mode) void UASControlWidget::setMode(int mode)
{ {
// Adapt context button mode // Adapt context button mode
...@@ -151,34 +177,26 @@ void UASControlWidget::transmitMode() ...@@ -151,34 +177,26 @@ void UASControlWidget::transmitMode()
void UASControlWidget::cycleContextButton() void UASControlWidget::cycleContextButton()
{ {
//switch(uas->getMode());
static int state = 0;
UAS* mav = dynamic_cast<UAS*>(this->uas); UAS* mav = dynamic_cast<UAS*>(this->uas);
if (mav) if (mav)
{ {
switch (state) if (!engineOn)
{ {
case 0:
ui.controlButton->setText(tr("Stop Engine")); ui.controlButton->setText(tr("Stop Engine"));
mav->setMode(MAV_MODE_MANUAL); mav->setMode(MAV_MODE_MANUAL);
mav->enable_motors(); mav->enable_motors();
ui.lastActionLabel->setText(QString("Enabled motors on %1").arg(uas->getUASName())); ui.lastActionLabel->setText(QString("Enabled motors on %1").arg(uas->getUASName()));
state++; }
break; else
case 1: {
ui.controlButton->setText(tr("Activate Engine")); ui.controlButton->setText(tr("Activate Engine"));
mav->setMode(MAV_MODE_LOCKED); mav->setMode(MAV_MODE_LOCKED);
mav->disable_motors(); mav->disable_motors();
ui.lastActionLabel->setText(QString("Disabled motors on %1").arg(uas->getUASName())); ui.lastActionLabel->setText(QString("Disabled motors on %1").arg(uas->getUASName()));
state = 0;
break;
case 2:
//ui.controlButton->setText(tr("Force Landing"));
ui.controlButton->setText(tr("KILL VEHICLE"));
break;
} }
//ui.controlButton->setText(tr("Force Landing"));
//ui.controlButton->setText(tr("KILL VEHICLE"));
} }
} }
......
...@@ -53,12 +53,17 @@ public slots: ...@@ -53,12 +53,17 @@ public slots:
void cycleContextButton(); void cycleContextButton();
/** @brief Set the operation mode of the MAV */ /** @brief Set the operation mode of the MAV */
void setMode(int mode); void setMode(int mode);
/** @brief Transmit the operation mode **/ /** @brief Transmit the operation mode */
void transmitMode(); void transmitMode();
/** @brief Update the mode */
void updateMode(int uas,QString mode,QString description);
/** @brief Update state */
void updateState(int state);
protected: protected:
UASInterface* uas; UASInterface* uas;
unsigned int uasMode; unsigned int uasMode;
bool engineOn;
private: private:
Ui::uasControl ui; Ui::uasControl ui;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment