1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-19 09:54:15 +01:00

Update to Dials widget to check for NaN values in UAVObjects: a NaN can cause the GCS to freeze inside the dial repaint operations. This will ensure that the GCS does

not freeze if things go south on the firmware.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2352 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
edouard 2011-01-09 13:11:32 +00:00 committed by edouard
parent 79c4ba60f6
commit 30b165c302

View File

@ -161,8 +161,12 @@ void DialGadgetWidget::updateNeedle1(UAVObject *object1) {
if(haveSubField1){
int indexOfSubField = field->getElementNames().indexOf(QRegExp(subfield1, Qt::CaseSensitive, QRegExp::FixedString));
value = field->getDouble(indexOfSubField);
}else
} else
value = field->getDouble();
if (value != value) {
qDebug() << "Dial widget: encountered NaN !!";
return;
}
setNeedle1(value);
} else {
qDebug() << "Wrong field, maybe an issue with object disconnection ?";
@ -179,8 +183,12 @@ void DialGadgetWidget::updateNeedle2(UAVObject *object2) {
if(haveSubField2){
int indexOfSubField = field->getElementNames().indexOf(QRegExp(subfield2, Qt::CaseSensitive, QRegExp::FixedString));
value = field->getDouble(indexOfSubField);
}else
} else
value = field->getDouble();
if (value != value) {
qDebug() << "Dial widget: encountered NaN !!";
return;
}
setNeedle2(value);
} else {
qDebug() << "Wrong field, maybe an issue with object disconnection ?";
@ -197,8 +205,12 @@ void DialGadgetWidget::updateNeedle3(UAVObject *object3) {
if(haveSubField3){
int indexOfSubField = field->getElementNames().indexOf(QRegExp(subfield3, Qt::CaseSensitive, QRegExp::FixedString));
value = field->getDouble(indexOfSubField);
}else
} else
value = field->getDouble();
if (value != value) {
qDebug() << "Dial widget: encountered NaN !!";
return;
}
setNeedle3(value);
} else {
qDebug() << "Wrong field, maybe an issue with object disconnection ?";