diff --git a/files/images/px4/calibration/3dr_gps/gps_05.png b/files/images/px4/calibration/3dr_gps/gps_05.png deleted file mode 100644 index f4c909906ed59c37f07c1767dc7694f01113dee0..0000000000000000000000000000000000000000 Binary files a/files/images/px4/calibration/3dr_gps/gps_05.png and /dev/null differ diff --git a/files/images/px4/calibration/3dr_gps/gps_06.png b/files/images/px4/calibration/3dr_gps/gps_06.png index 021fcd497b627e85dfe2eef7e1e9a6d7407819e8..f4c909906ed59c37f07c1767dc7694f01113dee0 100644 Binary files a/files/images/px4/calibration/3dr_gps/gps_06.png and b/files/images/px4/calibration/3dr_gps/gps_06.png differ diff --git a/files/images/px4/calibration/3dr_gps/gps_07.png b/files/images/px4/calibration/3dr_gps/gps_07.png new file mode 100644 index 0000000000000000000000000000000000000000..021fcd497b627e85dfe2eef7e1e9a6d7407819e8 Binary files /dev/null and b/files/images/px4/calibration/3dr_gps/gps_07.png differ diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index f6e42aa5e566a89566a9ddbba6a87ec079554dba..4ba6ddc2e5dd410d30082a0b90215f5850d9b9d3 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -190,8 +190,8 @@ files/images/px4/calibration/3dr_gps/gps_18.png files/images/px4/calibration/3dr_gps/gps_17.png files/images/px4/calibration/3dr_gps/gps_16.png + files/images/px4/calibration/3dr_gps/gps_07.png files/images/px4/calibration/3dr_gps/gps_06.png - files/images/px4/calibration/3dr_gps/gps_05.png files/images/px4/calibration/3dr_gps/gps_04.png files/images/px4/calibration/3dr_gps/gps_03.png files/images/px4/calibration/3dr_gps/gps_02.png diff --git a/src/ui/px4_configuration/QGCPX4SensorCalibration.cc b/src/ui/px4_configuration/QGCPX4SensorCalibration.cc index dcb4b12d3ae763af8334517489346025b8ae93e5..5b64bbaa7cb075d482293ec604afd647312c0719 100644 --- a/src/ui/px4_configuration/QGCPX4SensorCalibration.cc +++ b/src/ui/px4_configuration/QGCPX4SensorCalibration.cc @@ -9,19 +9,8 @@ QGCPX4SensorCalibration::QGCPX4SensorCalibration(QWidget *parent) : QWidget(parent), activeUAS(NULL), clearAction(new QAction(tr("Clear Text"), this)), - accelStarted(false), - gyroStarted(false), - magStarted(false), ui(new Ui::QGCPX4SensorCalibration) { - accelAxes << "x+"; - accelAxes << "x-"; - accelAxes << "y+"; - accelAxes << "y-"; - accelAxes << "z+"; - accelAxes << "z-"; - - ui->setupUi(this); connect(clearAction, SIGNAL(triggered()), ui->textView, SLOT(clear())); @@ -333,10 +322,8 @@ void QGCPX4SensorCalibration::handleTextMessage(int uasid, int compId, int sever text.startsWith("[mavlink pm]")) return; - if (text.contains("progress")) { - qDebug() << "PROGRESS:" << text; + if (text.contains("progress <")) { QString percent = text.split("<").last().split(">").first(); - qDebug() << "PERCENT CANDIDATE" << percent; bool ok; int p = percent.toInt(&ok); if (ok) @@ -346,97 +333,64 @@ void QGCPX4SensorCalibration::handleTextMessage(int uasid, int compId, int sever ui->instructionLabel->setText(QString("%1").arg(text)); - - if (text.contains("accel")) { - qDebug() << "ACCEL" << text; - - if (text.startsWith("accel measurement started: ")) { - QString axis = text.split("measurement started: ").last().left(2); - qDebug() << "AXIS" << axis << "STR" << text; - setInstructionImage(QString(":/files/images/px4/calibration/accel_%1.png").arg(axis)); - - } - } - - if (text.startsWith("directions left")) { - for (int i = 0; i < 6; i++) - { - if (!text.contains(accelAxes[i])) { - qDebug() << "FINISHED" << accelAxes[i]; - accelDone[i] = true; - } - } + if (text.startsWith("accel measurement started: ")) { + QString axis = text.split("measurement started: ").last().left(2); + setInstructionImage(QString(":/files/images/px4/calibration/accel_%1.png").arg(axis)); } - if (text.startsWith("result for")) { - - QString axis = text.split("result for ").last().left(2); - - qDebug() << "ACCELDONE AXIS" << axis << "STR" << text; - - for (int i = 0; i < 6; i++) - { - if (axis == accelAxes[i]) - accelDone[i] = true; - - if (!accelDone[i]) { - qDebug() << "NEW AXIS: " << accelAxes[i]; - setInstructionImage(QString(":/files/images/px4/calibration/accel_%1.png").arg(accelAxes[i])); - ui->instructionLabel->setText(tr("Axis %1 completed. Please rotate like shown here.").arg(axis)); - break; - } - } + if (text.startsWith("directions left: ")) { + QString axis = text.split("directions left: ").last().left(2); + setInstructionImage(QString(":/files/images/px4/calibration/accel_%1.png").arg(axis)); } - if (text.contains("please rotate in a figure 8")) { + if (text == "rotate in a figure 8") { setInstructionImage(":/files/images/px4/calibration/mag_calibration_figure8.png"); } - if (text.contains("accel calibration done")) { - accelStarted = false; + if (text.endsWith(" calibration: done") || text.endsWith(" calibration: failed")) { // XXX use a confirmation image or something setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); - if (activeUAS) { - activeUAS->requestParameter(0, "SENS_ACC_XOFF"); - activeUAS->requestParameter(0, "SENS_BOARD_ROT"); + if (text.endsWith(" calibration: done")) { + ui->progressBar->setValue(100); + } else { + ui->progressBar->setValue(0); } - } - - if (text.contains("gyro calibration done")) { - gyroStarted = false; - // XXX use a confirmation image or something - setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); - if (activeUAS) - activeUAS->requestParameter(0, "SENS_GYRO_XOFF"); - } - if (text.contains("mag calibration done") - || text.contains("magnetometer calibration completed")) { - magStarted = false; - // XXX use a confirmation image or something - setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); if (activeUAS) { - activeUAS->requestParameter(0, "SENS_MAG_XOFF"); - activeUAS->requestParameter(0, "SENS_EXT_MAG_ROT"); + if (text.startsWith("accel ")) { + activeUAS->requestParameter(0, "SENS_ACC_XOFF"); + activeUAS->requestParameter(0, "SENS_ACC_YOFF"); + activeUAS->requestParameter(0, "SENS_ACC_ZOFF"); + activeUAS->requestParameter(0, "SENS_ACC_XSCALE"); + activeUAS->requestParameter(0, "SENS_ACC_YSCALE"); + activeUAS->requestParameter(0, "SENS_ACC_ZSCALE"); + activeUAS->requestParameter(0, "SENS_BOARD_ROT"); + } + if (text.startsWith("gyro ")) { + activeUAS->requestParameter(0, "SENS_GYRO_XOFF"); + activeUAS->requestParameter(0, "SENS_GYRO_YOFF"); + activeUAS->requestParameter(0, "SENS_GYRO_ZOFF"); + activeUAS->requestParameter(0, "SENS_GYRO_XSCALE"); + activeUAS->requestParameter(0, "SENS_GYRO_YSCALE"); + activeUAS->requestParameter(0, "SENS_GYRO_ZSCALE"); + activeUAS->requestParameter(0, "SENS_BOARD_ROT"); + } + if (text.startsWith("mag ")) { + activeUAS->requestParameter(0, "SENS_MAG_XOFF"); + activeUAS->requestParameter(0, "SENS_MAG_YOFF"); + activeUAS->requestParameter(0, "SENS_MAG_ZOFF"); + activeUAS->requestParameter(0, "SENS_MAG_XSCALE"); + activeUAS->requestParameter(0, "SENS_MAG_YSCALE"); + activeUAS->requestParameter(0, "SENS_MAG_ZSCALE"); + activeUAS->requestParameter(0, "SENS_EXT_MAG_ROT"); + } } } - if (text.contains("accel calibration started")) { - accelStarted = true; - setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); - } - - if (text.contains("gyro calibration started")) { - gyroStarted = true; + if (text.endsWith(" calibration: started")) { setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); } - if (text.contains("mag calibration started")) { - magStarted = false; - setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); - } - - // XXX color messages according to severity QPlainTextEdit *msgWidget = ui->textView; @@ -457,7 +411,6 @@ void QGCPX4SensorCalibration::gyroButtonClicked() setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); activeUAS->executeCommand(MAV_CMD_PREFLIGHT_CALIBRATION, 1, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0); ui->progressBar->setValue(0); - ui->instructionLabel->setText(tr("Please do not move the system at all.")); } void QGCPX4SensorCalibration::magButtonClicked() @@ -465,7 +418,6 @@ void QGCPX4SensorCalibration::magButtonClicked() setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); activeUAS->executeCommand(MAV_CMD_PREFLIGHT_CALIBRATION, 1, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0); ui->progressBar->setValue(0); - ui->instructionLabel->setText(tr("Please put the system in a rest position.")); } void QGCPX4SensorCalibration::accelButtonClicked() @@ -473,15 +425,6 @@ void QGCPX4SensorCalibration::accelButtonClicked() setInstructionImage(":/files/images/px4/calibration/accel_z-.png"); activeUAS->executeCommand(MAV_CMD_PREFLIGHT_CALIBRATION, 1, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0); ui->progressBar->setValue(0); - accelStarted = true; - accelDone[0] = false; - accelDone[1] = false; - accelDone[2] = false; - accelDone[3] = false; - accelDone[4] = false; - accelDone[5] = false; - - ui->instructionLabel->setText(tr("Please hold the system very still in the shown orientations.")); } void QGCPX4SensorCalibration::contextMenuEvent(QContextMenuEvent* event) diff --git a/src/ui/px4_configuration/QGCPX4SensorCalibration.h b/src/ui/px4_configuration/QGCPX4SensorCalibration.h index 35d0dc2fd873d1c417307e8b8ce36eca8ed1d9f5..fecb8b8b27cc4ab9dbc7f7341debcd80a3ebe527 100644 --- a/src/ui/px4_configuration/QGCPX4SensorCalibration.h +++ b/src/ui/px4_configuration/QGCPX4SensorCalibration.h @@ -64,11 +64,6 @@ protected: QPixmap instructionIcon; QPixmap autopilotIcon; QPixmap gpsIcon; - bool accelStarted; - bool accelDone[6]; - bool gyroStarted; - bool magStarted; - QStringList accelAxes; virtual void resizeEvent(QResizeEvent* event);