From 8211efe8044b05ddcb6c377155842d813ac840e7 Mon Sep 17 00:00:00 2001 From: Laurent Lalanne Date: Fri, 26 Feb 2016 10:12:10 +0100 Subject: [PATCH] LP-240 Add Mag error display in percent - Lower rates for telemetry --- .../gcs/src/plugins/config/configrevowidget.cpp | 16 +++++++++++----- ground/gcs/src/plugins/config/revosensors.ui | 8 ++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ground/gcs/src/plugins/config/configrevowidget.cpp b/ground/gcs/src/plugins/config/configrevowidget.cpp index 281421466..ea0002a88 100644 --- a/ground/gcs/src/plugins/config/configrevowidget.cpp +++ b/ground/gcs/src/plugins/config/configrevowidget.cpp @@ -60,10 +60,10 @@ // #define DEBUG -#define MAG_ALARM_THRESHOLD 20 +#define MAG_ALARM_THRESHOLD 5 // Uncomment this to enable 6 point calibration on the accels -#define NOISE_SAMPLES 50 +#define NOISE_SAMPLES 50 class Thread : public QThread { public: @@ -499,12 +499,12 @@ void ConfigRevoWidget::onBoardAuxMagError() // Apply new rates UAVObject::Metadata mdata = magSensor->getMetadata(); UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_PERIODIC); - mdata.flightTelemetryUpdatePeriod = 100; + mdata.flightTelemetryUpdatePeriod = 300; magSensor->setMetadata(mdata); mdata = auxMagSensor->getMetadata(); UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_PERIODIC); - mdata.flightTelemetryUpdatePeriod = 100; + mdata.flightTelemetryUpdatePeriod = 300; auxMagSensor->setMetadata(mdata); displayMagError = true; @@ -525,7 +525,7 @@ void ConfigRevoWidget::onBoardAuxMagError() float zDiff = 0.0f; // Smooth Mag readings - float alpha = 0.8f; + float alpha = 0.7f; float inv_alpha = (1.0f - alpha); // OnBoard mag onboardMagFiltered[0] = (onboardMagFiltered[0] * alpha) + (onboardMag[0] * inv_alpha); @@ -579,6 +579,7 @@ void ConfigRevoWidget::onBoardAuxMagError() void ConfigRevoWidget::updateMagAlarm(float errorMag, float errorAuxMag) { RevoSettings *revoSettings = RevoSettings::GetInstance(getObjectManager()); + Q_ASSERT(revoSettings); RevoSettings::DataFields revoSettingsData = revoSettings->getData(); @@ -627,11 +628,16 @@ void ConfigRevoWidget::updateMagAlarm(float errorMag, float errorAuxMag) } else { auxMagErrorCount++; } + errorAuxMag = ((errorAuxMag * 100.0f) <= 100.0f) ? errorAuxMag * 100.0f : 100.0f; + m_ui->auxMagStatus->setText("AuxMag\n" + QString::number(errorAuxMag, 'f', 1) + "%"); } else { // Disable aux mag alarm bgColorAuxMag = "grey"; + m_ui->auxMagStatus->setText("AuxMag\nnot found"); } + errorMag = ((errorMag * 100.0f) <= 100.0f) ? errorMag * 100.0f : 100.0f; + m_ui->onBoardMagStatus->setText("OnBoard\n" + QString::number(errorMag, 'f', 1) + "%"); m_ui->onBoardMagStatus->setStyleSheet( "QLabel { background-color: " + bgColorMag + ";" "color: rgb(255, 255, 255); border-radius: 5; margin:1px; font:bold; }"); diff --git a/ground/gcs/src/plugins/config/revosensors.ui b/ground/gcs/src/plugins/config/revosensors.ui index 3ba04e856..ea89c996d 100644 --- a/ground/gcs/src/plugins/config/revosensors.ui +++ b/ground/gcs/src/plugins/config/revosensors.ui @@ -1356,7 +1356,7 @@ font:bold; - 80 + 100 35 @@ -1385,8 +1385,8 @@ font:bold; - 80 - 35 + 100 + 40 @@ -1409,7 +1409,7 @@ font:bold; 110 - 0 + 20