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:
parent
79c4ba60f6
commit
30b165c302
@ -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 ?";
|
||||
|
Loading…
x
Reference in New Issue
Block a user