diff --git a/src/ui/configuration/AccelCalibrationConfig.cc b/src/ui/configuration/AccelCalibrationConfig.cc index a92702482a8e7b5028c6fe3c30fc288b9633bc5d..f552580d1f9ed9032cc70b9cb3f987ac01d35ca5 100644 --- a/src/ui/configuration/AccelCalibrationConfig.cc +++ b/src/ui/configuration/AccelCalibrationConfig.cc @@ -57,9 +57,29 @@ void AccelCalibrationConfig::calibrateButtonClicked() { m_uas->executeCommandAck(m_accelAckCount++,true); ui.calibrateAccelButton->setText("Calibrate\nAccelerometer"); + if (m_accelAckCount > 8) + { + //We've clicked too many times! Reset. + for (int i=0;i<8;i++) + { + m_uas->executeCommandAck(i,true); + } + m_accelAckCount = 0; + } } } +void AccelCalibrationConfig::hideEvent(QHideEvent *evt) +{ + if (!m_uas || !m_accelAckCount) + { + return; + } + for (int i=m_accelAckCount;i<8;i++) + { + m_uas->executeCommandAck(i,true); //Clear out extra commands. + } +} void AccelCalibrationConfig::uasTextMessageReceived(int uasid, int componentid, int severity, QString text) { //command received: " Severity 1 @@ -70,7 +90,7 @@ void AccelCalibrationConfig::uasTextMessageReceived(int uasid, int componentid, if (m_accelAckCount == 0) { //Calibration Sucessful\r" - ui.calibrateAccelButton->setText("Any\nKey"); + ui.calibrateAccelButton->setText("Continue"); m_accelAckCount++; } if (m_accelAckCount == 7) @@ -86,11 +106,21 @@ void AccelCalibrationConfig::uasTextMessageReceived(int uasid, int componentid, { m_accelAckCount = 0; } + else if (text.contains("Calibration") && text.contains("FAILED")) //Failure + { + m_accelAckCount = 0; + } ui.outputLabel->setText(ui.outputLabel->text() + "\n" + text); } else { - ui.outputLabel->setText(text); + ui.outputLabel->setText(text.replace("press any key","click Continue below")); + if (!this->isVisible()) + { + //Clear out! + m_uas->executeCommandAck(m_accelAckCount++,true); + ui.calibrateAccelButton->setText("Calibrate\nAccelerometer"); + } } } diff --git a/src/ui/configuration/AccelCalibrationConfig.h b/src/ui/configuration/AccelCalibrationConfig.h index ef6f6e1a17a50236368553c62490ca9a98965e92..152656253405c78df81c81b3a68a93f65fa86683 100644 --- a/src/ui/configuration/AccelCalibrationConfig.h +++ b/src/ui/configuration/AccelCalibrationConfig.h @@ -14,6 +14,8 @@ class AccelCalibrationConfig : public AP2ConfigWidget public: explicit AccelCalibrationConfig(QWidget *parent = 0); ~AccelCalibrationConfig(); +protected: + void hideEvent(QHideEvent *evt); private slots: void activeUASSet(UASInterface *uas); void calibrateButtonClicked();