From f31c086b0fbdd223b0d7c9c65cdcb71cd58f88d6 Mon Sep 17 00:00:00 2001 From: Bryan Godbolt Date: Thu, 14 Jul 2011 15:53:55 -0600 Subject: [PATCH 1/4] converting pulse widths to uint16_t from float --- src/ui/RadioCalibration/AbstractCalibrator.cc | 14 +++++++------- src/ui/RadioCalibration/AbstractCalibrator.h | 12 ++++++------ src/ui/RadioCalibration/AirfoilServoCalibrator.cc | 2 +- src/ui/RadioCalibration/AirfoilServoCalibrator.h | 2 +- src/ui/RadioCalibration/CurveCalibrator.cc | 6 +++--- src/ui/RadioCalibration/CurveCalibrator.h | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/ui/RadioCalibration/AbstractCalibrator.cc b/src/ui/RadioCalibration/AbstractCalibrator.cc index d98b147..8db0629 100644 --- a/src/ui/RadioCalibration/AbstractCalibrator.cc +++ b/src/ui/RadioCalibration/AbstractCalibrator.cc @@ -12,17 +12,17 @@ AbstractCalibrator::~AbstractCalibrator() delete log; } -float AbstractCalibrator::logAverage() +uint16_t AbstractCalibrator::logAverage() { - float total = 0; + uint16_t total = 0; for (int i=0; isize(); ++i) total += log->value(i); - return floor(total/log->size()); + return total/log->size(); } -float AbstractCalibrator::logExtrema() +uint16_t AbstractCalibrator::logExtrema() { - float extrema = logAverage(); + uint16_t extrema = logAverage(); if (logAverage() < 1500) { for (int i=0; isize(); ++i) { if (log->value(i) < extrema) @@ -40,9 +40,9 @@ float AbstractCalibrator::logExtrema() return extrema; } -void AbstractCalibrator::channelChanged(float raw) +void AbstractCalibrator::channelChanged(uint16_t raw) { - pulseWidth->setText(QString::number(static_cast(raw))); + pulseWidth->setText(QString::number(raw)); if (log->size() == 5) log->pop_front(); log->push_back(raw); diff --git a/src/ui/RadioCalibration/AbstractCalibrator.h b/src/ui/RadioCalibration/AbstractCalibrator.h index 940be64..e4db868 100644 --- a/src/ui/RadioCalibration/AbstractCalibrator.h +++ b/src/ui/RadioCalibration/AbstractCalibrator.h @@ -53,30 +53,30 @@ public: changing the display from an external source (file/uav). @param data QVector of setpoints */ - virtual void set(const QVector& data)=0; + virtual void set(const QVector& data)=0; signals: /** Announce a setpoint change. @param index setpoint number - 0 based in the current implementation @param value new value */ - void setpointChanged(int index, float value); + void setpointChanged(int index, uint16_t value); public slots: /** Slot to call when the relevant channel is updated @param raw current channel value */ - void channelChanged(float raw); + void channelChanged(uint16_t raw); protected: /** Display the current pulse width */ QLabel *pulseWidth; /** Log of the past few samples for use in averaging and finding extrema */ - QVector *log; + QVector *log; /** Find the maximum or minimum of the data log */ - float logExtrema(); + uint16_t logExtrema(); /** Find the average of the log */ - float logAverage(); + uint16_t logAverage(); }; #endif // ABSTRACTCALIBRATOR_H diff --git a/src/ui/RadioCalibration/AirfoilServoCalibrator.cc b/src/ui/RadioCalibration/AirfoilServoCalibrator.cc index 11d66e6..ddb4a2a 100644 --- a/src/ui/RadioCalibration/AirfoilServoCalibrator.cc +++ b/src/ui/RadioCalibration/AirfoilServoCalibrator.cc @@ -94,7 +94,7 @@ void AirfoilServoCalibrator::setLow() emit setpointChanged(0, logExtrema()); } -void AirfoilServoCalibrator::set(const QVector &data) +void AirfoilServoCalibrator::set(const QVector &data) { if (data.size() == 3) { lowPulseWidth->setText(QString::number(data[0])); diff --git a/src/ui/RadioCalibration/AirfoilServoCalibrator.h b/src/ui/RadioCalibration/AirfoilServoCalibrator.h index 4a9054a..4775c93 100644 --- a/src/ui/RadioCalibration/AirfoilServoCalibrator.h +++ b/src/ui/RadioCalibration/AirfoilServoCalibrator.h @@ -58,7 +58,7 @@ public: explicit AirfoilServoCalibrator(AirfoilType type = AILERON, QWidget *parent = 0); /** @param data must have exaclty 3 elemets. they are assumed to be low center high */ - void set(const QVector& data); + void set(const QVector& data); protected slots: void setHigh(); diff --git a/src/ui/RadioCalibration/CurveCalibrator.cc b/src/ui/RadioCalibration/CurveCalibrator.cc index bc85276..235c2e4 100644 --- a/src/ui/RadioCalibration/CurveCalibrator.cc +++ b/src/ui/RadioCalibration/CurveCalibrator.cc @@ -75,9 +75,9 @@ CurveCalibrator::~CurveCalibrator() void CurveCalibrator::setSetpoint(int setpoint) { if (setpoint == 0 || setpoint == 4) { - setpoints->replace(setpoint, static_cast(logExtrema())); + setpoints->replace(setpoint,logExtrema()); } else { - setpoints->replace(setpoint, static_cast(logAverage())); + setpoints->replace(setpoint, logAverage()); } curve->setData(*positions, *setpoints); plot->replot(); @@ -85,7 +85,7 @@ void CurveCalibrator::setSetpoint(int setpoint) emit setpointChanged(setpoint, static_cast(setpoints->value(setpoint))); } -void CurveCalibrator::set(const QVector &data) +void CurveCalibrator::set(const QVector &data) { if (data.size() == 5) { for (int i=0; i &data); + void set(const QVector &data); protected slots: void setSetpoint(int setpoint); protected: - QVector *setpoints; - QVector *positions; + QVector *setpoints; + QVector *positions; /** Plot to display calibration curve */ QwtPlot *plot; /** Curve object of calibration curve */ From 9481145aca501907b2ced6b55efca0301f1f79fe Mon Sep 17 00:00:00 2001 From: Bryan Godbolt Date: Fri, 15 Jul 2011 13:54:14 -0600 Subject: [PATCH 2/4] working on radio calibration window --- src/uas/UAS.cc | 12 +++---- src/ui/RadioCalibration/AbstractCalibrator.cc | 2 +- src/ui/RadioCalibration/AbstractCalibrator.h | 1 + src/ui/RadioCalibration/AirfoilServoCalibrator.cc | 6 ++-- src/ui/RadioCalibration/CurveCalibrator.cc | 42 +++++++++++++++++++---- src/ui/RadioCalibration/RadioCalibrationData.cc | 34 +++++++++--------- src/ui/RadioCalibration/RadioCalibrationData.h | 34 +++++++++--------- src/ui/RadioCalibration/RadioCalibrationWindow.h | 2 ++ src/ui/RadioCalibration/SwitchCalibrator.cc | 6 ++-- src/ui/RadioCalibration/SwitchCalibrator.h | 2 +- 10 files changed, 87 insertions(+), 54 deletions(-) diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index f989e70..c6d4f82 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -958,12 +958,12 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) case MAVLINK_MSG_ID_RADIO_CALIBRATION: { mavlink_radio_calibration_t radioMsg; mavlink_msg_radio_calibration_decode(&message, &radioMsg); - QVector aileron; - QVector elevator; - QVector rudder; - QVector gyro; - QVector pitch; - QVector throttle; + QVector aileron; + QVector elevator; + QVector rudder; + QVector gyro; + QVector pitch; + QVector throttle; for (int i=0; i()) + log(new QVector()) { } diff --git a/src/ui/RadioCalibration/AbstractCalibrator.h b/src/ui/RadioCalibration/AbstractCalibrator.h index e4db868..70ff632 100644 --- a/src/ui/RadioCalibration/AbstractCalibrator.h +++ b/src/ui/RadioCalibration/AbstractCalibrator.h @@ -36,6 +36,7 @@ This file is part of the QGROUNDCONTROL project #include #include +#include /** @brief Holds the code which is common to all the radio calibration widgets. diff --git a/src/ui/RadioCalibration/AirfoilServoCalibrator.cc b/src/ui/RadioCalibration/AirfoilServoCalibrator.cc index ddb4a2a..dc7faf2 100644 --- a/src/ui/RadioCalibration/AirfoilServoCalibrator.cc +++ b/src/ui/RadioCalibration/AirfoilServoCalibrator.cc @@ -78,19 +78,19 @@ AirfoilServoCalibrator::AirfoilServoCalibrator(AirfoilType type, QWidget *parent void AirfoilServoCalibrator::setHigh() { - highPulseWidth->setText(QString::number(static_cast(logExtrema()))); + highPulseWidth->setText(QString::number(logExtrema())); emit setpointChanged(2, logExtrema()); } void AirfoilServoCalibrator::setCenter() { - centerPulseWidth->setText(QString::number(static_cast(logAverage()))); + centerPulseWidth->setText(QString::number(logAverage())); emit setpointChanged(1, logAverage()); } void AirfoilServoCalibrator::setLow() { - lowPulseWidth->setText(QString::number(static_cast(logExtrema()))); + lowPulseWidth->setText(QString::number(logExtrema())); emit setpointChanged(0, logExtrema()); } diff --git a/src/ui/RadioCalibration/CurveCalibrator.cc b/src/ui/RadioCalibration/CurveCalibrator.cc index 235c2e4..9ef8ec5 100644 --- a/src/ui/RadioCalibration/CurveCalibrator.cc +++ b/src/ui/RadioCalibration/CurveCalibrator.cc @@ -2,8 +2,8 @@ CurveCalibrator::CurveCalibrator(QString titleString, QWidget *parent) : AbstractCalibrator(parent), - setpoints(new QVector(5)), - positions(new QVector()) + setpoints(new QVector(5)), + positions(new QVector()) { QGridLayout *grid = new QGridLayout(this); QLabel *title = new QLabel(titleString); @@ -32,7 +32,17 @@ CurveCalibrator::CurveCalibrator(QString titleString, QWidget *parent) : curve = new QwtPlotCurve(); curve->setPen(QPen(QColor(QString("lime")))); - curve->setData(*positions, *setpoints); + + QVector pos(positions->size()); + QVector set(setpoints->size()); + + for (int i=0; isize()&&isize(); i++) + { + pos[i] = static_cast((*positions)[i]); + set[i] = static_cast((*setpoints)[i]); + } + + curve->setData(pos, set); curve->attach(plot); plot->replot(); @@ -79,18 +89,36 @@ void CurveCalibrator::setSetpoint(int setpoint) } else { setpoints->replace(setpoint, logAverage()); } - curve->setData(*positions, *setpoints); + + QVector pos(positions->size()); + QVector set(setpoints->size()); + + for (int i=0; isize()&&isize(); i++) + { + pos[i] = static_cast((*positions)[i]); + set[i] = static_cast((*setpoints)[i]); + } + + curve->setData(pos, set); plot->replot(); - emit setpointChanged(setpoint, static_cast(setpoints->value(setpoint))); + emit setpointChanged(setpoint, setpoints->value(setpoint)); } void CurveCalibrator::set(const QVector &data) { if (data.size() == 5) { for (int i=0; ireplace(i, static_cast(data[i])); - curve->setData(*positions, *setpoints); + setpoints->replace(i, data[i]); + QVector pos(positions->size()); + QVector set(setpoints->size()); + + for (int i=0; isize()&&isize(); i++) + { + pos[i] = static_cast((*positions)[i]); + set[i] = static_cast((*setpoints)[i]); + } + curve->setData(pos, set); plot->replot(); } else { qDebug() << __FILE__ << __LINE__ << ": wrong data vector size"; diff --git a/src/ui/RadioCalibration/RadioCalibrationData.cc b/src/ui/RadioCalibration/RadioCalibrationData.cc index 8582840..3093315 100644 --- a/src/ui/RadioCalibration/RadioCalibrationData.cc +++ b/src/ui/RadioCalibration/RadioCalibrationData.cc @@ -2,23 +2,23 @@ RadioCalibrationData::RadioCalibrationData() { - data = new QVector >(6); - (*data).insert(AILERON, QVector(3)); - (*data).insert(ELEVATOR, QVector(3)); - (*data).insert(RUDDER, QVector(3)); - (*data).insert(GYRO, QVector(2)); - (*data).insert(PITCH, QVector(5)); - (*data).insert(THROTTLE, QVector(5)); + data = new QVector >(6); + (*data).insert(AILERON, QVector(3)); + (*data).insert(ELEVATOR, QVector(3)); + (*data).insert(RUDDER, QVector(3)); + (*data).insert(GYRO, QVector(2)); + (*data).insert(PITCH, QVector(5)); + (*data).insert(THROTTLE, QVector(5)); } -RadioCalibrationData::RadioCalibrationData(const QVector &aileron, - const QVector &elevator, - const QVector &rudder, - const QVector &gyro, - const QVector &pitch, - const QVector &throttle) +RadioCalibrationData::RadioCalibrationData(const QVector &aileron, + const QVector &elevator, + const QVector &rudder, + const QVector &gyro, + const QVector &pitch, + const QVector &throttle) { - data = new QVector >(); + data = new QVector >(); (*data) << aileron << elevator << rudder @@ -30,7 +30,7 @@ RadioCalibrationData::RadioCalibrationData(const QVector &aileron, RadioCalibrationData::RadioCalibrationData(const RadioCalibrationData &other) :QObject() { - data = new QVector >(*other.data); + data = new QVector >(*other.data); } RadioCalibrationData::~RadioCalibrationData() @@ -38,7 +38,7 @@ RadioCalibrationData::~RadioCalibrationData() delete data; } -const float* RadioCalibrationData::operator [](int i) const +const uint16_t* RadioCalibrationData::operator [](int i) const { if (i < data->size()) { return (*data)[i].constData(); @@ -47,7 +47,7 @@ const float* RadioCalibrationData::operator [](int i) const return NULL; } -const QVector& RadioCalibrationData::operator ()(const int i) const throw(std::out_of_range) +const QVector& RadioCalibrationData::operator ()(const int i) const throw(std::out_of_range) { if ((i < data->size()) && (i >=0)) { return (*data)[i]; diff --git a/src/ui/RadioCalibration/RadioCalibrationData.h b/src/ui/RadioCalibration/RadioCalibrationData.h index 574df30..89e1f3b 100644 --- a/src/ui/RadioCalibration/RadioCalibrationData.h +++ b/src/ui/RadioCalibration/RadioCalibrationData.h @@ -36,6 +36,8 @@ This file is part of the QGROUNDCONTROL project #include #include +#include + /** @brief Class to hold the calibration data. @@ -48,12 +50,12 @@ class RadioCalibrationData : public QObject public: explicit RadioCalibrationData(); RadioCalibrationData(const RadioCalibrationData&); - RadioCalibrationData(const QVector& aileron, - const QVector& elevator, - const QVector& rudder, - const QVector& gyro, - const QVector& pitch, - const QVector& throttle); + RadioCalibrationData(const QVector& aileron, + const QVector& elevator, + const QVector& rudder, + const QVector& gyro, + const QVector& pitch, + const QVector& throttle); ~RadioCalibrationData(); enum RadioElement { @@ -65,33 +67,33 @@ public: THROTTLE }; - const float* operator[](int i) const; + const uint16_t* operator[](int i) const; #ifdef _MSC_VER - const QVector& operator()(int i) const; + const QVector& operator()(int i) const; #else - const QVector& operator()(int i) const throw(std::out_of_range); + const QVector& operator()(int i) const throw(std::out_of_range); #endif void set(int element, int index, float value) { (*data)[element][index] = value; } public slots: - void setAileron(int index, float value) { + void setAileron(int index, uint16_t value) { set(AILERON, index, value); } - void setElevator(int index, float value) { + void setElevator(int index, uint16_t value) { set(ELEVATOR, index, value); } - void setRudder(int index, float value) { + void setRudder(int index, uint16_t value) { set(RUDDER, index, value); } - void setGyro(int index, float value) { + void setGyro(int index, uint16_t value) { set(GYRO, index, value); } - void setPitch(int index, float value) { + void setPitch(int index, uint16_t value) { set(PITCH, index, value); } - void setThrottle(int index, float value) { + void setThrottle(int index, uint16_t value) { set(THROTTLE, index, value); } @@ -100,7 +102,7 @@ public: QString toString(const RadioElement element) const; protected: - QVector > *data; + QVector > *data; void init(const QVector& aileron, const QVector& elevator, diff --git a/src/ui/RadioCalibration/RadioCalibrationWindow.h b/src/ui/RadioCalibration/RadioCalibrationWindow.h index 40e97e4..ebd6a94 100644 --- a/src/ui/RadioCalibration/RadioCalibrationWindow.h +++ b/src/ui/RadioCalibration/RadioCalibrationWindow.h @@ -44,6 +44,8 @@ This file is part of the QGROUNDCONTROL project #include #include +#include + #include "AirfoilServoCalibrator.h" #include "SwitchCalibrator.h" #include "CurveCalibrator.h" diff --git a/src/ui/RadioCalibration/SwitchCalibrator.cc b/src/ui/RadioCalibration/SwitchCalibrator.cc index 5a9b9a7..695dddf 100644 --- a/src/ui/RadioCalibration/SwitchCalibrator.cc +++ b/src/ui/RadioCalibration/SwitchCalibrator.cc @@ -38,17 +38,17 @@ SwitchCalibrator::SwitchCalibrator(QString titleString, QWidget *parent) : void SwitchCalibrator::setDefault() { - defaultPulseWidth->setText(QString::number(static_cast(logExtrema()))); + defaultPulseWidth->setText(QString::number(logExtrema())); emit setpointChanged(0, logExtrema()); } void SwitchCalibrator::setToggled() { - toggledPulseWidth->setText(QString::number(static_cast(logExtrema()))); + toggledPulseWidth->setText(QString::number(logExtrema())); emit setpointChanged(1, logExtrema()); } -void SwitchCalibrator::set(const QVector &data) +void SwitchCalibrator::set(const QVector &data) { if (data.size() == 2) { defaultPulseWidth->setText(QString::number(data[0])); diff --git a/src/ui/RadioCalibration/SwitchCalibrator.h b/src/ui/RadioCalibration/SwitchCalibrator.h index c62623b..c89978b 100644 --- a/src/ui/RadioCalibration/SwitchCalibrator.h +++ b/src/ui/RadioCalibration/SwitchCalibrator.h @@ -49,7 +49,7 @@ class SwitchCalibrator : public AbstractCalibrator public: explicit SwitchCalibrator(QString title=QString(), QWidget *parent = 0); - void set(const QVector &data); + void set(const QVector &data); protected slots: void setDefault(); From 614151ce3c8e9f2656d081858241f6965c9dcaf7 Mon Sep 17 00:00:00 2001 From: Bryan Godbolt Date: Fri, 15 Jul 2011 16:14:04 -0600 Subject: [PATCH 3/4] radio calibraion working --- src/ui/QGCRemoteControlView.cc | 40 +++++++++++------------ src/ui/QGCRemoteControlView.h | 2 +- src/ui/RadioCalibration/RadioCalibrationWindow.cc | 12 +++---- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/ui/QGCRemoteControlView.cc b/src/ui/QGCRemoteControlView.cc index 6f3c4c6..26616b3 100644 --- a/src/ui/QGCRemoteControlView.cc +++ b/src/ui/QGCRemoteControlView.cc @@ -120,25 +120,25 @@ void QGCRemoteControlView::setChannelRaw(int channelId, float raw) redraw(); } -//void QGCRemoteControlView::setChannelScaled(int channelId, float normalized) -//{ -// if (this->raw.size() <= channelId) // using raw vector as size indicator -// { -// // This is a new channel, append it -// this->normalized.append(normalized); -// this->raw.append(0); -// appendChannelWidget(channelId); -// } -// else -// { -// // This is an existing channel, update it -// this->normalized[channelId] = normalized; -// } -// updated = true; +void QGCRemoteControlView::setChannelScaled(int channelId, float normalized) +{ + if (this->raw.size() <= channelId) // using raw vector as size indicator + { + // This is a new channel, append it + this->normalized.append(normalized); + this->raw.append(0); + appendChannelWidget(channelId); + } + else + { + // This is an existing channel, update it + this->normalized[channelId] = normalized; + } + updated = true; -// // FIXME Will be timer based in the future -// redraw(); -//} + // FIXME Will be timer based in the future + redraw(); +} void QGCRemoteControlView::setRemoteRSSI(float rssiNormalized) { @@ -179,9 +179,9 @@ void QGCRemoteControlView::redraw() // Update percent bars for(int i = 0; i < progressBars.count(); i++) { rawLabels.at(i)->setText(QString("%1 us").arg(raw.at(i), 4, 10, QChar('0'))); - //int vv = normalized.at(i)*100.0f; + int vv = normalized.at(i)*100.0f; //progressBars.at(i)->setValue(vv); - int vv = raw.at(i)*1.0f; +// int vv = raw.at(i)*1.0f; progressBars.at(i)->setValue(vv); } // Update RSSI diff --git a/src/ui/QGCRemoteControlView.h b/src/ui/QGCRemoteControlView.h index 5cae359..63c964f 100644 --- a/src/ui/QGCRemoteControlView.h +++ b/src/ui/QGCRemoteControlView.h @@ -55,7 +55,7 @@ public: public slots: void setUASId(int id); void setChannelRaw(int channelId, float raw); - //void setChannelScaled(int channelId, float normalized); + void setChannelScaled(int channelId, float normalized); void setRemoteRSSI(float rssiNormalized); void redraw(); diff --git a/src/ui/RadioCalibration/RadioCalibrationWindow.cc b/src/ui/RadioCalibration/RadioCalibrationWindow.cc index a78894a..21ae680 100644 --- a/src/ui/RadioCalibration/RadioCalibrationWindow.cc +++ b/src/ui/RadioCalibration/RadioCalibrationWindow.cc @@ -43,12 +43,12 @@ RadioCalibrationWindow::RadioCalibrationWindow(QWidget *parent) : connect(transmit, SIGNAL(clicked()), this, SLOT(send())); connect(get, SIGNAL(clicked()), this, SLOT(request())); - connect(aileron, SIGNAL(setpointChanged(int,float)), radio, SLOT(setAileron(int,float))); - connect(elevator, SIGNAL(setpointChanged(int,float)), radio, SLOT(setElevator(int,float))); - connect(rudder, SIGNAL(setpointChanged(int,float)), radio, SLOT(setRudder(int,float))); - connect(gyro, SIGNAL(setpointChanged(int,float)), radio, SLOT(setGyro(int,float))); - connect(pitch, SIGNAL(setpointChanged(int,float)), radio, SLOT(setPitch(int,float))); - connect(throttle, SIGNAL(setpointChanged(int,float)), radio, SLOT(setThrottle(int,float))); + connect(aileron, SIGNAL(setpointChanged(int,uint16_t)), radio, SLOT(setAileron(int,uint16_t))); + connect(elevator, SIGNAL(setpointChanged(int,uint16_t)), radio, SLOT(setElevator(int,uint16_t))); + connect(rudder, SIGNAL(setpointChanged(int,uint16_t)), radio, SLOT(setRudder(int,uint16_t))); + connect(gyro, SIGNAL(setpointChanged(int,uint16_t)), radio, SLOT(setGyro(int,uint16_t))); + connect(pitch, SIGNAL(setpointChanged(int,uint16_t)), radio, SLOT(setPitch(int,uint16_t))); + connect(throttle, SIGNAL(setpointChanged(int,uint16_t)), radio, SLOT(setThrottle(int,uint16_t))); setUASId(0); } From e85b4d8d8808beefdeb24bb350e9380992be9a1d Mon Sep 17 00:00:00 2001 From: Bryan Godbolt Date: Tue, 19 Jul 2011 16:50:04 -0600 Subject: [PATCH 4/4] fixed some stability issues with qgcremotecontrol view --- src/ui/QGCRemoteControlView.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/QGCRemoteControlView.cc b/src/ui/QGCRemoteControlView.cc index 26616b3..dc817cf 100644 --- a/src/ui/QGCRemoteControlView.cc +++ b/src/ui/QGCRemoteControlView.cc @@ -134,10 +134,10 @@ void QGCRemoteControlView::setChannelScaled(int channelId, float normalized) // This is an existing channel, update it this->normalized[channelId] = normalized; } - updated = true; +// updated = true; - // FIXME Will be timer based in the future - redraw(); +// // FIXME Will be timer based in the future +// redraw(); } void QGCRemoteControlView::setRemoteRSSI(float rssiNormalized)