mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
Merge branch 'amorale/OP-872_OP-867_thread-Config_revo_support' into next
This commit is contained in:
commit
9244b511ac
@ -128,8 +128,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>850</width>
|
<width>852</width>
|
||||||
<height>508</height>
|
<height>518</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
@ -215,7 +215,7 @@
|
|||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>1</number>
|
<number>4</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="fixedWing">
|
<widget class="QWidget" name="fixedWing">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@ -703,7 +703,7 @@ margin:1px;</string>
|
|||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>-1</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QGroupBox" name="groupBox_10">
|
<widget class="QGroupBox" name="groupBox_10">
|
||||||
@ -1555,8 +1555,8 @@ margin:1px;</string>
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>800</width>
|
<width>808</width>
|
||||||
<height>386</height>
|
<height>397</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_11">
|
<layout class="QVBoxLayout" name="verticalLayout_11">
|
||||||
@ -2158,6 +2158,9 @@ margin:1px;</string>
|
|||||||
<property name="alternatingRowColors">
|
<property name="alternatingRowColors">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>12</number>
|
||||||
|
</property>
|
||||||
<attribute name="horizontalHeaderDefaultSectionSize">
|
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||||
<number>50</number>
|
<number>50</number>
|
||||||
</attribute>
|
</attribute>
|
||||||
@ -2244,6 +2247,16 @@ margin:1px;</string>
|
|||||||
<string>Ch 10</string>
|
<string>Ch 10</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Ch 11</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Ch 12</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-</string>
|
<string>-</string>
|
||||||
@ -2324,6 +2337,24 @@ margin:1px;</string>
|
|||||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item row="0" column="10">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="11">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-</string>
|
<string>-</string>
|
||||||
@ -2404,6 +2435,23 @@ margin:1px;</string>
|
|||||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="10">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="11">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-</string>
|
<string>-</string>
|
||||||
@ -2484,6 +2532,23 @@ margin:1px;</string>
|
|||||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item row="2" column="10">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="11">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-</string>
|
<string>-</string>
|
||||||
@ -2564,6 +2629,24 @@ margin:1px;</string>
|
|||||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item row="3" column="10">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="11">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
|
||||||
<item row="4" column="0">
|
<item row="4" column="0">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-</string>
|
<string>-</string>
|
||||||
@ -2644,6 +2727,23 @@ margin:1px;</string>
|
|||||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item row="4" column="10">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="11">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="5" column="0">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-</string>
|
<string>-</string>
|
||||||
@ -2724,6 +2824,24 @@ margin:1px;</string>
|
|||||||
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
|
<item row="5" column="10">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="11">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="textAlignment">
|
||||||
|
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@ -2832,8 +2950,8 @@ margin:1px;</string>
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>287</width>
|
<width>852</width>
|
||||||
<height>326</height>
|
<height>518</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_18">
|
<layout class="QVBoxLayout" name="verticalLayout_18">
|
||||||
@ -3216,15 +3334,15 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<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">
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
|
<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="border: none;">
|
<td style="border: none;">
|
||||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:14pt; font-weight:600; color:#ff0000;">SETTING UP FEED FORWARD REQUIRES CAUTION</span></p>
|
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:600; color:#ff0000;">SETTING UP FEED FORWARD REQUIRES CAUTION</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-family:'Ubuntu'; font-size:11pt;"><br /></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:11pt;"><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-family:'Ubuntu'; font-size:11pt;"><br /></span></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:11pt;"><br /></span></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Beware: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!</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-family:'Lucida Grande'; font-size:13pt;">Beware: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!</span></p>
|
||||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Remove your props initially, and for fine-tuning, make sure your airframe is safely held in place. Wear glasses and protect your face and body.</p></td></tr></table></body></html></string>
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:13pt;">Remove your props initially, and for fine-tuning, make sure your airframe is safely held in place. Wear glasses and protect your face and body.</span></p></td></tr></table></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "extensionsystem/pluginmanager.h"
|
#include "extensionsystem/pluginmanager.h"
|
||||||
#include "uavobjectmanager.h"
|
#include "uavobjectmanager.h"
|
||||||
#include "uavobject.h"
|
#include "uavobject.h"
|
||||||
|
#include "actuatorcommand.h"
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -144,7 +145,7 @@ class VehicleConfig: public ConfigTaskWidget
|
|||||||
QStringList mixerVectors;
|
QStringList mixerVectors;
|
||||||
QStringList mixerTypeDescriptions;
|
QStringList mixerTypeDescriptions;
|
||||||
|
|
||||||
static const quint32 CHANNEL_NUMELEM = 10;
|
static const quint32 CHANNEL_NUMELEM = ActuatorCommand::CHANNEL_NUMELEM;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -54,26 +54,21 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren
|
|||||||
m_config = new Ui_OutputWidget();
|
m_config = new Ui_OutputWidget();
|
||||||
m_config->setupUi(this);
|
m_config->setupUi(this);
|
||||||
|
|
||||||
ExtensionSystem::PluginManager *pm=ExtensionSystem::PluginManager::instance();
|
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||||
Core::Internal::GeneralSettings * settings=pm->getObject<Core::Internal::GeneralSettings>();
|
Core::Internal::GeneralSettings *settings = pm->getObject<Core::Internal::GeneralSettings>();
|
||||||
if(!settings->useExpertMode())
|
if(!settings->useExpertMode()) {
|
||||||
m_config->saveRCOutputToRAM->setVisible(false);
|
m_config->saveRCOutputToRAM->setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
UAVSettingsImportExportFactory *importexportplugin = pm->getObject<UAVSettingsImportExportFactory>();
|
||||||
|
connect(importexportplugin, SIGNAL(importAboutToBegin()), this, SLOT(stopTests()));
|
||||||
|
|
||||||
UAVSettingsImportExportFactory * importexportplugin = pm->getObject<UAVSettingsImportExportFactory>();
|
|
||||||
connect(importexportplugin,SIGNAL(importAboutToBegin()),this,SLOT(stopTests()));
|
|
||||||
|
|
||||||
// NOTE: we have channel indices from 0 to 9, but the convention for OP is Channel 1 to Channel 10.
|
// NOTE: we have channel indices from 0 to 9, but the convention for OP is Channel 1 to Channel 10.
|
||||||
// Register for ActuatorSettings changes:
|
// Register for ActuatorSettings changes:
|
||||||
for (unsigned int i = 0; i < ActuatorCommand::CHANNEL_NUMELEM; i++)
|
for (unsigned int i = 0; i < ActuatorCommand::CHANNEL_NUMELEM; i++) {
|
||||||
{
|
OutputChannelForm *form = new OutputChannelForm(i, this, i == 0);
|
||||||
OutputChannelForm *form = new OutputChannelForm(i, this, i==0);
|
connect(m_config->channelOutTest, SIGNAL(toggled(bool)), form, SLOT(enableChannelTest(bool)));
|
||||||
connect(m_config->channelOutTest, SIGNAL(toggled(bool)),
|
connect(form, SIGNAL(channelChanged(int,int)), this, SLOT(sendChannelTest(int,int)));
|
||||||
form, SLOT(enableChannelTest(bool)));
|
|
||||||
connect(form, SIGNAL(channelChanged(int,int)),
|
|
||||||
this, SLOT(sendChannelTest(int,int)));
|
|
||||||
m_config->channelLayout->addWidget(form);
|
m_config->channelLayout->addWidget(form);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,6 +84,8 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren
|
|||||||
addUAVObject("ActuatorSettings");
|
addUAVObject("ActuatorSettings");
|
||||||
|
|
||||||
// Associate the buttons with their UAVO fields
|
// Associate the buttons with their UAVO fields
|
||||||
|
addWidget(m_config->cb_outputRate6);
|
||||||
|
addWidget(m_config->cb_outputRate5);
|
||||||
addWidget(m_config->cb_outputRate4);
|
addWidget(m_config->cb_outputRate4);
|
||||||
addWidget(m_config->cb_outputRate3);
|
addWidget(m_config->cb_outputRate3);
|
||||||
addWidget(m_config->cb_outputRate2);
|
addWidget(m_config->cb_outputRate2);
|
||||||
@ -99,17 +96,20 @@ ConfigOutputWidget::ConfigOutputWidget(QWidget *parent) : ConfigTaskWidget(paren
|
|||||||
|
|
||||||
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
|
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
|
||||||
UAVObject* obj = objManager->getObject(QString("ActuatorCommand"));
|
UAVObject* obj = objManager->getObject(QString("ActuatorCommand"));
|
||||||
if(UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE)
|
if(UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE) {
|
||||||
this->setEnabled(false);
|
this->setEnabled(false);
|
||||||
connect(obj,SIGNAL(objectUpdated(UAVObject*)),this,SLOT(disableIfNotMe(UAVObject*)));
|
}
|
||||||
|
connect(obj,SIGNAL(objectUpdated(UAVObject*)), this, SLOT(disableIfNotMe(UAVObject*)));
|
||||||
|
|
||||||
refreshWidgetsValues();
|
refreshWidgetsValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigOutputWidget::enableControls(bool enable)
|
void ConfigOutputWidget::enableControls(bool enable)
|
||||||
{
|
{
|
||||||
ConfigTaskWidget::enableControls(enable);
|
ConfigTaskWidget::enableControls(enable);
|
||||||
if(!enable)
|
if(!enable) {
|
||||||
m_config->channelOutTest->setChecked(false);
|
m_config->channelOutTest->setChecked(false);
|
||||||
|
}
|
||||||
m_config->channelOutTest->setEnabled(enable);
|
m_config->channelOutTest->setEnabled(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,9 +118,6 @@ ConfigOutputWidget::~ConfigOutputWidget()
|
|||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Toggles the channel testing mode by making the GCS take over
|
Toggles the channel testing mode by making the GCS take over
|
||||||
the ActuatorCommand objects
|
the ActuatorCommand objects
|
||||||
@ -132,7 +129,7 @@ void ConfigOutputWidget::runChannelTests(bool state)
|
|||||||
|
|
||||||
if(state && systemAlarms.Alarm[SystemAlarms::ALARM_ACTUATOR] != SystemAlarms::ALARM_OK) {
|
if(state && systemAlarms.Alarm[SystemAlarms::ALARM_ACTUATOR] != SystemAlarms::ALARM_OK) {
|
||||||
QMessageBox mbox;
|
QMessageBox mbox;
|
||||||
mbox.setText(QString(tr("The actuator module is in an error state. This can also occur because there are no inputs. Please fix these before testing outputs.")));
|
mbox.setText(QString(tr("The actuator module is in an error state. This can also occur because there are no inputs. Please fix these before testing outputs.")));
|
||||||
mbox.setStandardButtons(QMessageBox::Ok);
|
mbox.setStandardButtons(QMessageBox::Ok);
|
||||||
mbox.exec();
|
mbox.exec();
|
||||||
|
|
||||||
@ -146,7 +143,7 @@ void ConfigOutputWidget::runChannelTests(bool state)
|
|||||||
// Confirm this is definitely what they want
|
// Confirm this is definitely what they want
|
||||||
if(state) {
|
if(state) {
|
||||||
QMessageBox mbox;
|
QMessageBox mbox;
|
||||||
mbox.setText(QString(tr("This option will start your motors by the amount selected on the sliders regardless of transmitter. It is recommended to remove any blades from motors. Are you sure you want to do this?")));
|
mbox.setText(QString(tr("This option will start your motors by the amount selected on the sliders regardless of transmitter. It is recommended to remove any blades from motors. Are you sure you want to do this?")));
|
||||||
mbox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
mbox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
||||||
int retval = mbox.exec();
|
int retval = mbox.exec();
|
||||||
if(retval != QMessageBox::Yes) {
|
if(retval != QMessageBox::Yes) {
|
||||||
@ -159,9 +156,8 @@ void ConfigOutputWidget::runChannelTests(bool state)
|
|||||||
|
|
||||||
ActuatorCommand * obj = ActuatorCommand::GetInstance(getObjectManager());
|
ActuatorCommand * obj = ActuatorCommand::GetInstance(getObjectManager());
|
||||||
UAVObject::Metadata mdata = obj->getMetadata();
|
UAVObject::Metadata mdata = obj->getMetadata();
|
||||||
if (state)
|
if (state) {
|
||||||
{
|
wasItMe = true;
|
||||||
wasItMe=true;
|
|
||||||
accInitialData = mdata;
|
accInitialData = mdata;
|
||||||
UAVObject::SetFlightAccess(mdata, UAVObject::ACCESS_READONLY);
|
UAVObject::SetFlightAccess(mdata, UAVObject::ACCESS_READONLY);
|
||||||
UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_ONCHANGE);
|
UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_ONCHANGE);
|
||||||
@ -169,9 +165,8 @@ void ConfigOutputWidget::runChannelTests(bool state)
|
|||||||
UAVObject::SetGcsTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_ONCHANGE);
|
UAVObject::SetGcsTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_ONCHANGE);
|
||||||
mdata.gcsTelemetryUpdatePeriod = 100;
|
mdata.gcsTelemetryUpdatePeriod = 100;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
wasItMe = false;
|
||||||
wasItMe=false;
|
|
||||||
mdata = accInitialData; // Restore metadata
|
mdata = accInitialData; // Restore metadata
|
||||||
}
|
}
|
||||||
obj->setMetadata(mdata);
|
obj->setMetadata(mdata);
|
||||||
@ -182,10 +177,10 @@ void ConfigOutputWidget::runChannelTests(bool state)
|
|||||||
OutputChannelForm* ConfigOutputWidget::getOutputChannelForm(const int index) const
|
OutputChannelForm* ConfigOutputWidget::getOutputChannelForm(const int index) const
|
||||||
{
|
{
|
||||||
QList<OutputChannelForm*> outputChannelForms = findChildren<OutputChannelForm*>();
|
QList<OutputChannelForm*> outputChannelForms = findChildren<OutputChannelForm*>();
|
||||||
foreach(OutputChannelForm *outputChannelForm, outputChannelForms)
|
foreach(OutputChannelForm *outputChannelForm, outputChannelForms) {
|
||||||
{
|
if(outputChannelForm->index() == index) {
|
||||||
if( outputChannelForm->index() == index)
|
|
||||||
return outputChannelForm;
|
return outputChannelForm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// no OutputChannelForm found with given index
|
// no OutputChannelForm found with given index
|
||||||
@ -203,8 +198,9 @@ void ConfigOutputWidget::assignOutputChannel(UAVDataObject *obj, QString str)
|
|||||||
int index = options.indexOf(field->getValue().toString());
|
int index = options.indexOf(field->getValue().toString());
|
||||||
|
|
||||||
OutputChannelForm *outputChannelForm = getOutputChannelForm(index);
|
OutputChannelForm *outputChannelForm = getOutputChannelForm(index);
|
||||||
if(outputChannelForm)
|
if(outputChannelForm) {
|
||||||
outputChannelForm->setAssignment(str);
|
outputChannelForm->setAssignment(str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -213,11 +209,13 @@ void ConfigOutputWidget::assignOutputChannel(UAVDataObject *obj, QString str)
|
|||||||
*/
|
*/
|
||||||
void ConfigOutputWidget::sendChannelTest(int index, int value)
|
void ConfigOutputWidget::sendChannelTest(int index, int value)
|
||||||
{
|
{
|
||||||
if (!m_config->channelOutTest->isChecked())
|
if (!m_config->channelOutTest->isChecked()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(index < 0 || (unsigned)index >= ActuatorCommand::CHANNEL_NUMELEM)
|
if(index < 0 || (unsigned)index >= ActuatorCommand::CHANNEL_NUMELEM) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ActuatorCommand *actuatorCommand = ActuatorCommand::GetInstance(getObjectManager());
|
ActuatorCommand *actuatorCommand = ActuatorCommand::GetInstance(getObjectManager());
|
||||||
Q_ASSERT(actuatorCommand);
|
Q_ASSERT(actuatorCommand);
|
||||||
@ -244,13 +242,12 @@ void ConfigOutputWidget::refreshWidgetsValues(UAVObject * obj)
|
|||||||
Q_ASSERT(actuatorSettings);
|
Q_ASSERT(actuatorSettings);
|
||||||
ActuatorSettings::DataFields actuatorSettingsData = actuatorSettings->getData();
|
ActuatorSettings::DataFields actuatorSettingsData = actuatorSettings->getData();
|
||||||
|
|
||||||
// get channel descriptions
|
// Get channel descriptions
|
||||||
QStringList ChannelDesc = ConfigVehicleTypeWidget::getChannelDescriptions();
|
QStringList ChannelDesc = ConfigVehicleTypeWidget::getChannelDescriptions();
|
||||||
|
|
||||||
// Initialize output forms
|
// Initialize output forms
|
||||||
QList<OutputChannelForm*> outputChannelForms = findChildren<OutputChannelForm*>();
|
QList<OutputChannelForm*> outputChannelForms = findChildren<OutputChannelForm*>();
|
||||||
foreach(OutputChannelForm *outputChannelForm, outputChannelForms)
|
foreach(OutputChannelForm *outputChannelForm, outputChannelForms) {
|
||||||
{
|
|
||||||
outputChannelForm->setAssignment(ChannelDesc[outputChannelForm->index()]);
|
outputChannelForm->setAssignment(ChannelDesc[outputChannelForm->index()]);
|
||||||
|
|
||||||
// init min,max,neutral
|
// init min,max,neutral
|
||||||
@ -265,25 +262,57 @@ void ConfigOutputWidget::refreshWidgetsValues(UAVObject * obj)
|
|||||||
// Get the SpinWhileArmed setting
|
// Get the SpinWhileArmed setting
|
||||||
m_config->spinningArmed->setChecked(actuatorSettingsData.MotorsSpinWhileArmed == ActuatorSettings::MOTORSSPINWHILEARMED_TRUE);
|
m_config->spinningArmed->setChecked(actuatorSettingsData.MotorsSpinWhileArmed == ActuatorSettings::MOTORSSPINWHILEARMED_TRUE);
|
||||||
|
|
||||||
// Get Output rates for both banks
|
// Setup output rates for all banks
|
||||||
if(m_config->cb_outputRate1->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[0]))==-1)
|
if(m_config->cb_outputRate1->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[0])) == -1) {
|
||||||
{
|
|
||||||
m_config->cb_outputRate1->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[0]));
|
m_config->cb_outputRate1->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[0]));
|
||||||
}
|
}
|
||||||
if(m_config->cb_outputRate2->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[1]))==-1)
|
if(m_config->cb_outputRate2->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[1])) == -1) {
|
||||||
{
|
|
||||||
m_config->cb_outputRate2->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[1]));
|
m_config->cb_outputRate2->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[1]));
|
||||||
}
|
}
|
||||||
|
if(m_config->cb_outputRate3->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[2]) )== -1) {
|
||||||
|
m_config->cb_outputRate3->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[2]));
|
||||||
|
}
|
||||||
|
if(m_config->cb_outputRate4->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[3])) == -1) {
|
||||||
|
m_config->cb_outputRate4->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[3]));
|
||||||
|
}
|
||||||
|
if(m_config->cb_outputRate5->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[4])) == -1) {
|
||||||
|
m_config->cb_outputRate5->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[4]));
|
||||||
|
}
|
||||||
|
if(m_config->cb_outputRate6->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[5])) == -1) {
|
||||||
|
m_config->cb_outputRate6->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[5]));
|
||||||
|
}
|
||||||
m_config->cb_outputRate1->setCurrentIndex(m_config->cb_outputRate1->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[0])));
|
m_config->cb_outputRate1->setCurrentIndex(m_config->cb_outputRate1->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[0])));
|
||||||
m_config->cb_outputRate2->setCurrentIndex(m_config->cb_outputRate2->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[1])));
|
m_config->cb_outputRate2->setCurrentIndex(m_config->cb_outputRate2->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[1])));
|
||||||
|
m_config->cb_outputRate3->setCurrentIndex(m_config->cb_outputRate3->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[2])));
|
||||||
|
m_config->cb_outputRate4->setCurrentIndex(m_config->cb_outputRate4->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[3])));
|
||||||
|
m_config->cb_outputRate3->setCurrentIndex(m_config->cb_outputRate5->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[4])));
|
||||||
|
m_config->cb_outputRate4->setCurrentIndex(m_config->cb_outputRate6->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[5])));
|
||||||
|
|
||||||
|
// Reset to all disabled
|
||||||
|
m_config->chBank1->setText("-");
|
||||||
|
m_config->chBank2->setText("-");
|
||||||
|
m_config->chBank3->setText("-");
|
||||||
|
m_config->chBank4->setText("-");
|
||||||
|
m_config->chBank5->setText("-");
|
||||||
|
m_config->chBank6->setText("-");
|
||||||
|
m_config->cb_outputRate1->setEnabled(false);
|
||||||
|
m_config->cb_outputRate2->setEnabled(false);
|
||||||
|
m_config->cb_outputRate3->setEnabled(false);
|
||||||
|
m_config->cb_outputRate4->setEnabled(false);
|
||||||
|
m_config->cb_outputRate5->setEnabled(false);
|
||||||
|
m_config->cb_outputRate6->setEnabled(false);
|
||||||
|
|
||||||
|
// Get connected board model
|
||||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||||
Q_ASSERT(pm);
|
Q_ASSERT(pm);
|
||||||
UAVObjectUtilManager* utilMngr = pm->getObject<UAVObjectUtilManager>();
|
UAVObjectUtilManager *utilMngr = pm->getObject<UAVObjectUtilManager>();
|
||||||
if (utilMngr) {
|
Q_ASSERT(utilMngr);
|
||||||
|
|
||||||
|
if(utilMngr) {
|
||||||
int board = utilMngr->getBoardModel();
|
int board = utilMngr->getBoardModel();
|
||||||
if ((board & 0xff00) == 1024) {
|
// Setup labels and combos for banks according to board type
|
||||||
// CopterControl family
|
if ((board & 0xff00) == 0x0400) {
|
||||||
|
// Coptercontrol family of boards 4 timer banks
|
||||||
m_config->chBank1->setText("1-3");
|
m_config->chBank1->setText("1-3");
|
||||||
m_config->chBank2->setText("4");
|
m_config->chBank2->setText("4");
|
||||||
m_config->chBank3->setText("5,7-8");
|
m_config->chBank3->setText("5,7-8");
|
||||||
@ -292,37 +321,27 @@ void ConfigOutputWidget::refreshWidgetsValues(UAVObject * obj)
|
|||||||
m_config->cb_outputRate2->setEnabled(true);
|
m_config->cb_outputRate2->setEnabled(true);
|
||||||
m_config->cb_outputRate3->setEnabled(true);
|
m_config->cb_outputRate3->setEnabled(true);
|
||||||
m_config->cb_outputRate4->setEnabled(true);
|
m_config->cb_outputRate4->setEnabled(true);
|
||||||
if(m_config->cb_outputRate3->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[2]))==-1)
|
}
|
||||||
{
|
else if((board & 0xff00) == 0x0900) {
|
||||||
m_config->cb_outputRate3->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[2]));
|
// Revolution family of boards 6 timer banks
|
||||||
}
|
m_config->chBank1->setText("1-2");
|
||||||
if(m_config->cb_outputRate4->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[3]))==-1)
|
m_config->chBank2->setText("3");
|
||||||
{
|
m_config->chBank3->setText("4");
|
||||||
m_config->cb_outputRate4->addItem(QString::number(actuatorSettingsData.ChannelUpdateFreq[3]));
|
m_config->chBank4->setText("5-6");
|
||||||
}
|
m_config->chBank5->setText("7-8");
|
||||||
m_config->cb_outputRate3->setCurrentIndex(m_config->cb_outputRate3->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[2])));
|
m_config->chBank6->setText("9-10");
|
||||||
m_config->cb_outputRate4->setCurrentIndex(m_config->cb_outputRate4->findText(QString::number(actuatorSettingsData.ChannelUpdateFreq[3])));
|
|
||||||
} else if ((board & 0xff00) == 256 ) {
|
|
||||||
// Mainboard family
|
|
||||||
m_config->cb_outputRate1->setEnabled(true);
|
m_config->cb_outputRate1->setEnabled(true);
|
||||||
m_config->cb_outputRate2->setEnabled(true);
|
m_config->cb_outputRate2->setEnabled(true);
|
||||||
m_config->cb_outputRate3->setEnabled(false);
|
m_config->cb_outputRate3->setEnabled(true);
|
||||||
m_config->cb_outputRate4->setEnabled(false);
|
m_config->cb_outputRate4->setEnabled(true);
|
||||||
m_config->chBank1->setText("1-4");
|
m_config->cb_outputRate5->setEnabled(true);
|
||||||
m_config->chBank2->setText("5-8");
|
m_config->cb_outputRate6->setEnabled(true);
|
||||||
m_config->chBank3->setText("-");
|
|
||||||
m_config->chBank4->setText("-");
|
|
||||||
m_config->cb_outputRate3->addItem("0");
|
|
||||||
m_config->cb_outputRate3->setCurrentIndex(m_config->cb_outputRate3->findText("0"));
|
|
||||||
m_config->cb_outputRate4->addItem("0");
|
|
||||||
m_config->cb_outputRate4->setCurrentIndex(m_config->cb_outputRate4->findText("0"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Channel ranges:
|
// Get Channel ranges:
|
||||||
foreach(OutputChannelForm *outputChannelForm, outputChannelForms)
|
foreach(OutputChannelForm *outputChannelForm, outputChannelForms) {
|
||||||
{
|
int minValue = actuatorSettingsData.ChannelMin[outputChannelForm->index()];
|
||||||
int minValue = actuatorSettingsData.ChannelMin[outputChannelForm->index()];
|
|
||||||
int maxValue = actuatorSettingsData.ChannelMax[outputChannelForm->index()];
|
int maxValue = actuatorSettingsData.ChannelMax[outputChannelForm->index()];
|
||||||
outputChannelForm->minmax(minValue, maxValue);
|
outputChannelForm->minmax(minValue, maxValue);
|
||||||
|
|
||||||
@ -345,8 +364,7 @@ void ConfigOutputWidget::updateObjectsFromWidgets()
|
|||||||
|
|
||||||
// Set channel ranges
|
// Set channel ranges
|
||||||
QList<OutputChannelForm*> outputChannelForms = findChildren<OutputChannelForm*>();
|
QList<OutputChannelForm*> outputChannelForms = findChildren<OutputChannelForm*>();
|
||||||
foreach(OutputChannelForm *outputChannelForm, outputChannelForms)
|
foreach(OutputChannelForm *outputChannelForm, outputChannelForms) {
|
||||||
{
|
|
||||||
actuatorSettingsData.ChannelMax[outputChannelForm->index()] = outputChannelForm->max();
|
actuatorSettingsData.ChannelMax[outputChannelForm->index()] = outputChannelForm->max();
|
||||||
actuatorSettingsData.ChannelMin[outputChannelForm->index()] = outputChannelForm->min();
|
actuatorSettingsData.ChannelMin[outputChannelForm->index()] = outputChannelForm->min();
|
||||||
actuatorSettingsData.ChannelNeutral[outputChannelForm->index()] = outputChannelForm->neutral();
|
actuatorSettingsData.ChannelNeutral[outputChannelForm->index()] = outputChannelForm->neutral();
|
||||||
@ -357,11 +375,12 @@ void ConfigOutputWidget::updateObjectsFromWidgets()
|
|||||||
actuatorSettingsData.ChannelUpdateFreq[1] = m_config->cb_outputRate2->currentText().toUInt();
|
actuatorSettingsData.ChannelUpdateFreq[1] = m_config->cb_outputRate2->currentText().toUInt();
|
||||||
actuatorSettingsData.ChannelUpdateFreq[2] = m_config->cb_outputRate3->currentText().toUInt();
|
actuatorSettingsData.ChannelUpdateFreq[2] = m_config->cb_outputRate3->currentText().toUInt();
|
||||||
actuatorSettingsData.ChannelUpdateFreq[3] = m_config->cb_outputRate4->currentText().toUInt();
|
actuatorSettingsData.ChannelUpdateFreq[3] = m_config->cb_outputRate4->currentText().toUInt();
|
||||||
|
actuatorSettingsData.ChannelUpdateFreq[4] = m_config->cb_outputRate5->currentText().toUInt();
|
||||||
|
actuatorSettingsData.ChannelUpdateFreq[5] = m_config->cb_outputRate6->currentText().toUInt();
|
||||||
|
|
||||||
if(m_config->spinningArmed->isChecked() == true)
|
actuatorSettingsData.MotorsSpinWhileArmed = m_config->spinningArmed->isChecked() ?
|
||||||
actuatorSettingsData.MotorsSpinWhileArmed = ActuatorSettings::MOTORSSPINWHILEARMED_TRUE;
|
ActuatorSettings::MOTORSSPINWHILEARMED_TRUE :
|
||||||
else
|
ActuatorSettings::MOTORSSPINWHILEARMED_FALSE;
|
||||||
actuatorSettingsData.MotorsSpinWhileArmed = ActuatorSettings::MOTORSSPINWHILEARMED_FALSE;
|
|
||||||
|
|
||||||
// Apply settings
|
// Apply settings
|
||||||
actuatorSettings->setData(actuatorSettingsData);
|
actuatorSettings->setData(actuatorSettingsData);
|
||||||
@ -370,7 +389,6 @@ void ConfigOutputWidget::updateObjectsFromWidgets()
|
|||||||
|
|
||||||
void ConfigOutputWidget::openHelp()
|
void ConfigOutputWidget::openHelp()
|
||||||
{
|
{
|
||||||
|
|
||||||
QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/x/WIGf", QUrl::StrictMode) );
|
QDesktopServices::openUrl( QUrl("http://wiki.openpilot.org/x/WIGf", QUrl::StrictMode) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -381,11 +399,12 @@ void ConfigOutputWidget::stopTests()
|
|||||||
|
|
||||||
void ConfigOutputWidget::disableIfNotMe(UAVObject* obj)
|
void ConfigOutputWidget::disableIfNotMe(UAVObject* obj)
|
||||||
{
|
{
|
||||||
if(UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE)
|
if(UAVObject::GetGcsTelemetryUpdateMode(obj->getMetadata()) == UAVObject::UPDATEMODE_ONCHANGE) {
|
||||||
{
|
if(!wasItMe) {
|
||||||
if(!wasItMe)
|
|
||||||
this->setEnabled(false);
|
this->setEnabled(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
this->setEnabled(true);
|
this->setEnabled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -648,8 +648,8 @@ void ConfigVehicleTypeWidget::updateCustomAirframeUI()
|
|||||||
m_aircraft->customThrottle2Curve->initLinearCurve(curveValues.count(), 1.0, m_aircraft->customThrottle2Curve->getMin());
|
m_aircraft->customThrottle2Curve->initLinearCurve(curveValues.count(), 1.0, m_aircraft->customThrottle2Curve->getMin());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the mixer table:
|
// Update the mixer table:
|
||||||
for (int channel=0; channel<(int)(VehicleConfig::CHANNEL_NUMELEM); channel++) {
|
for (int channel=0; channel < m_aircraft->customMixerTable->columnCount(); channel++) {
|
||||||
UAVObjectField* field = mixer->getField(mixerTypes.at(channel));
|
UAVObjectField* field = mixer->getField(mixerTypes.at(channel));
|
||||||
if (field)
|
if (field)
|
||||||
{
|
{
|
||||||
|
@ -117,12 +117,12 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>668</width>
|
<width>668</width>
|
||||||
<height>654</height>
|
<height>671</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>-1</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>12</number>
|
<number>12</number>
|
||||||
@ -145,27 +145,31 @@
|
|||||||
<string>Output Update Speed</string>
|
<string>Output Update Speed</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="horizontalSpacing">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>12</number>
|
<number>12</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0">
|
<property name="horizontalSpacing">
|
||||||
<spacer name="horizontalSpacer_3">
|
<number>6</number>
|
||||||
<property name="orientation">
|
</property>
|
||||||
<enum>Qt::Horizontal</enum>
|
<item row="0" column="6">
|
||||||
|
<widget class="QLabel" name="chBank5">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeType">
|
<property name="alignment">
|
||||||
<enum>QSizePolicy::Minimum</enum>
|
<set>Qt::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
</widget>
|
||||||
<size>
|
</item>
|
||||||
<width>5</width>
|
<item row="0" column="2">
|
||||||
<height>20</height>
|
<widget class="QLabel" name="chBank1">
|
||||||
</size>
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QLabel" name="label_9">
|
<widget class="QLabel" name="label_9">
|
||||||
@ -183,45 +187,21 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="2">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="chBank1">
|
<spacer name="horizontalSpacer_3">
|
||||||
<property name="text">
|
<property name="orientation">
|
||||||
<string>-</string>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="sizeType">
|
||||||
<set>Qt::AlignCenter</set>
|
<enum>QSizePolicy::Minimum</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="sizeHint" stdset="0">
|
||||||
</item>
|
<size>
|
||||||
<item row="0" column="3">
|
<width>5</width>
|
||||||
<widget class="QLabel" name="chBank2">
|
<height>20</height>
|
||||||
<property name="text">
|
</size>
|
||||||
<string>-</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
</spacer>
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="4">
|
|
||||||
<widget class="QLabel" name="chBank3">
|
|
||||||
<property name="text">
|
|
||||||
<string>-</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="5">
|
|
||||||
<widget class="QLabel" name="chBank4">
|
|
||||||
<property name="text">
|
|
||||||
<string>-</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<spacer name="horizontalSpacer_4">
|
<spacer name="horizontalSpacer_4">
|
||||||
@ -251,31 +231,33 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="0" column="3">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="chBank2">
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Update rate:</string>
|
<string>-</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="4">
|
||||||
|
<widget class="QLabel" name="chBank3">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="5">
|
||||||
|
<widget class="QLabel" name="chBank4">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -395,6 +377,34 @@ Leave at 50Hz for fixed wing.</string>
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Update rate:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
<widget class="QComboBox" name="cb_outputRate3">
|
<widget class="QComboBox" name="cb_outputRate3">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@ -472,6 +482,132 @@ Leave at 50Hz for fixed wing.</string>
|
|||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes.
|
<string>Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes.
|
||||||
|
Leave at 50Hz for fixed wing.</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>50</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>60</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>125</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>165</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>270</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>330</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>400</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="7">
|
||||||
|
<widget class="QLabel" name="chBank6">
|
||||||
|
<property name="text">
|
||||||
|
<string>-</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="6">
|
||||||
|
<widget class="QComboBox" name="cb_outputRate5">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes.
|
||||||
|
Leave at 50Hz for fixed wing.</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>50</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>60</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>125</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>165</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>270</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>330</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>400</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="7">
|
||||||
|
<widget class="QComboBox" name="cb_outputRate6">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Setup "TurboPWM" here: usual value is 400 Hz for multirotor airframes.
|
||||||
Leave at 50Hz for fixed wing.</string>
|
Leave at 50Hz for fixed wing.</string>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<xml>
|
<xml>
|
||||||
<object name="ActuatorCommand" singleinstance="true" settings="false">
|
<object name="ActuatorCommand" singleinstance="true" settings="false">
|
||||||
<description>Contains the pulse duration sent to each of the channels. Set by @ref ActuatorModule</description>
|
<description>Contains the pulse duration sent to each of the channels. Set by @ref ActuatorModule</description>
|
||||||
<field name="Channel" units="us" type="int16" elements="10"/>
|
<field name="Channel" units="us" type="int16" elements="12"/>
|
||||||
<field name="UpdateTime" units="ms" type="uint16" elements="1"/>
|
<field name="UpdateTime" units="ms" type="uint16" elements="1"/>
|
||||||
<field name="MaxUpdateTime" units="ms" type="uint16" elements="1"/>
|
<field name="MaxUpdateTime" units="ms" type="uint16" elements="1"/>
|
||||||
<field name="NumFailedUpdates" units="" type="uint8" elements="1"/>
|
<field name="NumFailedUpdates" units="" type="uint8" elements="1"/>
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
<object name="ActuatorSettings" singleinstance="true" settings="true">
|
<object name="ActuatorSettings" singleinstance="true" settings="true">
|
||||||
<description>Settings for the @ref ActuatorModule that controls the channel assignments for the mixer based on AircraftType</description>
|
<description>Settings for the @ref ActuatorModule that controls the channel assignments for the mixer based on AircraftType</description>
|
||||||
<field name="ChannelUpdateFreq" units="Hz" type="uint16" elements="6" defaultvalue="50"/>
|
<field name="ChannelUpdateFreq" units="Hz" type="uint16" elements="6" defaultvalue="50"/>
|
||||||
<field name="ChannelMax" units="us" type="int16" elements="10" defaultvalue="1000"/>
|
<field name="ChannelMax" units="us" type="int16" elements="12" defaultvalue="1000"/>
|
||||||
<field name="ChannelNeutral" units="us" type="int16" elements="10" defaultvalue="1000"/>
|
<field name="ChannelNeutral" units="us" type="int16" elements="12" defaultvalue="1000"/>
|
||||||
<field name="ChannelMin" units="us" type="int16" elements="10" defaultvalue="1000"/>
|
<field name="ChannelMin" units="us" type="int16" elements="12" defaultvalue="1000"/>
|
||||||
<field name="ChannelType" units="" type="enum" elements="10" options="PWM,MK,ASTEC4,PWM Alarm Buzzer,Arming led,Info led" defaultvalue="PWM"/>
|
<field name="ChannelType" units="" type="enum" elements="12" options="PWM,MK,ASTEC4,PWM Alarm Buzzer,Arming led,Info led" defaultvalue="PWM"/>
|
||||||
<field name="ChannelAddr" units="" type="uint8" elements="10" defaultvalue="0,1,2,3,4,5,6,7,8,9"/>
|
<field name="ChannelAddr" units="" type="uint8" elements="12" defaultvalue="0,1,2,3,4,5,6,7,8,9,10,11"/>
|
||||||
<field name="MotorsSpinWhileArmed" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
|
<field name="MotorsSpinWhileArmed" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||||
|
@ -75,6 +75,12 @@
|
|||||||
<field name="Mixer10Type" cloneof="Mixer1Type"/>
|
<field name="Mixer10Type" cloneof="Mixer1Type"/>
|
||||||
<field name="Mixer10Vector" cloneof="Mixer1Vector"/>
|
<field name="Mixer10Vector" cloneof="Mixer1Vector"/>
|
||||||
|
|
||||||
|
<field name="Mixer11Type" cloneof="Mixer1Type"/>
|
||||||
|
<field name="Mixer11Vector" cloneof="Mixer1Vector"/>
|
||||||
|
|
||||||
|
<field name="Mixer12Type" cloneof="Mixer1Type"/>
|
||||||
|
<field name="Mixer12Vector" cloneof="Mixer1Vector"/>
|
||||||
|
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
<field name="Mixer8" units="" type="float" elements="1"/>
|
<field name="Mixer8" units="" type="float" elements="1"/>
|
||||||
<field name="Mixer9" units="" type="float" elements="1"/>
|
<field name="Mixer9" units="" type="float" elements="1"/>
|
||||||
<field name="Mixer10" units="" type="float" elements="1"/>
|
<field name="Mixer10" units="" type="float" elements="1"/>
|
||||||
|
<field name="Mixer11" units="" type="float" elements="1"/>
|
||||||
|
<field name="Mixer12" units="" type="float" elements="1"/>
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user