mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-30 15:52:12 +01:00
OP-1351 cleaned up instruction handling code (less hacky)
This commit is contained in:
parent
48558f75e6
commit
0f72ca05e9
@ -71,7 +71,7 @@ void GyroBiasCalibrationModel::start()
|
||||
attitudeSettings->updated();
|
||||
|
||||
displayVisualHelp(CALIBRATION_HELPER_PLANE_PREFIX + CALIBRATION_HELPER_IMAGE_NED);
|
||||
displayInstructions(tr("Calibrating the gyroscopes. Keep the copter/plane steady..."), WizardModel::Notice, true);
|
||||
displayInstructions(tr("Calibrating the gyroscopes. Keep the copter/plane steady..."), WizardModel::Notice);
|
||||
|
||||
gyro_accum_x.clear();
|
||||
gyro_accum_y.clear();
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
|
||||
signals:
|
||||
void displayVisualHelp(QString elementID);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info, bool clear = false);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info);
|
||||
void started();
|
||||
void stopped();
|
||||
void storeAndClearBoardRotation();
|
||||
|
@ -40,7 +40,6 @@ LevelCalibrationModel::LevelCalibrationModel(QObject *parent) :
|
||||
{}
|
||||
|
||||
|
||||
/******* Level calibration *******/
|
||||
/**
|
||||
* Starts an accelerometer bias calibration.
|
||||
*/
|
||||
@ -64,7 +63,7 @@ void LevelCalibrationModel::start()
|
||||
attitudeState->setMetadata(mdata);
|
||||
|
||||
/* Show instructions and enable controls */
|
||||
displayInstructions(tr("Place horizontally and click Save Position button..."), WizardModel::Info, true);
|
||||
displayInstructions(tr("Place horizontally and click Save Position button..."), WizardModel::Info);
|
||||
displayVisualHelp(CALIBRATION_HELPER_PLANE_PREFIX + CALIBRATION_HELPER_IMAGE_NED);
|
||||
savePositionEnabledChanged(true);
|
||||
position = 0;
|
||||
@ -134,8 +133,6 @@ void LevelCalibrationModel::getSample(UAVObject *obj)
|
||||
displayInstructions(tr("Leave horizontally, rotate 180° along yaw axis and click Save Position button..."));
|
||||
displayVisualHelp(CALIBRATION_HELPER_PLANE_PREFIX + CALIBRATION_HELPER_IMAGE_SWD);
|
||||
|
||||
started();
|
||||
|
||||
savePositionEnabledChanged(true);
|
||||
break;
|
||||
case 2:
|
||||
@ -145,13 +142,13 @@ void LevelCalibrationModel::getSample(UAVObject *obj)
|
||||
rot_data_roll /= 2;
|
||||
attitudeState->setMetadata(initialAttitudeStateMdata);
|
||||
compute();
|
||||
stopped();
|
||||
displayVisualHelp(CALIBRATION_HELPER_IMAGE_EMPTY);
|
||||
displayInstructions(tr("Board leveling completed successfully."));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LevelCalibrationModel::compute()
|
||||
{
|
||||
stopped();
|
||||
@ -168,6 +165,7 @@ void LevelCalibrationModel::compute()
|
||||
attitudeSettings->setData(attitudeSettingsData);
|
||||
attitudeSettings->updated();
|
||||
}
|
||||
|
||||
UAVObjectManager *LevelCalibrationModel::getObjectManager()
|
||||
{
|
||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||
@ -176,4 +174,5 @@ UAVObjectManager *LevelCalibrationModel::getObjectManager()
|
||||
Q_ASSERT(objMngr);
|
||||
return objMngr;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
|
||||
signals:
|
||||
void displayVisualHelp(QString elementID);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info, bool clear = false);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info);
|
||||
void started();
|
||||
void stopped();
|
||||
void savePositionEnabledChanged(bool state);
|
||||
|
@ -198,11 +198,11 @@ void SixPointCalibrationModel::start(bool calibrateAccel, bool calibrateMag)
|
||||
mag->setMetadata(mdata);
|
||||
}
|
||||
|
||||
/* Show instructions and enable controls */
|
||||
displayInstructions((*currentSteps)[0].instructions, WizardModel::Info, true);
|
||||
showHelp((*currentSteps)[0].visualHelp);
|
||||
|
||||
started();
|
||||
|
||||
// Show instructions and enable controls
|
||||
displayInstructions((*currentSteps)[0].instructions, WizardModel::Info);
|
||||
showHelp((*currentSteps)[0].visualHelp);
|
||||
savePositionEnabledChanged(true);
|
||||
position = 0;
|
||||
mag_fit_x.clear();
|
||||
@ -492,7 +492,8 @@ void SixPointCalibrationModel::compute(bool mag, bool accel)
|
||||
} else {
|
||||
displayInstructions(tr("Bad calibration. Please review the instructions and repeat."), WizardModel::Error);
|
||||
}
|
||||
position = -1; // set to run again
|
||||
// set to run again
|
||||
position = -1;
|
||||
}
|
||||
UAVObjectManager *SixPointCalibrationModel::getObjectManager()
|
||||
{
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
|
||||
signals:
|
||||
void displayVisualHelp(QString elementID);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info, bool clear = false);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info);
|
||||
void started();
|
||||
void stopped();
|
||||
void storeAndClearBoardRotation();
|
||||
|
@ -66,7 +66,7 @@ private:
|
||||
QString m_instructions;
|
||||
|
||||
signals:
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info, bool clear = false);
|
||||
void displayInstructions(QString text, WizardModel::MessageType type = WizardModel::Info);
|
||||
void currentStateChanged(WizardState *status);
|
||||
|
||||
};
|
||||
|
@ -125,8 +125,8 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) :
|
||||
connect(m_sixPointCalibrationModel, SIGNAL(stopped()), this, SLOT(enableAllCalibrations()));
|
||||
connect(m_sixPointCalibrationModel, SIGNAL(storeAndClearBoardRotation()), this, SLOT(storeAndClearBoardRotation()));
|
||||
connect(m_sixPointCalibrationModel, SIGNAL(recallBoardRotation()), this, SLOT(recallBoardRotation()));
|
||||
connect(m_sixPointCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType, bool)),
|
||||
this, SLOT(displayInstructions(QString, WizardModel::MessageType, bool)));
|
||||
connect(m_sixPointCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)),
|
||||
this, SLOT(displayInstructions(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)));
|
||||
|
||||
@ -137,8 +137,8 @@ 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, bool)),
|
||||
this, SLOT(displayInstructions(QString, WizardModel::MessageType, bool)));
|
||||
connect(m_levelCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)),
|
||||
this, SLOT(displayInstructions(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)));
|
||||
@ -153,8 +153,8 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) :
|
||||
connect(m_gyroBiasCalibrationModel, SIGNAL(stopped()), this, SLOT(enableAllCalibrations()));
|
||||
connect(m_gyroBiasCalibrationModel, SIGNAL(storeAndClearBoardRotation()), this, SLOT(storeAndClearBoardRotation()));
|
||||
connect(m_gyroBiasCalibrationModel, SIGNAL(recallBoardRotation()), this, SLOT(recallBoardRotation()));
|
||||
connect(m_gyroBiasCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType, bool)),
|
||||
this, SLOT(displayInstructions(QString, WizardModel::MessageType, bool)));
|
||||
connect(m_gyroBiasCalibrationModel, SIGNAL(displayInstructions(QString, WizardModel::MessageType)),
|
||||
this, SLOT(displayInstructions(QString, WizardModel::MessageType)));
|
||||
connect(m_gyroBiasCalibrationModel, SIGNAL(displayVisualHelp(QString)), this, SLOT(displayVisualHelp(QString)));
|
||||
|
||||
connect(m_ui->hlClearButton, SIGNAL(clicked()), this, SLOT(clearHomeLocation()));
|
||||
@ -242,11 +242,13 @@ void ConfigRevoWidget::displayVisualHelp(QString elementID)
|
||||
updateVisualHelp();
|
||||
}
|
||||
|
||||
void ConfigRevoWidget::displayInstructions(QString text, WizardModel::MessageType type, bool clear)
|
||||
void ConfigRevoWidget::clearInstructions()
|
||||
{
|
||||
m_ui->calibrationInstructions->clear();
|
||||
}
|
||||
|
||||
void ConfigRevoWidget::displayInstructions(QString text, WizardModel::MessageType type)
|
||||
{
|
||||
if (clear || text.isNull()) {
|
||||
m_ui->calibrationInstructions->clear();
|
||||
}
|
||||
if (!text.isNull()) {
|
||||
switch(type) {
|
||||
case WizardModel::Error:
|
||||
@ -314,6 +316,7 @@ void ConfigRevoWidget::clearHomeLocation()
|
||||
|
||||
void ConfigRevoWidget::disableAllCalibrations()
|
||||
{
|
||||
clearInstructions();
|
||||
m_ui->sixPointsStartAccel->setEnabled(false);
|
||||
m_ui->sixPointsStartMag->setEnabled(false);
|
||||
m_ui->boardLevelStart->setEnabled(false);
|
||||
|
@ -68,7 +68,8 @@ private slots:
|
||||
void storeAndClearBoardRotation();
|
||||
void recallBoardRotation();
|
||||
void displayVisualHelp(QString elementID);
|
||||
void displayInstructions(QString instructions, WizardModel::MessageType type = WizardModel::Info, bool clear = false);
|
||||
void clearInstructions();
|
||||
void displayInstructions(QString instructions, WizardModel::MessageType type = WizardModel::Info);
|
||||
void displayTemperature(float temp);
|
||||
void displayTemperatureGradient(float tempGradient);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user