mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
Changed the element id's in one of the SVG files that I incorrectly edited. This prevents the error:
Could not resolve property : SVGID_1_ Error comes from qsvghandler.cpp or qsvgstyle.cpp in the QT libraries Qt5.2.0//5.2.0-beta1/Src/qtsvg/src/svg/ The fixedwing-shapes.svg and flyingwing-shapes.svg files need modified to prevent the errors caused by qsvgtinydocument.cpp in the QT libraries. Couldn't find node aileron. Skipping rendering. Couldn't find node vtail. Skipping rendering. These errors come from the case statement that was added to updateImageAnd Description() for FixedWingPage + switch (type) { + case SetupWizard::FIXED_WING_AILERON: + elementId = "aileron"; + break; + case SetupWizard::FIXED_WING_VTAIL: + elementId = "vtail"; + break; + default: + elementId = ""; + break; + } A similar error needs to be resolved in connectiondiagram.cpp + switch (m_configSource->getVehicleSubType()) { + case VehicleConfigurationSource::FIXED_WING_AILERON: + elementsToShow << "aileron"; + break; + case VehicleConfigurationSource::FIXED_WING_VTAIL: + elementsToShow << "vtail"; + break; + default: + break; + } Likewise outputcalibrationpage.cpp will need to reverence the elements inside the SVG file properly. + m_vehicleElementIds << "fixed-aileron" << "aileron"; + m_vehicleHighlightElementIndexes << 0 << 1; ... + m_vehicleElementIds << "fixed-vtail" << "vtail"; + m_vehicleHighlightElementIndexes << 0 << 1; Until these elements are fixed in the SVG files the wizard will not render properly and allow the user to click *next*.
This commit is contained in:
parent
721000b279
commit
92c19f2d74
@ -4,6 +4,9 @@
|
||||
<file>images/ahrs-calib.svg</file>
|
||||
<file>images/paper-plane.svg</file>
|
||||
<file>images/multirotor-shapes.svg</file>
|
||||
<!-- these are different from the files in /setupwiz/resources -->
|
||||
<file>images/fixedwing-shapes.svg</file>
|
||||
<file>images/flyingwing-shapes.svg</file>
|
||||
<file>images/ccpm_setup.svg</file>
|
||||
<file>images/PipXtreme.png</file>
|
||||
<file>images/help.png</file>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="aileron" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="792px" height="1008px" viewBox="0 0 792 1008" enable-background="new 0 0 792 1008" xml:space="preserve">
|
||||
<path fill="#010101" d="M362.386,549.617l-45.657,17.535H134.987c0,0-19.025-2.023-17.592,45.59
|
||||
c1.433,47.611,4.344,44.581,17.592,50.531h227.87l23.964,171.965h-71.977c0,0-11.272,1.641-11.22,23.54
|
||||
@ -15,7 +15,7 @@
|
||||
<path d="M402.97,458.154c0,0,20-7.5,39.5-6.5s60.5,5.5,66.5,6.5c0,0-50.5,6-76.5,5.5S402.97,458.154,402.97,458.154z"/>
|
||||
<path d="M394.476,458.592c0,0-20,7.5-39.5,6.5s-60.5-5.5-66.5-6.5c0,0,50.5-6,76.5-5.5S394.476,458.592,394.476,458.592z"/>
|
||||
</g>
|
||||
<linearGradient id="vtail" gradientUnits="userSpaceOnUse" x1="434.8428" y1="254.2417" x2="662.4346" y2="254.2417" gradientTransform="matrix(1 0 0 1 0 397)">
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="434.8428" y1="254.2417" x2="662.4346" y2="254.2417" gradientTransform="matrix(1 0 0 1 0 397)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#27AAE1"/>
|
||||
</linearGradient>
|
||||
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
@ -118,6 +118,16 @@ void ConnectionDiagram::setupGraphicsScene()
|
||||
}
|
||||
break;
|
||||
case VehicleConfigurationSource::VEHICLE_FIXEDWING:
|
||||
switch (m_configSource->getVehicleSubType()) {
|
||||
case VehicleConfigurationSource::FIXED_WING_AILERON:
|
||||
elementsToShow << "aileron";
|
||||
break;
|
||||
case VehicleConfigurationSource::FIXED_WING_VTAIL:
|
||||
elementsToShow << "vtail";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
case VehicleConfigurationSource::VEHICLE_HELI:
|
||||
case VehicleConfigurationSource::VEHICLE_SURFACE:
|
||||
default:
|
||||
|
@ -27,16 +27,97 @@
|
||||
|
||||
#include "fixedwingpage.h"
|
||||
#include "ui_fixedwingpage.h"
|
||||
#include "setupwizard.h"
|
||||
|
||||
FixedWingPage::FixedWingPage(SetupWizard *wizard, QWidget *parent) :
|
||||
AbstractWizardPage(wizard, parent),
|
||||
ui(new Ui::FixedWingPage)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setFinalPage(true);
|
||||
QSvgRenderer *renderer = new QSvgRenderer();
|
||||
// What do we do about v-tail here?
|
||||
renderer->load(QString(":/configgadget/images/fixedwing-shapes.svg"));
|
||||
m_fixedwingPic = new QGraphicsSvgItem();
|
||||
m_fixedwingPic->setSharedRenderer(renderer);
|
||||
QGraphicsScene *scene = new QGraphicsScene(this);
|
||||
scene->addItem(m_fixedwingPic);
|
||||
ui->typeGraphicsView->setScene(scene);
|
||||
|
||||
setupFixedWingTypesCombo();
|
||||
|
||||
// Default to Aileron setup
|
||||
ui->typeCombo->setCurrentIndex(0);
|
||||
connect(ui->typeCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateImageAndDescription()));
|
||||
ui->typeGraphicsView->setSceneRect(m_fixedwingPic->boundingRect());
|
||||
ui->typeGraphicsView->fitInView(m_fixedwingPic, Qt::KeepAspectRatio);
|
||||
|
||||
}
|
||||
|
||||
FixedWingPage::~FixedWingPage()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void FixedWingPage::initializePage()
|
||||
{
|
||||
updateAvailableTypes();
|
||||
updateImageAndDescription();
|
||||
}
|
||||
|
||||
bool FixedWingPage::validatePage()
|
||||
{
|
||||
SetupWizard::VEHICLE_SUB_TYPE type = (SetupWizard::VEHICLE_SUB_TYPE)ui->typeCombo->itemData(ui->typeCombo->currentIndex()).toInt();
|
||||
|
||||
getWizard()->setVehicleSubType(type);
|
||||
return true;
|
||||
}
|
||||
|
||||
void FixedWingPage::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
if (m_fixedwingPic) {
|
||||
ui->typeGraphicsView->setSceneRect(m_fixedwingPic->boundingRect());
|
||||
ui->typeGraphicsView->fitInView(m_fixedwingPic, Qt::KeepAspectRatio);
|
||||
}
|
||||
}
|
||||
|
||||
void FixedWingPage::setupFixedWingTypesCombo()
|
||||
{
|
||||
ui->typeCombo->addItem(tr("Aileron, Elevator, Rudder"), SetupWizard::FIXED_WING_AILERON);
|
||||
m_descriptions << tr("A description for aileron driven fixed wing stuff goes here... ");
|
||||
|
||||
ui->typeCombo->addItem(tr("V-Tail, or Elevon"), SetupWizard::FIXED_WING_VTAIL);
|
||||
m_descriptions << tr("A description for vtail driven fixed wing stuff goes here... ");
|
||||
}
|
||||
|
||||
void FixedWingPage::updateAvailableTypes()
|
||||
{
|
||||
}
|
||||
|
||||
void FixedWingPage::updateImageAndDescription()
|
||||
{
|
||||
|
||||
|
||||
SetupWizard::VEHICLE_SUB_TYPE type = (SetupWizard::VEHICLE_SUB_TYPE)ui->typeCombo->itemData(ui->typeCombo->currentIndex()).toInt();
|
||||
QString elementId = "";
|
||||
QString description = m_descriptions.at(ui->typeCombo->currentIndex());
|
||||
|
||||
switch (type) {
|
||||
case SetupWizard::FIXED_WING_AILERON:
|
||||
elementId = "aileron";
|
||||
break;
|
||||
case SetupWizard::FIXED_WING_VTAIL:
|
||||
elementId = "vtail";
|
||||
break;
|
||||
default:
|
||||
elementId = "";
|
||||
break;
|
||||
}
|
||||
m_fixedwingPic->setElementId(elementId);
|
||||
ui->typeGraphicsView->setSceneRect(m_fixedwingPic->boundingRect());
|
||||
ui->typeGraphicsView->fitInView(m_fixedwingPic, Qt::KeepAspectRatio);
|
||||
|
||||
ui->typeDescription->setText(description);
|
||||
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,10 @@
|
||||
#ifndef FIXEDWINGPAGE_H
|
||||
#define FIXEDWINGPAGE_H
|
||||
|
||||
#include <QtSvg/QGraphicsSvgItem>
|
||||
#include <QtSvg/QSvgRenderer>
|
||||
#include <QList>
|
||||
|
||||
#include "abstractwizardpage.h"
|
||||
|
||||
namespace Ui {
|
||||
@ -41,8 +45,21 @@ public:
|
||||
explicit FixedWingPage(SetupWizard *wizard, QWidget *parent = 0);
|
||||
~FixedWingPage();
|
||||
|
||||
void initializePage();
|
||||
bool validatePage();
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
|
||||
private:
|
||||
Ui::FixedWingPage *ui;
|
||||
void setupFixedWingTypesCombo();
|
||||
QGraphicsSvgItem *m_fixedwingPic;
|
||||
void updateAvailableTypes();
|
||||
QList<QString> m_descriptions;
|
||||
|
||||
private slots:
|
||||
void updateImageAndDescription();
|
||||
};
|
||||
|
||||
#endif // FIXEDWINGPAGE_H
|
||||
|
@ -15,22 +15,147 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">The Fixed Wing section of the OpenPilot Setup Wizard is not yet implemented</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p></body></html></string>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">OpenPilot fixedwing configuration</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">This part of the wizard will set up the OpenPilot controller for use with a flying platform utilizing multiple rotors. The wizard supports the most common types of fixedwings. Other variants of fixedwings can be configured by using custom configuration options in the Configuration plugin in the GCS.</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Please select the type of fixedwing you want to create a configuration for below:</span></p></body></html></string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="topMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="rightMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>125</width>
|
||||
<height>36</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
<weight>50</weight>
|
||||
<bold>false</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Multirotor type:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="typeCombo">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>125</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="typeDescription">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGraphicsView" name="typeGraphicsView">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>200</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="midLineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="backgroundBrush">
|
||||
<brush brushstyle="NoBrush">
|
||||
<color alpha="0">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</property>
|
||||
<property name="foregroundBrush">
|
||||
<brush brushstyle="NoBrush">
|
||||
<color alpha="0">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</property>
|
||||
<property name="interactive">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -104,6 +104,23 @@ void OutputCalibrationPage::setupVehicle()
|
||||
m_vehicleHighlightElementIndexes << 0 << 1 << 2 << 3 << 4 << 5 << 6;
|
||||
m_channelIndex << 0 << 0 << 1 << 2 << 3 << 4 << 5;
|
||||
break;
|
||||
// KF hack
|
||||
case SetupWizard::FIXED_WING_AILERON:
|
||||
qDebug() << "no clue what a wizard index is!";
|
||||
m_wizardIndexes << 0 << 1 << 1 << 1 << 1 << 1 << 1;
|
||||
m_vehicleElementIds << "fixed-aileron" << "aileron";
|
||||
m_vehicleHighlightElementIndexes << 0 << 1;
|
||||
m_channelIndex << 0 << 0 << 1 << 2 << 3 << 4 << 5;
|
||||
getWizard()->setActuatorSettings(m_actuatorSettings);
|
||||
break;
|
||||
case SetupWizard::FIXED_WING_VTAIL:
|
||||
qDebug() << "no clue what a wizard index is!";
|
||||
m_wizardIndexes << 0 << 1 << 1 << 1 << 1 << 1 << 1;
|
||||
m_vehicleElementIds << "fixed-vtail" << "vtail";
|
||||
m_vehicleHighlightElementIndexes << 0 << 1;
|
||||
m_channelIndex << 0 << 0 << 1 << 2 << 3 << 4 << 5;
|
||||
getWizard()->setActuatorSettings(m_actuatorSettings);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ p, li { white-space: pre-wrap; }
|
||||
<item>
|
||||
<widget class="QToolButton" name="fixedwingButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
|
@ -225,7 +225,22 @@ QString SetupWizard::getSummaryText()
|
||||
|
||||
break;
|
||||
case VEHICLE_FIXEDWING:
|
||||
summary.append(tr("Fixed wing"));
|
||||
summary.append(tr("Fixed wing"));
|
||||
|
||||
summary.append("<br>");
|
||||
summary.append("<b>").append(tr("Vehicle sub type: ")).append("</b>");
|
||||
switch (getVehicleSubType()) {
|
||||
case SetupWizard::FIXED_WING_AILERON:
|
||||
summary.append(tr("Aileron"));
|
||||
break;
|
||||
case SetupWizard::FIXED_WING_VTAIL:
|
||||
summary.append(tr("Vtail"));
|
||||
break;
|
||||
default:
|
||||
summary.append(tr("Unknown"));
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
case VEHICLE_HELI:
|
||||
summary.append(tr("Helicopter"));
|
||||
|
@ -214,6 +214,22 @@ void VehicleConfigurationHelper::applyVehicleConfiguration()
|
||||
break;
|
||||
}
|
||||
case VehicleConfigurationSource::VEHICLE_FIXEDWING:
|
||||
{
|
||||
switch (m_configSource->getVehicleSubType()) {
|
||||
case VehicleConfigurationSource::FIXED_WING_AILERON:
|
||||
setupAileron();
|
||||
break;
|
||||
/* case VehicleConfigurationSource::FIXED_WING_ELEVON:
|
||||
setupElevon();
|
||||
break; */
|
||||
case VehicleConfigurationSource::FIXED_WING_VTAIL:
|
||||
setupVtail();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VehicleConfigurationSource::VEHICLE_HELI:
|
||||
case VehicleConfigurationSource::VEHICLE_SURFACE:
|
||||
// TODO: Implement settings for other vehicle types?
|
||||
@ -1287,3 +1303,144 @@ void VehicleConfigurationHelper::setupOctoCopter()
|
||||
applyMixerConfiguration(channels);
|
||||
applyMultiGUISettings(frame, guiSettings);
|
||||
}
|
||||
|
||||
// This is all wrong... I just copied the Tricopter stuff
|
||||
void VehicleConfigurationHelper::setupVtail()
|
||||
{
|
||||
|
||||
mixerChannelSettings channels[10];
|
||||
GUIConfigDataUnion guiSettings = getGUIConfigData();
|
||||
|
||||
channels[0].type = MIXER_TYPE_MOTOR;
|
||||
channels[0].throttle1 = 100;
|
||||
channels[0].throttle2 = 0;
|
||||
channels[0].roll = 100;
|
||||
channels[0].pitch = 50;
|
||||
channels[0].yaw = 0;
|
||||
|
||||
channels[1].type = MIXER_TYPE_MOTOR;
|
||||
channels[1].throttle1 = 100;
|
||||
channels[1].throttle2 = 0;
|
||||
channels[1].roll = -100;
|
||||
channels[1].pitch = 50;
|
||||
channels[1].yaw = 0;
|
||||
|
||||
channels[2].type = MIXER_TYPE_MOTOR;
|
||||
channels[2].throttle1 = 100;
|
||||
channels[2].throttle2 = 0;
|
||||
channels[2].roll = 0;
|
||||
channels[2].pitch = -100;
|
||||
channels[2].yaw = 0;
|
||||
|
||||
channels[3].type = MIXER_TYPE_SERVO;
|
||||
channels[3].throttle1 = 0;
|
||||
channels[3].throttle2 = 0;
|
||||
channels[3].roll = 0;
|
||||
channels[3].pitch = 0;
|
||||
channels[3].yaw = 100;
|
||||
|
||||
guiSettings.multi.VTOLMotorNW = 1;
|
||||
guiSettings.multi.VTOLMotorNE = 2;
|
||||
guiSettings.multi.VTOLMotorS = 3;
|
||||
guiSettings.multi.TRIYaw = 4;
|
||||
|
||||
applyMixerConfiguration(channels);
|
||||
applyMultiGUISettings(SystemSettings::AIRFRAMETYPE_FIXEDWINGVTAIL, guiSettings);
|
||||
}
|
||||
|
||||
// This is all wrong... I just copied the Tricopter stuff
|
||||
void VehicleConfigurationHelper::setupAileron()
|
||||
{
|
||||
// Typical vehicle setup
|
||||
// 1. Setup mixer data
|
||||
// 2. Setup GUI data
|
||||
// 3. Apply changes
|
||||
|
||||
mixerChannelSettings channels[10];
|
||||
GUIConfigDataUnion guiSettings = getGUIConfigData();
|
||||
|
||||
channels[0].type = MIXER_TYPE_MOTOR;
|
||||
channels[0].throttle1 = 100;
|
||||
channels[0].throttle2 = 0;
|
||||
channels[0].roll = 100;
|
||||
channels[0].pitch = 50;
|
||||
channels[0].yaw = 0;
|
||||
|
||||
channels[1].type = MIXER_TYPE_MOTOR;
|
||||
channels[1].throttle1 = 100;
|
||||
channels[1].throttle2 = 0;
|
||||
channels[1].roll = -100;
|
||||
channels[1].pitch = 50;
|
||||
channels[1].yaw = 0;
|
||||
|
||||
channels[2].type = MIXER_TYPE_MOTOR;
|
||||
channels[2].throttle1 = 100;
|
||||
channels[2].throttle2 = 0;
|
||||
channels[2].roll = 0;
|
||||
channels[2].pitch = -100;
|
||||
channels[2].yaw = 0;
|
||||
|
||||
channels[3].type = MIXER_TYPE_SERVO;
|
||||
channels[3].throttle1 = 0;
|
||||
channels[3].throttle2 = 0;
|
||||
channels[3].roll = 0;
|
||||
channels[3].pitch = 0;
|
||||
channels[3].yaw = 100;
|
||||
|
||||
guiSettings.multi.VTOLMotorNW = 1;
|
||||
guiSettings.multi.VTOLMotorNE = 2;
|
||||
guiSettings.multi.VTOLMotorS = 3;
|
||||
guiSettings.multi.TRIYaw = 4;
|
||||
|
||||
applyMixerConfiguration(channels);
|
||||
applyMultiGUISettings(SystemSettings::AIRFRAMETYPE_FIXEDWINGVTAIL, guiSettings);
|
||||
}
|
||||
|
||||
// This is all wrong... I just copied the Tricopter stuff
|
||||
void VehicleConfigurationHelper::setupElevon()
|
||||
{
|
||||
// Typical vehicle setup
|
||||
// 1. Setup mixer data
|
||||
// 2. Setup GUI data
|
||||
// 3. Apply changes
|
||||
|
||||
mixerChannelSettings channels[10];
|
||||
GUIConfigDataUnion guiSettings = getGUIConfigData();
|
||||
|
||||
channels[0].type = MIXER_TYPE_MOTOR;
|
||||
channels[0].throttle1 = 100;
|
||||
channels[0].throttle2 = 0;
|
||||
channels[0].roll = 100;
|
||||
channels[0].pitch = 50;
|
||||
channels[0].yaw = 0;
|
||||
|
||||
channels[1].type = MIXER_TYPE_MOTOR;
|
||||
channels[1].throttle1 = 100;
|
||||
channels[1].throttle2 = 0;
|
||||
channels[1].roll = -100;
|
||||
channels[1].pitch = 50;
|
||||
channels[1].yaw = 0;
|
||||
|
||||
channels[2].type = MIXER_TYPE_MOTOR;
|
||||
channels[2].throttle1 = 100;
|
||||
channels[2].throttle2 = 0;
|
||||
channels[2].roll = 0;
|
||||
channels[2].pitch = -100;
|
||||
channels[2].yaw = 0;
|
||||
|
||||
channels[3].type = MIXER_TYPE_SERVO;
|
||||
channels[3].throttle1 = 0;
|
||||
channels[3].throttle2 = 0;
|
||||
channels[3].roll = 0;
|
||||
channels[3].pitch = 0;
|
||||
channels[3].yaw = 100;
|
||||
|
||||
guiSettings.multi.VTOLMotorNW = 1;
|
||||
guiSettings.multi.VTOLMotorNE = 2;
|
||||
guiSettings.multi.VTOLMotorS = 3;
|
||||
guiSettings.multi.TRIYaw = 4;
|
||||
|
||||
applyMixerConfiguration(channels);
|
||||
applyMultiGUISettings(SystemSettings::AIRFRAMETYPE_FIXEDWINGELEVON, guiSettings);
|
||||
}
|
||||
|
||||
|
@ -103,6 +103,9 @@ private:
|
||||
void setupQuadCopter();
|
||||
void setupHexaCopter();
|
||||
void setupOctoCopter();
|
||||
void setupVtail();
|
||||
void setupAileron();
|
||||
void setupElevon();
|
||||
|
||||
private slots:
|
||||
void uAVOTransactionCompleted(UAVObject *object, bool success);
|
||||
|
@ -30,6 +30,9 @@
|
||||
<file>resources/bttn-turbo-down.png</file>
|
||||
<file>resources/bttn-turbo-up.png</file>
|
||||
<file>resources/multirotor-shapes.svg</file>
|
||||
<!-- these are different from the files in /config/images -->
|
||||
<file>resources/fixedwing-shapes.svg</file>
|
||||
<file>resources/flyingwing-shapes.svg</file>
|
||||
<file>resources/bttn-illustration-down.png</file>
|
||||
<file>resources/bttn-illustration-up.png</file>
|
||||
<file>resources/bttn-save-down.png</file>
|
||||
|
Loading…
x
Reference in New Issue
Block a user