mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-21 11:54:15 +01:00
Start basics of config plugin page for FW clean up, add support for single
servo aileron fixedwings
This commit is contained in:
parent
b119f7ee5f
commit
86f8997e88
@ -14,19 +14,22 @@
|
|||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_10">
|
<layout class="QVBoxLayout" name="verticalLayout_10">
|
||||||
<property name="margin">
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label">
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
<weight>75</weight>
|
||||||
@ -34,17 +37,9 @@
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Airplane type:</string>
|
<string>Airframe Type:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QGraphicsView" name="planeShape">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QComboBox" name="fixedWingType"/>
|
<widget class="QComboBox" name="fixedWingType"/>
|
||||||
@ -64,6 +59,16 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="planeShape">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
<property name="rightMargin">
|
<property name="rightMargin">
|
||||||
@ -475,9 +480,7 @@ margin:1px;</string>
|
|||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<resources/>
|
||||||
<include location="../coreplugin/core.qrc"/>
|
|
||||||
</resources>
|
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>elevonSlider1</sender>
|
<sender>elevonSlider1</sender>
|
||||||
|
@ -14,7 +14,16 @@
|
|||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="margin">
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
@ -32,10 +41,19 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Frame</string>
|
<string>Airframe</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_8" stretch="1">
|
<layout class="QVBoxLayout" name="verticalLayout_8" stretch="1">
|
||||||
<property name="margin">
|
<property name="leftMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
<number>9</number>
|
<number>9</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
@ -90,7 +108,16 @@
|
|||||||
<string>Throttle Curve</string>
|
<string>Throttle Curve</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||||
<property name="margin">
|
<property name="leftMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
<number>9</number>
|
<number>9</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
@ -136,12 +163,21 @@
|
|||||||
<string>Mix Level</string>
|
<string>Mix Level</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
<property name="horizontalSpacing">
|
<property name="horizontalSpacing">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
@ -375,7 +411,7 @@ Typical value is 50% for + or X configuration on quads.</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Frame Type:</string>
|
<string>Airframe Type:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -476,7 +512,16 @@ Typical value is 50% for + or X configuration on quads.</string>
|
|||||||
<string>Motor output channels</string>
|
<string>Motor output channels</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_7" columnstretch="1,1,0,0,1">
|
<layout class="QGridLayout" name="gridLayout_7" columnstretch="1,1,0,0,1">
|
||||||
<property name="margin">
|
<property name="leftMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
<number>9</number>
|
<number>9</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0" rowspan="5">
|
<item row="0" column="0" rowspan="5">
|
||||||
@ -801,9 +846,7 @@ margin:1px;</string>
|
|||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<resources/>
|
||||||
<include location="../coreplugin/core.qrc"/>
|
|
||||||
</resources>
|
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>mrRollMixLevel</sender>
|
<sender>mrRollMixLevel</sender>
|
||||||
|
@ -53,11 +53,11 @@ ConfigFixedWingWidget::ConfigFixedWingWidget(QWidget *parent) :
|
|||||||
populateChannelComboBoxes();
|
populateChannelComboBoxes();
|
||||||
|
|
||||||
QStringList fixedWingTypes;
|
QStringList fixedWingTypes;
|
||||||
fixedWingTypes << "Elevator aileron rudder" << "Elevon";
|
fixedWingTypes << "Aileron Dual Servo" << "Aileron Single Servo" << "Elevon";
|
||||||
m_aircraft->fixedWingType->addItems(fixedWingTypes);
|
m_aircraft->fixedWingType->addItems(fixedWingTypes);
|
||||||
|
|
||||||
// Set default model to "Elevator aileron rudder"
|
// Set default model to "Aileron Dual Servo"
|
||||||
m_aircraft->fixedWingType->setCurrentIndex(m_aircraft->fixedWingType->findText("Elevator aileron rudder"));
|
m_aircraft->fixedWingType->setCurrentIndex(m_aircraft->fixedWingType->findText("Aileron Dual Servo"));
|
||||||
|
|
||||||
setupUI(m_aircraft->fixedWingType->currentText());
|
setupUI(m_aircraft->fixedWingType->currentText());
|
||||||
|
|
||||||
@ -135,9 +135,9 @@ void ConfigFixedWingWidget::setupUI(QString frameType)
|
|||||||
|
|
||||||
qDebug() << "Current Aircraft type: \n" << m_aircraft->fixedWingType->currentText();
|
qDebug() << "Current Aircraft type: \n" << m_aircraft->fixedWingType->currentText();
|
||||||
|
|
||||||
if (frameType == "FixedWing" || frameType == "Elevator aileron rudder") {
|
if (frameType == "FixedWing" || frameType == "Aileron Dual Servo") {
|
||||||
plane->setElementId("aileron");
|
plane->setElementId("aileron");
|
||||||
setComboCurrentIndex(m_aircraft->fixedWingType, m_aircraft->fixedWingType->findText("Elevator aileron rudder"));
|
setComboCurrentIndex(m_aircraft->fixedWingType, m_aircraft->fixedWingType->findText("Aileron Dual Servo"));
|
||||||
resetChannelboxesAndSliders();
|
resetChannelboxesAndSliders();
|
||||||
|
|
||||||
m_aircraft->fwRudder1ChannelBox->setEnabled(true);
|
m_aircraft->fwRudder1ChannelBox->setEnabled(true);
|
||||||
@ -151,7 +151,21 @@ void ConfigFixedWingWidget::setupUI(QString frameType)
|
|||||||
m_aircraft->fwAileron2Label->setText("Aileron 2");
|
m_aircraft->fwAileron2Label->setText("Aileron 2");
|
||||||
m_aircraft->fwElevator1Label->setText("Elevator 1");
|
m_aircraft->fwElevator1Label->setText("Elevator 1");
|
||||||
m_aircraft->fwElevator2Label->setText("Elevator 2");
|
m_aircraft->fwElevator2Label->setText("Elevator 2");
|
||||||
|
} else if (frameType == "Aileron Single Servo") {
|
||||||
|
plane->setElementId("aileron-single");
|
||||||
|
setComboCurrentIndex(m_aircraft->fixedWingType, m_aircraft->fixedWingType->findText("Aileron Single Servo"));
|
||||||
|
resetChannelboxesAndSliders();
|
||||||
|
m_aircraft->fwRudder1ChannelBox->setEnabled(true);
|
||||||
|
m_aircraft->fwRudder2ChannelBox->setEnabled(true);
|
||||||
|
m_aircraft->fwElevator1ChannelBox->setEnabled(true);
|
||||||
|
m_aircraft->fwElevator2ChannelBox->setEnabled(true);
|
||||||
|
m_aircraft->fwAileron1ChannelBox->setEnabled(true);
|
||||||
|
m_aircraft->fwAileron2ChannelBox->setEnabled(false);
|
||||||
|
|
||||||
|
m_aircraft->fwAileron1Label->setText("Aileron 1");
|
||||||
|
m_aircraft->fwAileron2Label->setText("Aileron 2");
|
||||||
|
m_aircraft->fwElevator1Label->setText("Elevator 1");
|
||||||
|
m_aircraft->fwElevator2Label->setText("Elevator 2");
|
||||||
} else if (frameType == "FixedWingVtail" || frameType == "Vtail") {
|
} else if (frameType == "FixedWingVtail" || frameType == "Vtail") {
|
||||||
// do nothing for now
|
// do nothing for now
|
||||||
} else if (frameType == "FixedWingElevon" || frameType == "Elevon") {
|
} else if (frameType == "FixedWingElevon" || frameType == "Elevon") {
|
||||||
@ -202,7 +216,7 @@ void ConfigFixedWingWidget::setupEnabledControls(QString frameType)
|
|||||||
// enableComboBoxes(this, CHANNELBOXNAME, 3, true);
|
// enableComboBoxes(this, CHANNELBOXNAME, 3, true);
|
||||||
} else if (frameType == "Elevon" || frameType == "Elevon") {
|
} else if (frameType == "Elevon" || frameType == "Elevon") {
|
||||||
enableComboBoxes(this, CHANNELBOXNAME, 3, true);
|
enableComboBoxes(this, CHANNELBOXNAME, 3, true);
|
||||||
} else if (frameType == "aileron" || frameType == "Elevator aileron rudder") {
|
} else if (frameType == "aileron" || frameType == "Aileron Dual Servo" || frameType == "Aileron Single Servo") {
|
||||||
enableComboBoxes(this, CHANNELBOXNAME, 4, true);
|
enableComboBoxes(this, CHANNELBOXNAME, 4, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -300,7 +314,7 @@ QString ConfigFixedWingWidget::updateConfigObjectsFromWidgets()
|
|||||||
QString airframeType;
|
QString airframeType;
|
||||||
QList<QString> motor_servo_List;
|
QList<QString> motor_servo_List;
|
||||||
|
|
||||||
if (m_aircraft->fixedWingType->currentText() == "Elevator aileron rudder") {
|
if (m_aircraft->fixedWingType->currentText() == "Aileron Dual Servo" || "aileron-single") {
|
||||||
airframeType = "FixedWing";
|
airframeType = "FixedWing";
|
||||||
setupFrameFixedWing(airframeType);
|
setupFrameFixedWing(airframeType);
|
||||||
|
|
||||||
@ -312,7 +326,7 @@ QString ConfigFixedWingWidget::updateConfigObjectsFromWidgets()
|
|||||||
|
|
||||||
m_aircraft->fwStatusLabel->setText(tr("Configuration OK"));
|
m_aircraft->fwStatusLabel->setText(tr("Configuration OK"));
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (m_aircraft->fixedWingType->currentText() == "elevon") {
|
else if (m_aircraft->fixedWingType->currentText() == "elevon") {
|
||||||
airframeType = "FixedWingElevon";
|
airframeType = "FixedWingElevon";
|
||||||
setupFrameElevon(airframeType);
|
setupFrameElevon(airframeType);
|
||||||
|
@ -198,8 +198,7 @@ void ConfigVehicleTypeWidget::refreshWidgetsValues(UAVObject *o)
|
|||||||
UAVObjectField *field = system->getField(QString("AirframeType"));
|
UAVObjectField *field = system->getField(QString("AirframeType"));
|
||||||
Q_ASSERT(field);
|
Q_ASSERT(field);
|
||||||
|
|
||||||
// At this stage, we will need to have some hardcoded settings in this code, this
|
// At this stage, we will need to have some hardcoded settings in this code
|
||||||
// is not ideal, but there you go.
|
|
||||||
QString frameType = field->getValue().toString();
|
QString frameType = field->getValue().toString();
|
||||||
|
|
||||||
int category = frameCategory(frameType);
|
int category = frameCategory(frameType);
|
||||||
@ -262,8 +261,9 @@ void ConfigVehicleTypeWidget::updateObjectsFromWidgets()
|
|||||||
|
|
||||||
int ConfigVehicleTypeWidget::frameCategory(QString frameType)
|
int ConfigVehicleTypeWidget::frameCategory(QString frameType)
|
||||||
{
|
{
|
||||||
if (frameType == "FixedWing" || frameType == "Elevator aileron rudder" || frameType == "FixedWingElevon"
|
if (frameType == "FixedWing" || frameType == "Aileron Dual Servo" || frameType == "Aileron Single Servo"
|
||||||
|| frameType == "Elevon" || frameType == "FixedWingVtail" || frameType == "Vtail") {
|
|| frameType == "FixedWingElevon" || frameType == "Elevon" || frameType == "FixedWingVtail"
|
||||||
|
|| frameType == "Vtail") {
|
||||||
return ConfigVehicleTypeWidget::FIXED_WING;
|
return ConfigVehicleTypeWidget::FIXED_WING;
|
||||||
} else if (frameType == "Tri" || frameType == "Tricopter Y" || frameType == "QuadX" || frameType == "Quad X"
|
} else if (frameType == "Tri" || frameType == "Tricopter Y" || frameType == "QuadX" || frameType == "Quad X"
|
||||||
|| frameType == "QuadP" || frameType == "Quad +" || frameType == "Hexa" || frameType == "Hexacopter"
|
|| frameType == "QuadP" || frameType == "Quad +" || frameType == "Hexa" || frameType == "Hexacopter"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user