1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

OP-138 Small bugfix to prevent a crash when actuator settings are incoherent

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1802 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
edouard 2010-09-29 19:40:11 +00:00 committed by edouard
parent ee4ca7b93a
commit 742987a314
2 changed files with 100 additions and 13 deletions

View File

@ -1081,10 +1081,93 @@
</layout>
</item>
<item>
<widget class="QLabel" name="label_33">
<property name="text">
<string>TextLabel</string>
<widget class="QTableWidget" name="tableWidget">
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>50</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>50</number>
</attribute>
<row>
<property name="text">
<string>Curve 1</string>
</property>
</row>
<row>
<property name="text">
<string>Curve 2</string>
</property>
</row>
<row>
<property name="text">
<string>Roll</string>
</property>
</row>
<row>
<property name="text">
<string>Pitch</string>
</property>
</row>
<row>
<property name="text">
<string>Yaw</string>
</property>
</row>
<column>
<property name="text">
<string>C0</string>
</property>
</column>
<column>
<property name="text">
<string>C1</string>
</property>
</column>
<column>
<property name="text">
<string>C2</string>
</property>
</column>
<column>
<property name="text">
<string>C3</string>
</property>
</column>
<column>
<property name="text">
<string>C4</string>
</property>
</column>
<column>
<property name="text">
<string>C5</string>
</property>
</column>
<column>
<property name="text">
<string>C6</string>
</property>
</column>
<column>
<property name="text">
<string>C7</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string/>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string/>
</property>
</item>
</widget>
</item>
</layout>

View File

@ -219,21 +219,25 @@ void ConfigAirframeWidget::requestAircraftUpdate()
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(obj);
int chMixerNumber = m_aircraft->fwAileron1Channel->currentIndex()-1;
field = obj->getField(mixerVectors.at(chMixerNumber));
int ti = field->getElementNames().indexOf("Roll");
m_aircraft->elevonSlider1->setValue(field->getDouble(ti)*100);
ti = field->getElementNames().indexOf("Pitch");
m_aircraft->elevonSlider2->setValue(field->getDouble(ti)*100);
if (chMixerNumber >= 0) { // If for some reason the actuators were incoherent, we might fail here, hence the check.
field = obj->getField(mixerVectors.at(chMixerNumber));
int ti = field->getElementNames().indexOf("Roll");
m_aircraft->elevonSlider1->setValue(field->getDouble(ti)*100);
ti = field->getElementNames().indexOf("Pitch");
m_aircraft->elevonSlider2->setValue(field->getDouble(ti)*100);
}
}
if (frameType == "FixedWingVtail") {
obj = dynamic_cast<UAVDataObject*>(getObjectManager()->getObject(QString("MixerSettings")));
Q_ASSERT(obj);
int chMixerNumber = m_aircraft->fwElevator1Channel->currentIndex()-1;
field = obj->getField(mixerVectors.at(chMixerNumber));
int ti = field->getElementNames().indexOf("Yaw");
m_aircraft->elevonSlider1->setValue(field->getDouble(ti)*100);
ti = field->getElementNames().indexOf("Pitch");
m_aircraft->elevonSlider2->setValue(field->getDouble(ti)*100);
if (chMixerNumber >=0) {
field = obj->getField(mixerVectors.at(chMixerNumber));
int ti = field->getElementNames().indexOf("Yaw");
m_aircraft->elevonSlider1->setValue(field->getDouble(ti)*100);
ti = field->getElementNames().indexOf("Pitch");
m_aircraft->elevonSlider2->setValue(field->getDouble(ti)*100);
}
}
} else if (frameType == "QuadX" || frameType == "QuadP" ||
frameType == "Hexa" || frameType == "Octo" ) {