From 60700cab7f7b17b3137b1d7499a99da848d8010b Mon Sep 17 00:00:00 2001 From: Philippe Renon Date: Wed, 28 May 2014 23:07:31 +0200 Subject: [PATCH] OP-1351 improved instructions handling for thermal calibration (removed duplicates, specified instruction types) --- .../thermal/boardsetuptransition.h | 7 ++++- .../compensationcalculationtransition.h | 10 ++++--- .../thermal/dataacquisitiontransition.h | 6 +++- .../thermal/settingshandlingtransitions.h | 13 +++++++-- .../thermal/thermalcalibrationhelper.cpp | 19 ++++++------- .../thermal/thermalcalibrationhelper.h | 22 +++++++++++---- .../thermal/thermalcalibrationmodel.cpp | 28 +++++++++---------- .../thermal/thermalcalibrationmodel.h | 27 ++++++------------ .../plugins/config/calibration/wizardmodel.h | 21 ++++++++------ .../config/calibration/wizardstate.cpp | 7 +---- .../plugins/config/calibration/wizardstate.h | 9 ++++-- .../src/plugins/config/configrevowidget.cpp | 24 ++++++++-------- .../src/plugins/config/configrevowidget.h | 2 +- 13 files changed, 109 insertions(+), 86 deletions(-) diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/boardsetuptransition.h b/ground/openpilotgcs/src/plugins/config/calibration/thermal/boardsetuptransition.h index 4e0e0e4cb..f90b34a0f 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/boardsetuptransition.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/boardsetuptransition.h @@ -29,13 +29,15 @@ #ifndef BOARDSETUPTRANSITION_H #define BOARDSETUPTRANSITION_H +#include "thermalcalibrationhelper.h" + #include #include -#include "thermalcalibrationhelper.h" namespace OpenPilot { class BoardSetupTransition : public QSignalTransition { Q_OBJECT + public: BoardSetupTransition(ThermalCalibrationHelper *helper, QState *currentState, QState *targetState) : QSignalTransition(helper, SIGNAL(setupBoardCompleted(bool))), @@ -66,11 +68,14 @@ public: { Q_UNUSED(e); } + public slots: void enterState() { + m_helper->addInstructions(tr("Configuring board for calibration.")); m_helper->setupBoard(); } + private: ThermalCalibrationHelper *m_helper; }; diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/compensationcalculationtransition.h b/ground/openpilotgcs/src/plugins/config/calibration/thermal/compensationcalculationtransition.h index d08510182..84a00762c 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/compensationcalculationtransition.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/compensationcalculationtransition.h @@ -34,9 +34,11 @@ #include "../wizardstate.h" #include "thermalcalibrationhelper.h" + namespace OpenPilot { class CompensationCalculationTransition : public QSignalTransition { Q_OBJECT + public: CompensationCalculationTransition(ThermalCalibrationHelper *helper, QState *currentState, QState *targetState) : QSignalTransition(helper, SIGNAL(calculationCompleted())), @@ -52,19 +54,19 @@ public: Q_UNUSED(e); QString nextStateName; if (m_helper->calibrationSuccessful()) { - nextStateName = tr("Calibration completed succesfully"); + m_helper->addInstructions(tr("Calibration completed successfully."), WizardModel::Success); } else { - nextStateName = tr("Calibration failed! Please read the instructions and retry"); + m_helper->addInstructions(tr("Calibration failed! Please read the instructions and retry."), WizardModel::Failure); } - static_cast(targetState())->setStepName(nextStateName); } - public slots: void enterState() { + m_helper->addInstructions("Calculating calibration data."); m_helper->calculate(); } + private: ThermalCalibrationHelper *m_helper; }; diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/dataacquisitiontransition.h b/ground/openpilotgcs/src/plugins/config/calibration/thermal/dataacquisitiontransition.h index 35fc44a93..dabca0e96 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/dataacquisitiontransition.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/dataacquisitiontransition.h @@ -29,13 +29,15 @@ #ifndef DATAACQUISITIONTRANSITION_H #define DATAACQUISITIONTRANSITION_H +#include "thermalcalibrationhelper.h" + #include #include -#include "thermalcalibrationhelper.h" namespace OpenPilot { class DataAcquisitionTransition : public QSignalTransition { Q_OBJECT + public: DataAcquisitionTransition(ThermalCalibrationHelper *helper, QState *currentState, QState *targetState) : QSignalTransition(helper, SIGNAL(collectionCompleted())), @@ -55,8 +57,10 @@ public: public slots: void enterState() { + m_helper->addInstructions(tr("Please wait during samples acquisition. This can take several minutes..."), WizardModel::Prompt); m_helper->initAcquisition(); } + private: ThermalCalibrationHelper *m_helper; }; diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/settingshandlingtransitions.h b/ground/openpilotgcs/src/plugins/config/calibration/thermal/settingshandlingtransitions.h index 247c3999e..d7aaf5791 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/settingshandlingtransitions.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/settingshandlingtransitions.h @@ -28,13 +28,16 @@ #ifndef SETTINGSHANDLINGTRANSITIONS_H #define SETTINGSHANDLINGTRANSITIONS_H + +#include "thermalcalibrationhelper.h" + #include #include -#include "thermalcalibrationhelper.h" namespace OpenPilot { class BoardStatusSaveTransition : public QSignalTransition { Q_OBJECT + public: BoardStatusSaveTransition(ThermalCalibrationHelper *helper, QState *currentState, QState *targetState) : QSignalTransition(helper, SIGNAL(statusSaveCompleted(bool))), @@ -65,18 +68,21 @@ public: { Q_UNUSED(e); } + public slots: void enterState() { + m_helper->addInstructions(tr("Saving initial settings.")); m_helper->statusSave(); } + private: ThermalCalibrationHelper *m_helper; }; - class BoardStatusRestoreTransition : public QSignalTransition { Q_OBJECT + public: BoardStatusRestoreTransition(ThermalCalibrationHelper *helper, QState *currentState, QState *targetState) : QSignalTransition(helper, SIGNAL(statusRestoreCompleted(bool))), @@ -102,12 +108,15 @@ public: } return false; } + public slots: void enterState() { + m_helper->addInstructions(tr("Restoring board configuration.")); m_helper->endAcquisition(); m_helper->statusRestore(); } + private: ThermalCalibrationHelper *m_helper; }; diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.cpp b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.cpp index a871cdf01..297903ceb 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.cpp +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.cpp @@ -199,7 +199,7 @@ bool ThermalCalibrationHelper::restoreInitialSettings() void ThermalCalibrationHelper::setupBoard() { - setProcessPercentage(ProcessPercentageSetupBoard); + setProgress(ProcessPercentageSetupBoard); if (setupBoardForCalibration()) { emit setupBoardCompleted(true); } else { @@ -219,7 +219,7 @@ void ThermalCalibrationHelper::statusRestore() void ThermalCalibrationHelper::statusSave() { - setProcessPercentage(ProcessPercentageSaveSettings); + setProgress(ProcessPercentageSaveSettings); // prevent saving multiple times if (!isBoardInitialSettingsSaved() && saveBoardInitialSettings()) { emit statusSaveCompleted(true); @@ -230,7 +230,7 @@ void ThermalCalibrationHelper::statusSave() void ThermalCalibrationHelper::initAcquisition() { - setProcessPercentage(ProcessPercentageBaseAcquisition); + setProgress(ProcessPercentageBaseAcquisition); QMutexLocker lock(&sensorsUpdateLock); m_targetduration = 0; m_gradient = 0.0f; @@ -325,7 +325,7 @@ void ThermalCalibrationHelper::cleanup() void ThermalCalibrationHelper::calculate() { - setProcessPercentage(ProcessPercentageBaseCalculation); + setProgress(ProcessPercentageBaseCalculation); int count = m_baroSamples.count(); Eigen::VectorXf datax(count); Eigen::VectorXf datay(1); @@ -341,7 +341,7 @@ void ThermalCalibrationHelper::calculate() m_results.baroTempMin = datat.array().minCoeff(); m_results.baroTempMax = datat.array().maxCoeff(); - setProcessPercentage(processPercentage() + 2); + setProgress(processPercentage() + 2); count = m_gyroSamples.count(); datax.resize(count); datay.resize(count); @@ -360,7 +360,7 @@ void ThermalCalibrationHelper::calculate() m_results.accelGyroTempMax = datat.array().maxCoeff(); // TODO: sanity checks needs to be enforced before accel calibration can be enabled and usable. /* - setProcessPercentage(processPercentage() + 2); + setProgress(processPercentage() + 2); count = m_accelSamples.count(); datax.resize(count); datay.resize(count); @@ -413,7 +413,7 @@ void ThermalCalibrationHelper::updateTemp(float temp) // gradient is expressed in °C/min float gradient = 60.0 * (m_temperature - m_lastCheckpointTemp) / (float)secondsSinceLastCheck; m_gradient = gradient; - emit gradientChanged(gradient); + emit temperatureGradientChanged(gradient); qDebug() << "Temp Gradient " << gradient << " Elapsed" << elapsed; m_debugStream << "INFO::Trace Temp Gradient " << gradient << " Elapsed" << elapsed << endl; @@ -431,10 +431,9 @@ void ThermalCalibrationHelper::updateTemp(float temp) } if (m_targetduration != 0) { - int tmp = ((ProcessPercentageBaseCalculation - ProcessPercentageBaseAcquisition) - * elapsed) / m_targetduration; + int tmp = ((ProcessPercentageBaseCalculation - ProcessPercentageBaseAcquisition) * elapsed) / m_targetduration; tmp = tmp > ProcessPercentageBaseCalculation - 5 ? ProcessPercentageBaseCalculation - 5 : tmp; - setProcessPercentage(tmp); + setProgress(tmp); } else if (m_gradient > .1 && m_initialGradient / 2.0f > m_gradient) { qDebug() << "M_gradient " << m_gradient << " Elapsed" << elapsed << " m_initialGradient" << m_initialGradient; // make a rough estimation of the time needed diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.h b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.h index 4552b5e41..4bb539b98 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationhelper.h @@ -47,11 +47,13 @@ #include #include "accelgyrosettings.h" - // Calibration data #include #include #include + +#include "../wizardmodel.h" + namespace OpenPilot { typedef struct { // this is not needed for revo, but should for CC/CC3D @@ -85,10 +87,13 @@ typedef struct { float accelGyroTempMin; float accelGyroTempMax; } thermalCalibrationResults; + class ThermalCalibrationHelper : public QObject { Q_OBJECT + public: explicit ThermalCalibrationHelper(QObject *parent = 0); + float temperature() { return m_temperature; @@ -103,6 +108,7 @@ public: { return m_processPercentage; } + void endAcquisition(); bool calibrationSuccessful() @@ -112,12 +118,13 @@ public: } signals: + void instructionsAdded(QString text, WizardModel::MessageType type = WizardModel::Info); void statusRestoreCompleted(bool succesful); void statusSaveCompleted(bool succesful); void setupBoardCompleted(bool succesful); void temperatureChanged(float value); - void gradientChanged(float value); - void processPercentageChanged(int percentage); + void temperatureGradientChanged(float value); + void progressChanged(int value); void collectionCompleted(); void calculationCompleted(); void abort(); @@ -152,14 +159,19 @@ public slots: void calculate(); void collectSample(UAVObject *sample); - void setProcessPercentage(int value) + void setProgress(int value) { if (m_processPercentage != value) { m_processPercentage = value; - emit processPercentageChanged(value); + emit progressChanged(value); } } + void addInstructions(QString text, WizardModel::MessageType type = WizardModel::Info) + { + emit instructionsAdded(text, type); + } + void cleanup(); private: diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.cpp b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.cpp index 2545f96a7..4ad611284 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.cpp +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.cpp @@ -33,7 +33,6 @@ #include "compensationcalculationtransition.h" namespace OpenPilot { - ThermalCalibrationModel::ThermalCalibrationModel(QObject *parent) : WizardModel(parent), m_startEnabled(false), @@ -42,27 +41,29 @@ ThermalCalibrationModel::ThermalCalibrationModel(QObject *parent) : m_initDone(false) { m_helper.reset(new ThermalCalibrationHelper()); - m_readyState = new WizardState("", this), - m_workingState = new WizardState(NULL, this); - m_saveSettingState = new WizardState(tr("Saving initial settings"), m_workingState); + m_readyState = new WizardState("Ready", this), + m_workingState = new WizardState("Working", this); + + m_saveSettingState = new WizardState("Storing Settings", m_workingState); m_workingState->setInitialState(m_saveSettingState); - m_setupState = new WizardState(tr("Setup board for calibration"), m_workingState); + m_setupState = new WizardState("SetupBoard", m_workingState); - m_acquisitionState = new WizardState(tr("*** Please Wait *** Samples acquisition, this can take several minutes"), m_workingState); - m_restoreState = new WizardState(tr("Restore board settings"), m_workingState); - m_calculateState = new WizardState(tr("Calculate calibration data"), m_workingState); + m_acquisitionState = new WizardState("Acquiring", m_workingState); + m_restoreState = new WizardState("Restoring Settings", m_workingState); + m_calculateState = new WizardState("Calculating", m_workingState); - m_abortState = new WizardState(tr("Canceled"), this); + m_abortState = new WizardState("Canceled", this); + + m_completedState = new WizardState("Completed", this); - // note: step name for this state is changed by CompensationCalculationTransition based on result - m_completedState = new WizardState(NULL, this); setTransitions(); - connect(m_helper.data(), SIGNAL(gradientChanged(float)), this, SLOT(setTemperatureGradient(float))); connect(m_helper.data(), SIGNAL(temperatureChanged(float)), this, SLOT(setTemperature(float))); - connect(m_helper.data(), SIGNAL(processPercentageChanged(int)), this, SLOT(setProgress(int))); + connect(m_helper.data(), SIGNAL(temperatureGradientChanged(float)), this, SLOT(setTemperatureGradient(float))); + connect(m_helper.data(), SIGNAL(progressChanged(int)), this, SLOT(setProgress(int))); + connect(m_helper.data(), SIGNAL(instructionsAdded(QString, WizardModel::MessageType)), this, SLOT(addInstructions(QString, WizardModel::MessageType))); connect(m_readyState, SIGNAL(entered()), this, SLOT(wizardReady())); connect(m_readyState, SIGNAL(exited()), this, SLOT(wizardStarted())); connect(m_completedState, SIGNAL(entered()), this, SLOT(wizardReady())); @@ -117,5 +118,4 @@ void ThermalCalibrationModel::setTransitions() m_workingState->addTransition(this, SIGNAL(abort()), m_abortState); // Ready } - } diff --git a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.h b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.h index 9c012ad05..ab5f7af5a 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/thermal/thermalcalibrationmodel.h @@ -30,25 +30,21 @@ #define THERMALCALIBRATIONMODEL_H #include "thermalcalibrationhelper.h" - +#include "../wizardstate.h" +#include "../wizardmodel.h" #include #include #include -#include "../wizardstate.h" -#include "../wizardmodel.h" namespace OpenPilot { - class ThermalCalibrationModel : public WizardModel { - Q_PROPERTY(bool startEnable READ startEnabled NOTIFY startEnabledChanged) + Q_OBJECT Q_PROPERTY(bool startEnable READ startEnabled NOTIFY startEnabledChanged) Q_PROPERTY(bool endEnable READ endEnabled NOTIFY endEnabledChanged) Q_PROPERTY(bool cancelEnable READ cancelEnabled NOTIFY cancelEnabledChanged) - Q_PROPERTY(float temperature READ temperature NOTIFY temperatureChanged) Q_PROPERTY(float temperatureGradient READ temperatureGradient NOTIFY temperatureGradientChanged) Q_PROPERTY(int progress READ progress WRITE setProgress NOTIFY progressChanged) - Q_OBJECT public: explicit ThermalCalibrationModel(QObject *parent = 0); @@ -92,7 +88,6 @@ public: } } - public slots: int progress() { @@ -125,13 +120,10 @@ public slots: } } - void setProgress(int status) + void setProgress(int progress) { - m_progress = status; - emit progressChanged(status); - if (this->currentState()) { - setInstructions(this->currentState()->stepName()); - } + m_progress = progress; + emit progressChanged(progress); } private: @@ -164,7 +156,7 @@ private: WizardState *m_finalizeState; // revert board settings if something goes wrong WizardState *m_abortState; - // just the same as readystate, but it is reached after havign completed the calibration + // just the same as ready state, but it is reached after having completed the calibration WizardState *m_completedState; void setTransitions(); @@ -184,14 +176,13 @@ signals: void previous(); void abort(); - public slots: +public slots: void stepChanged(WizardState *state); void init(); void btnStart() { // HACKS // clear instructions - setInstructions(QString()); emit temperatureGradientChanged(0); // END OF HACKS emit next(); @@ -213,10 +204,10 @@ signals: } void wizardStarted() { + started(); setStartEnabled(false); setEndEnabled(true); setCancelEnabled(true); - started(); } }; } diff --git a/ground/openpilotgcs/src/plugins/config/calibration/wizardmodel.h b/ground/openpilotgcs/src/plugins/config/calibration/wizardmodel.h index 6cc431318..f1cba5a2a 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/wizardmodel.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/wizardmodel.h @@ -28,17 +28,19 @@ #ifndef WIZARDMODEL_H #define WIZARDMODEL_H -#include -#include #include "wizardstate.h" #include +#include +#include + class WizardModel : public QStateMachine { Q_OBJECT Q_PROPERTY(QQmlListProperty steps READ steps CONSTANT) - //Q_PROPERTY(QString instructions READ instructions NOTIFY instructionsChanged) + // Q_PROPERTY(QString instructions READ instructions NOTIFY instructionsChanged) Q_PROPERTY(WizardState * currentState READ currentState NOTIFY currentStateChanged) + public: - enum MessageType { Info, Notice, Warning, Error }; + enum MessageType { Info, Prompt, Warn, Success, Failure }; explicit WizardModel(QObject *parent = 0); @@ -52,12 +54,14 @@ public: return m_instructions; } - void setInstructions(QString text, MessageType type = WizardModel::Info) + WizardState *currentState(); + +public slots: + void addInstructions(QString text, WizardModel::MessageType type = WizardModel::Info) { m_instructions = text; - emit displayInstructions(text, type); + emit instructionsAdded(text, type); } - WizardState *currentState(); protected: QList m_steps; @@ -66,9 +70,8 @@ private: QString m_instructions; signals: - void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info); + void instructionsAdded(QString text, WizardModel::MessageType type = WizardModel::Info); void currentStateChanged(WizardState *status); - }; #endif // WIZARDMODEL_H diff --git a/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.cpp b/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.cpp index c94cdb50d..136a46095 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.cpp +++ b/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.cpp @@ -27,6 +27,7 @@ */ #include "wizardstate.h" #include "QDebug" + WizardState::WizardState(QString name, QState *parent) : QState(parent) { @@ -41,12 +42,6 @@ void WizardState::setCompletion(qint8 completion) emit completionChanged(); } -void WizardState::setStepName(QString name) -{ - m_stepName = name; - emit stepNameChanged(); -} - void WizardState::onEntry(QEvent *event) { Q_UNUSED(event); diff --git a/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.h b/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.h index 55f8f267e..6d4d9352a 100644 --- a/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.h +++ b/ground/openpilotgcs/src/plugins/config/calibration/wizardstate.h @@ -34,9 +34,11 @@ class WizardState : public QState { Q_OBJECT Q_PROPERTY(bool isActive READ isActive NOTIFY isActiveChanged) Q_PROPERTY(bool isDone READ isDone NOTIFY isDoneChanged) Q_PROPERTY(qint8 completion READ completion NOTIFY completionChanged) - Q_PROPERTY(QString stepName READ stepName WRITE setStepName NOTIFY stepNameChanged) + Q_PROPERTY(QString stepName READ stepName) + public: explicit WizardState(QString name, QState *parent = 0); + bool isActive() { return m_active; @@ -57,17 +59,18 @@ public: return m_stepName; } - void setStepName(QString name); void setCompletion(qint8 completion); virtual void onEntry(QEvent *event) Q_DECL_OVERRIDE; virtual void onExit(QEvent *event) Q_DECL_OVERRIDE; + signals: void isActiveChanged(); void isDoneChanged(); - void stepNameChanged(); void completionChanged(); + public slots: void clean(); + private: void setIsDone(bool done); bool m_done; diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp index a2dd64e76..8fb019cd4 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp @@ -109,8 +109,8 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) : connect(m_thermalCalibrationModel, SIGNAL(started()), this, SLOT(disableAllCalibrations())); connect(m_thermalCalibrationModel, SIGNAL(stopped()), this, SLOT(enableAllCalibrations())); - connect(m_thermalCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)), - this, SLOT(displayInstructions(QString, WizardModel::MessageType))); + connect(m_thermalCalibrationModel, SIGNAL(instructionsAdded(QString, WizardModel::MessageType)), + this, SLOT(addInstructions(QString, WizardModel::MessageType))); connect(m_thermalCalibrationModel, SIGNAL(temperatureChanged(float)), this, SLOT(displayTemperature(float))); connect(m_thermalCalibrationModel, SIGNAL(temperatureGradientChanged(float)), this, SLOT(displayTemperatureGradient(float))); connect(m_thermalCalibrationModel, SIGNAL(progressChanged(int)), m_ui->thermalBiasProgress, SLOT(setValue(int))); @@ -127,11 +127,11 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) : connect(m_sixPointCalibrationModel, SIGNAL(storeAndClearBoardRotation()), this, SLOT(storeAndClearBoardRotation())); connect(m_sixPointCalibrationModel, SIGNAL(recallBoardRotation()), this, SLOT(recallBoardRotation())); connect(m_sixPointCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)), - this, SLOT(displayInstructions(QString, WizardModel::MessageType))); + this, SLOT(addInstructions(QString, WizardModel::MessageType))); connect(m_sixPointCalibrationModel, SIGNAL(displayVisualHelp(QString)), this, SLOT(displayVisualHelp(QString))); connect(m_sixPointCalibrationModel, SIGNAL(savePositionEnabledChanged(bool)), this->m_ui->sixPointsSave, SLOT(setEnabled(bool))); - // level calibration + // board level calibration m_levelCalibrationModel = new OpenPilot::LevelCalibrationModel(this); connect(m_ui->boardLevelStart, SIGNAL(clicked()), m_levelCalibrationModel, SLOT(start())); connect(m_ui->boardLevelSavePos, SIGNAL(clicked()), m_levelCalibrationModel, SLOT(savePosition())); @@ -139,7 +139,7 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) : connect(m_levelCalibrationModel, SIGNAL(started()), this, SLOT(disableAllCalibrations())); connect(m_levelCalibrationModel, SIGNAL(stopped()), this, SLOT(enableAllCalibrations())); connect(m_levelCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)), - this, SLOT(displayInstructions(QString, WizardModel::MessageType))); + this, SLOT(addInstructions(QString, WizardModel::MessageType))); connect(m_levelCalibrationModel, SIGNAL(displayVisualHelp(QString)), this, SLOT(displayVisualHelp(QString))); connect(m_levelCalibrationModel, SIGNAL(savePositionEnabledChanged(bool)), this->m_ui->boardLevelSavePos, SLOT(setEnabled(bool))); connect(m_levelCalibrationModel, SIGNAL(progressChanged(int)), this->m_ui->boardLevelProgress, SLOT(setValue(int))); @@ -155,7 +155,7 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) : connect(m_gyroBiasCalibrationModel, SIGNAL(storeAndClearBoardRotation()), this, SLOT(storeAndClearBoardRotation())); connect(m_gyroBiasCalibrationModel, SIGNAL(recallBoardRotation()), this, SLOT(recallBoardRotation())); connect(m_gyroBiasCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)), - this, SLOT(displayInstructions(QString, WizardModel::MessageType))); + this, SLOT(addInstructions(QString, WizardModel::MessageType))); connect(m_gyroBiasCalibrationModel, SIGNAL(displayVisualHelp(QString)), this, SLOT(displayVisualHelp(QString))); connect(m_ui->hlClearButton, SIGNAL(clicked()), this, SLOT(clearHomeLocation())); @@ -248,17 +248,16 @@ void ConfigRevoWidget::clearInstructions() m_ui->calibrationInstructions->clear(); } -void ConfigRevoWidget::displayInstructions(QString text, WizardModel::MessageType type) +void ConfigRevoWidget::addInstructions(QString text, WizardModel::MessageType type) { if (!text.isNull()) { - switch(type) { - case WizardModel::Error: + switch (type) { + case WizardModel::Failure: text = QString("%1").arg(text); break; - case WizardModel::Notice: + case WizardModel::Prompt: text = QString("%1").arg(text); break; - case WizardModel::Info: default: break; } @@ -266,7 +265,8 @@ void ConfigRevoWidget::displayInstructions(QString text, WizardModel::MessageTyp } } -void ConfigRevoWidget::displayTemperature(float temp) { +void ConfigRevoWidget::displayTemperature(float temp) +{ m_ui->temperatureLabel->setText(tr("Temperature %1 °C").arg(temp, 5, 'f', 2)); } diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.h b/ground/openpilotgcs/src/plugins/config/configrevowidget.h index 6d93539d8..f88737f0f 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.h +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.h @@ -69,7 +69,7 @@ private slots: void recallBoardRotation(); void displayVisualHelp(QString elementID); void clearInstructions(); - void displayInstructions(QString instructions, WizardModel::MessageType type = WizardModel::Info); + void addInstructions(QString text, WizardModel::MessageType type = WizardModel::Info); void displayTemperature(float temp); void displayTemperatureGradient(float tempGradient);