1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-18 03:52:11 +01:00

Merge remote-tracking branch 'origin/kenz/PT_UI_fixes' into next

Conflicts:
	flight/OpenPilot/System/openpilot.c
	shared/uavobjectdefinition/positionactual.xml
	shared/uavobjectdefinition/positiondesired.xml
	shared/uavobjectdefinition/velocityactual.xml
	shared/uavobjectdefinition/velocitydesired.xml
This commit is contained in:
James Cotton 2012-05-04 13:21:23 -05:00
commit 3ef01569b8
29 changed files with 456 additions and 107 deletions

View File

@ -84,7 +84,20 @@ int main()
/* swap the stack to use the IRQ stack */
Stack_Change();
/* Start the FreeRTOS scheduler which should never returns.*/
/* Start the FreeRTOS scheduler, which should never return.
*
* NOTE: OpenPilot runs an operating system (FreeRTOS), which constantly calls
* (schedules) function files (modules). These functions never return from their
* while loops, which explains why each module has a while(1){} segment. Thus,
* the OpenPilot software actually starts at the vTaskStartScheduler() function,
* even though this is somewhat obscure.
*
* In addition, there are many main() functions in the OpenPilot firmware source tree
* This is because each main() refers to a separate hardware platform. Of course,
* C only allows one main(), so only the relevant main() function is compiled when
* making a specific firmware.
*
*/
vTaskStartScheduler();
/* If all is well we will never reach here as the scheduler will now be running. */

View File

@ -1272,9 +1272,9 @@
style="opacity:0.98000004;fill:#ffffff;fill-opacity:1;stroke:#e31717;stroke-width:3.18836617;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="value"
width="132.66878"
height="13.323594"
x="15.425945"
y="33.75214"
height="23"
x="15"
y="41"
ry="3.4474616"
inkscape:label="#rect2989" />
<g

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -982,8 +982,8 @@
style="fill:#ff0606;fill-opacity:1;stroke:none"
id="value"
width="47.775032"
height="25.001274"
x="11.616754"
y="43.612305"
height="30"
x="15"
y="48"
inkscape:label="#rect4044" />
</svg>

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -2571,6 +2571,9 @@ margin:1px;</string>
<property name="enabled">
<bool>true</bool>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Overall level of feed forward (in percentage).</string>
</property>
@ -2600,6 +2603,9 @@ margin:1px;</string>
<property name="enabled">
<bool>true</bool>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>In miliseconds.
When tuning: Slowly raise accel time from zero to just
@ -2629,6 +2635,9 @@ its target speed.</string>
<property name="enabled">
<bool>true</bool>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>When tuning: Slowly raise decel time from zero to just
under the level where the motor starts to undershoot
@ -2667,6 +2676,9 @@ Do it after accel time is setup.</string>
</item>
<item row="5" column="1">
<widget class="QSlider" name="maxAccelSlider">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Limits how much the engines can accelerate or decelerate.
In 'units per second', a sound default is 1000.</string>
@ -2704,6 +2716,9 @@ In 'units per second', a sound default is 1000.</string>
</item>
<item>
<widget class="QCheckBox" name="ffTestBox1">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@ -2719,6 +2734,9 @@ p, li { white-space: pre-wrap; }
</item>
<item>
<widget class="QCheckBox" name="ffTestBox2">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
@ -2734,6 +2752,9 @@ p, li { white-space: pre-wrap; }
</item>
<item>
<widget class="QCheckBox" name="ffTestBox3">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;

View File

@ -51,6 +51,9 @@ QGroupBox::title {
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="enableCameraStabilization">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string>Enable CameraStabilization module</string>
</property>
@ -106,6 +109,9 @@ QGroupBox::title {
<layout class="QGridLayout" name="gridLayout_9">
<item row="3" column="3">
<widget class="QSpinBox" name="yawOutputRange">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Camera yaw angle for 100% output value, deg.
@ -122,6 +128,9 @@ have to define channel output range using Output configuration tab.</string>
</item>
<item row="3" column="2">
<widget class="QSpinBox" name="pitchOutputRange">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Camera pitch angle for 100% output value, deg.
@ -138,6 +147,9 @@ have to define channel output range using Output configuration tab.</string>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="rollOutputRange">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Camera roll angle for 100% output value, deg.
@ -154,6 +166,9 @@ have to define channel output range using Output configuration tab.</string>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="yawChannel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Yaw output channel for camera gimbal</string>
</property>
@ -166,6 +181,9 @@ have to define channel output range using Output configuration tab.</string>
</item>
<item row="2" column="2">
<widget class="QComboBox" name="pitchChannel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Pitch output channel for camera gimbal</string>
</property>
@ -178,6 +196,9 @@ have to define channel output range using Output configuration tab.</string>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="rollChannel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Roll output channel for camera gimbal</string>
</property>
@ -356,6 +377,9 @@ margin:1px;</string>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="yawInputChannel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Input channel to control camera yaw
@ -370,6 +394,9 @@ Don't forget to map this channel using Input configuration tab.</string>
</item>
<item row="2" column="2">
<widget class="QComboBox" name="pitchInputChannel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Input channel to control camera pitch
@ -384,6 +411,9 @@ Don't forget to map this channel using Input configuration tab.</string>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="rollInputChannel">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Input channel to control camera roll
@ -405,6 +435,9 @@ Don't forget to map this channel using Input configuration tab.</string>
</item>
<item row="3" column="3">
<widget class="QComboBox" name="yawStabilizationMode">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Axis stabilization mode
@ -420,6 +453,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="4" column="3">
<widget class="QSpinBox" name="yawInputRange">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum camera yaw deflection for 100% input in Attitude mode, deg.</string>
</property>
@ -433,6 +469,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="5" column="3">
<widget class="QSpinBox" name="yawInputRate">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum camera yaw rate for 100% input in AxisLock mode, deg/s.</string>
</property>
@ -446,6 +485,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="6" column="3">
<widget class="QSpinBox" name="yawResponseTime">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Input low-pass filter response time for yaw axis, ms.
@ -461,6 +503,9 @@ This option smoothes the stick input. Zero value disables LPF.</string>
</item>
<item row="3" column="2">
<widget class="QComboBox" name="pitchStabilizationMode">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Axis stabilization mode
@ -476,6 +521,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="4" column="2">
<widget class="QSpinBox" name="pitchInputRange">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum camera pitch deflection for 100% input in Attitude mode, deg.</string>
</property>
@ -489,6 +537,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="5" column="2">
<widget class="QSpinBox" name="pitchInputRate">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum camera pitch rate for 100% input in AxisLock mode, deg/s.</string>
</property>
@ -502,6 +553,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="6" column="2">
<widget class="QSpinBox" name="pitchResponseTime">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Input low-pass filter response time for pitch axis, ms.
@ -517,6 +571,9 @@ This option smoothes the stick input. Zero value disables LPF.</string>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="rollStabilizationMode">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Axis stabilization mode
@ -532,6 +589,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="rollInputRange">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum camera roll deflection for 100% input in Attitude mode, deg.</string>
</property>
@ -545,6 +605,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="rollInputRate">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum camera roll rate for 100% input in AxisLock mode, deg/s.</string>
</property>
@ -558,6 +621,9 @@ AxisLock: camera remembers tracking attitude. Input controls the rate of deflect
</item>
<item row="6" column="1">
<widget class="QSpinBox" name="rollResponseTime">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Input low-pass filter response time for roll axis, ms.
@ -615,6 +681,9 @@ This option smoothes the stick input. Zero value disables LPF.</string>
</item>
<item row="7" column="1">
<widget class="QDoubleSpinBox" name="MaxAxisLockRate">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Stick input deadband for all axes in AxisLock mode, deg/s.

View File

@ -89,6 +89,8 @@ ConfigCameraStabilizationWidget::ConfigCameraStabilizationWidget(QWidget *parent
connect(m_camerastabilization->camerastabilizationSaveRAM, SIGNAL(clicked()), this, SLOT(applySettings()));
connect(m_camerastabilization->camerastabilizationSaveSD, SIGNAL(clicked()), this, SLOT(saveSettings()));
connect(m_camerastabilization->camerastabilizationHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
disbleMouseWheelEvents();
}
ConfigCameraStabilizationWidget::~ConfigCameraStabilizationWidget()

View File

@ -41,7 +41,6 @@ class ConfigCameraStabilizationWidget: public ConfigTaskWidget
public:
ConfigCameraStabilizationWidget(QWidget *parent = 0);
~ConfigCameraStabilizationWidget();
private:
Ui_CameraStabilizationWidget *m_camerastabilization;
virtual void enableControls(bool enable);

View File

@ -52,6 +52,8 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
connect(m_stabilization->checkBox_3,SIGNAL(stateChanged(int)),this,SLOT(linkCheckBoxes(int)));
connect(this,SIGNAL(widgetContentsChanged(QWidget*)),this,SLOT(processLinkedWidgets(QWidget*)));
disbleMouseWheelEvents();
}

View File

@ -67,6 +67,8 @@ ConfigTxPIDWidget::ConfigTxPIDWidget(QWidget *parent) : ConfigTaskWidget(parent)
enableControls(false);
populateWidgets();
refreshWidgetsValues();
disbleMouseWheelEvents();
}
ConfigTxPIDWidget::~ConfigTxPIDWidget()

View File

@ -37,7 +37,6 @@ class ConfigTxPIDWidget : public ConfigTaskWidget
public:
ConfigTxPIDWidget(QWidget *parent = 0);
~ConfigTxPIDWidget();
private:
Ui_TxPIDWidget *m_txpid;

View File

@ -233,6 +233,7 @@ ConfigVehicleTypeWidget::ConfigVehicleTypeWidget(QWidget *parent) : ConfigTaskWi
setupGroundVehicleUI( m_aircraft->groundVehicleType->currentText() );
setupFixedWingUI( m_aircraft->fixedWingType->currentText() );
disbleMouseWheelEvents();
}
@ -244,7 +245,6 @@ ConfigVehicleTypeWidget::~ConfigVehicleTypeWidget()
// Do nothing
}
/**
Slot for switching the airframe type. We do it explicitely
rather than a signal in the UI, because we want to force a fitInView of the quad shapes.

View File

@ -291,6 +291,9 @@ margin:1px;</string>
<height>0</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="2" column="2">
@ -301,6 +304,9 @@ margin:1px;</string>
<height>0</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="2" column="3">
@ -311,6 +317,9 @@ margin:1px;</string>
<height>0</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="3" column="0">
@ -324,13 +333,25 @@ margin:1px;</string>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="fmsSsPos2Roll"/>
<widget class="QComboBox" name="fmsSsPos2Roll">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QComboBox" name="fmsSsPos2Pitch"/>
<widget class="QComboBox" name="fmsSsPos2Pitch">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QComboBox" name="fmsSsPos2Yaw"/>
<widget class="QComboBox" name="fmsSsPos2Yaw">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_22">
@ -343,13 +364,25 @@ margin:1px;</string>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="fmsSsPos3Roll"/>
<widget class="QComboBox" name="fmsSsPos3Roll">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QComboBox" name="fmsSsPos3Pitch"/>
<widget class="QComboBox" name="fmsSsPos3Pitch">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QComboBox" name="fmsSsPos3Yaw"/>
<widget class="QComboBox" name="fmsSsPos3Yaw">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_8">
@ -424,6 +457,9 @@ margin:1px;</string>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
<widget class="QComboBox" name="fmsModePos3">
<property name="geometry">
@ -434,6 +470,9 @@ margin:1px;</string>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select the stabilization mode on this position (manual/stabilized/auto)</string>
</property>
@ -460,6 +499,9 @@ margin:1px;</string>
<height>26</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
<widget class="QLabel" name="label_12">
<property name="geometry">
@ -499,6 +541,9 @@ margin:1px;</string>
<height>81</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>This slider moves when you move the flight mode switch
on your remote. Setup the flightmode channel on the RC Input tab
@ -572,6 +617,9 @@ if you have not done so already.</string>
</item>
<item>
<widget class="QComboBox" name="armControl">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Indicate the control used for arming the airframe, in addition to setting the throttle to its minimum position. In other terms &quot;Throttle Off&quot;.</string>
</property>
@ -603,6 +651,9 @@ if you have not done so already.</string>
</item>
<item>
<widget class="QSpinBox" name="armTimeout">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>After the time indicated here, the frame go back to disarmed state.</string>
</property>
@ -733,17 +784,30 @@ Applies and Saves all settings to SD</string>
<tabstops>
<tabstop>fmsSlider</tabstop>
<tabstop>fmsModePos3</tabstop>
<tabstop>fmsSsPos3Roll</tabstop>
<tabstop>fmsSsPos3Pitch</tabstop>
<tabstop>fmsSsPos3Yaw</tabstop>
<tabstop>fmsModePos2</tabstop>
<tabstop>fmsSsPos2Roll</tabstop>
<tabstop>fmsSsPos2Pitch</tabstop>
<tabstop>fmsSsPos2Yaw</tabstop>
<tabstop>fmsModePos1</tabstop>
<tabstop>fmsSsPos1Roll</tabstop>
<tabstop>fmsSsPos1Pitch</tabstop>
<tabstop>fmsSsPos1Yaw</tabstop>
<tabstop>fmsSsPos2Roll</tabstop>
<tabstop>fmsSsPos2Pitch</tabstop>
<tabstop>fmsSsPos2Yaw</tabstop>
<tabstop>fmsSsPos3Roll</tabstop>
<tabstop>fmsSsPos3Pitch</tabstop>
<tabstop>fmsSsPos3Yaw</tabstop>
<tabstop>tabWidget</tabstop>
<tabstop>deadband</tabstop>
<tabstop>configurationWizard</tabstop>
<tabstop>runCalibration</tabstop>
<tabstop>graphicsView</tabstop>
<tabstop>wzBack</tabstop>
<tabstop>wzNext</tabstop>
<tabstop>wzCancel</tabstop>
<tabstop>armControl</tabstop>
<tabstop>armTimeout</tabstop>
<tabstop>inputHelp</tabstop>
<tabstop>saveRCInputToRAM</tabstop>
<tabstop>saveRCInputToSD</tabstop>
</tabstops>
<resources>
<include location="../coreplugin/core.qrc"/>

View File

@ -4,7 +4,7 @@
#include "manualcontrolsettings.h"
inputChannelForm::inputChannelForm(QWidget *parent,bool showlegend) :
QWidget(parent),
ConfigTaskWidget(parent),
ui(new Ui::inputChannelForm)
{
ui->setupUi(this);
@ -36,12 +36,16 @@ inputChannelForm::inputChannelForm(QWidget *parent,bool showlegend) :
// a spin box fixes this
connect(ui->channelNumberDropdown,SIGNAL(currentIndexChanged(int)),this,SLOT(channelDropdownUpdated(int)));
connect(ui->channelNumber,SIGNAL(valueChanged(int)),this,SLOT(channelNumberUpdated(int)));
disbleMouseWheelEvents();
}
inputChannelForm::~inputChannelForm()
{
delete ui;
}
void inputChannelForm::setName(QString &name)
{
ui->channelName->setText(name);

View File

@ -7,7 +7,7 @@ namespace Ui {
class inputChannelForm;
}
class inputChannelForm : public QWidget
class inputChannelForm : public ConfigTaskWidget
{
Q_OBJECT

View File

@ -65,6 +65,9 @@
<height>16777215</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
<item row="2" column="4">
@ -75,6 +78,9 @@
<height>25</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
@ -94,6 +100,9 @@
<height>25</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
@ -275,6 +284,9 @@ font:bold;</string>
<height>22</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@ -300,6 +312,9 @@ font:bold;</string>
<height>16777215</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="maxVisibleItems">
<number>7</number>
</property>
@ -471,6 +486,15 @@ font:bold;</string>
</item>
</layout>
</widget>
<tabstops>
<tabstop>channelNumber</tabstop>
<tabstop>channelGroup</tabstop>
<tabstop>channelNumberDropdown</tabstop>
<tabstop>channelMin</tabstop>
<tabstop>channelNeutral</tabstop>
<tabstop>channelMax</tabstop>
<tabstop>channelRev</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@ -29,7 +29,7 @@
#include "configoutputwidget.h"
OutputChannelForm::OutputChannelForm(const int index, QWidget *parent, const bool showLegend) :
QWidget(parent),
ConfigTaskWidget(parent),
ui(),
m_index(index),
m_inChannelTest(false)
@ -70,6 +70,8 @@ OutputChannelForm::OutputChannelForm(const int index, QWidget *parent, const boo
ui.actuatorLink->setChecked(false);
connect(ui.actuatorLink, SIGNAL(toggled(bool)),
this, SLOT(linkToggled(bool)));
disbleMouseWheelEvents();
}
OutputChannelForm::~OutputChannelForm()

View File

@ -29,10 +29,9 @@
#include <QWidget>
#include "ui_outputchannelform.h"
#include "configtaskwidget.h"
class ConfigOnputWidget;
class OutputChannelForm : public QWidget
class OutputChannelForm : public ConfigTaskWidget
{
Q_OBJECT

View File

@ -10198,7 +10198,7 @@ border-radius: 5;</string>
</property>
<property name="text">
<string>Full Stick
Angle</string>
Angle (deg)</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -10226,7 +10226,7 @@ Angle</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>180</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10245,7 +10245,7 @@ Angle</string>
<string>objname:StabilizationSettings</string>
<string>fieldname:RollMax</string>
<string>haslimits:yes</string>
<string>scale:1.8</string>
<string>scale:1.0</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10269,17 +10269,17 @@ Angle</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>180</number>
</property>
<property name="value">
<number>200</number>
<number>180</number>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettings</string>
<string>fieldname:RollMax</string>
<string>haslimits:yes</string>
<string>scale:1.8</string>
<string>scale:1.0</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10322,7 +10322,7 @@ Angle</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>180</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10341,7 +10341,7 @@ Angle</string>
<string>objname:StabilizationSettings</string>
<string>fieldname:PitchMax</string>
<string>haslimits:yes</string>
<string>scale:1.8</string>
<string>scale:1.0</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10365,17 +10365,17 @@ Angle</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>180</number>
</property>
<property name="value">
<number>200</number>
<number>180</number>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettings</string>
<string>fieldname:PitchMax</string>
<string>haslimits:yes</string>
<string>scale:1.8</string>
<string>scale:1.0</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10418,7 +10418,7 @@ Angle</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>180</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10437,7 +10437,7 @@ Angle</string>
<string>objname:StabilizationSettings</string>
<string>fieldname:YawMax</string>
<string>haslimits:yes</string>
<string>scale:1.8</string>
<string>scale:1.0</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10461,17 +10461,17 @@ Angle</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>180</number>
</property>
<property name="value">
<number>200</number>
<number>180</number>
</property>
<property name="objrelation" stdset="0">
<stringlist>
<string>objname:StabilizationSettings</string>
<string>fieldname:YawMax</string>
<string>haslimits:yes</string>
<string>scale:1.8</string>
<string>scale:1.0</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10490,7 +10490,7 @@ Angle</string>
</property>
<property name="text">
<string>Full Stick
Rate</string>
Rate (deg/s)</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@ -10518,7 +10518,7 @@ Rate</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>500</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10538,7 +10538,7 @@ Rate</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10562,10 +10562,10 @@ Rate</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>500</number>
</property>
<property name="value">
<number>200</number>
<number>180</number>
</property>
<property name="objrelation" stdset="0">
<stringlist>
@ -10573,7 +10573,7 @@ Rate</string>
<string>fieldname:ManualRate</string>
<string>element:Roll</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10600,7 +10600,7 @@ Rate</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>500</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10620,7 +10620,7 @@ Rate</string>
<string>fieldname:ManualRate</string>
<string>element:Pitch</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10644,10 +10644,10 @@ Rate</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>500</number>
</property>
<property name="value">
<number>200</number>
<number>180</number>
</property>
<property name="objrelation" stdset="0">
<stringlist>
@ -10655,7 +10655,7 @@ Rate</string>
<string>fieldname:ManualRate</string>
<string>element:Pitch</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10682,7 +10682,7 @@ Rate</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>500</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10702,7 +10702,7 @@ Rate</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10726,10 +10726,10 @@ Rate</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>500</number>
</property>
<property name="value">
<number>200</number>
<number>180</number>
</property>
<property name="objrelation" stdset="0">
<stringlist>
@ -10737,7 +10737,7 @@ Rate</string>
<string>fieldname:ManualRate</string>
<string>element:Yaw</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10784,7 +10784,7 @@ Attitude</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>500</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10804,7 +10804,7 @@ Attitude</string>
<string>fieldname:MaximumRate</string>
<string>element:Roll</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10828,7 +10828,7 @@ Attitude</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>500</number>
</property>
<property name="value">
<number>200</number>
@ -10839,7 +10839,7 @@ Attitude</string>
<string>fieldname:MaximumRate</string>
<string>element:Roll</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10866,7 +10866,7 @@ Attitude</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>500</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10886,7 +10886,7 @@ Attitude</string>
<string>fieldname:MaximumRate</string>
<string>element:Pitch</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10910,7 +10910,7 @@ Attitude</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>500</number>
</property>
<property name="value">
<number>200</number>
@ -10921,7 +10921,7 @@ Attitude</string>
<string>fieldname:MaximumRate</string>
<string>element:Pitch</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10948,7 +10948,7 @@ Attitude</string>
<string notr="true"/>
</property>
<property name="maximum">
<number>100</number>
<number>500</number>
</property>
<property name="sliderPosition">
<number>50</number>
@ -10968,7 +10968,7 @@ Attitude</string>
<string>fieldname:MaximumRate</string>
<string>element:Yaw</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -10992,7 +10992,7 @@ Attitude</string>
<enum>Qt::StrongFocus</enum>
</property>
<property name="maximum">
<number>200</number>
<number>500</number>
</property>
<property name="value">
<number>200</number>
@ -11003,7 +11003,7 @@ Attitude</string>
<string>fieldname:MaximumRate</string>
<string>element:Yaw</string>
<string>haslimits:yes</string>
<string>scale:5</string>
<string>scale:1</string>
<string>buttongroup:3,10</string>
</stringlist>
</property>
@ -11885,7 +11885,7 @@ border-radius: 4;
<property name="geometry">
<rect>
<x>0</x>
<y>-403</y>
<y>0</y>
<width>673</width>
<height>1079</height>
</rect>
@ -14743,7 +14743,7 @@ Then lower the value by 20% or so.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>5</number>
</property>
<property name="singleStep">
<double>0.000100000000000</double>
@ -14791,7 +14791,7 @@ Then lower the value by 20% or so.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>5</number>
</property>
<property name="singleStep">
<double>0.000100000000000</double>
@ -14841,7 +14841,7 @@ You can usually go for higher values for Yaw factors.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>5</number>
</property>
<property name="singleStep">
<double>0.000100000000000</double>
@ -14924,7 +14924,7 @@ value as the Kp.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>5</number>
</property>
<property name="singleStep">
<double>0.000100000000000</double>
@ -14988,7 +14988,7 @@ value as the Kp.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>5</number>
</property>
<property name="singleStep">
<double>0.000100000000000</double>
@ -15052,7 +15052,7 @@ value as the Kp.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>5</number>
</property>
<property name="singleStep">
<double>0.000100000000000</double>
@ -15299,7 +15299,7 @@ value as the Kp.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>4</number>
</property>
<property name="maximum">
<double>1.000000000000000</double>
@ -15346,7 +15346,7 @@ value as the Kp.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>4</number>
</property>
<property name="maximum">
<double>1.000000000000000</double>
@ -15396,7 +15396,7 @@ value as the Kp.</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>4</number>
</property>
<property name="maximum">
<double>1.000000000000000</double>
@ -18302,7 +18302,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>3</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18346,7 +18346,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>3</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18393,7 +18393,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>3</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18475,7 +18475,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>3</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18535,7 +18535,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>3</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18598,7 +18598,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>3</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18676,7 +18676,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>2</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18720,7 +18720,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>2</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -18767,7 +18767,7 @@ border-radius: 5;</string>
<string notr="true"/>
</property>
<property name="decimals">
<number>6</number>
<number>2</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>

View File

@ -34,6 +34,9 @@
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="TxPIDEnable">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>This module will periodically update values of stabilization PID settings
depending on configured input control channels. New values of stabilization
@ -191,6 +194,9 @@ margin:1px;</string>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="PID1">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select PID option or option pair to update.
Set to Disabled if not used.</string>
@ -199,6 +205,9 @@ Set to Disabled if not used.</string>
</item>
<item row="2" column="2">
<widget class="QComboBox" name="Input1">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select input used as a control source for this instance.
It can be one of Accessory channels or Throttle channel.
@ -219,6 +228,9 @@ used, for instance, to decrease PID value when increasing Throttle.</string>
</item>
<item row="2" column="3">
<widget class="QDoubleSpinBox" name="MinPID1">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Minimum PID value mapped to Accessory channel = 0 or
Throttle channel lesser or equal to Throttle Min value.</string>
@ -233,6 +245,9 @@ Throttle channel lesser or equal to Throttle Min value.</string>
</item>
<item row="2" column="4">
<widget class="QDoubleSpinBox" name="MaxPID1">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum PID value mapped to Accessory channel = 1 or
Throttle channel greater or equal to Throttle Max value.</string>
@ -254,6 +269,9 @@ Throttle channel greater or equal to Throttle Max value.</string>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="PID2">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select PID option or option pair to update.
Set to Disabled if not used.</string>
@ -262,6 +280,9 @@ Set to Disabled if not used.</string>
</item>
<item row="3" column="2">
<widget class="QComboBox" name="Input2">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select input used as a control source for this instance.
It can be one of Accessory channels or Throttle channel.
@ -282,6 +303,9 @@ used, for instance, to decrease PID value when increasing Throttle.</string>
</item>
<item row="3" column="3">
<widget class="QDoubleSpinBox" name="MinPID2">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Minimum PID value mapped to Accessory channel = 0 or
Throttle channel lesser or equal to Throttle Min value.</string>
@ -296,6 +320,9 @@ Throttle channel lesser or equal to Throttle Min value.</string>
</item>
<item row="3" column="4">
<widget class="QDoubleSpinBox" name="MaxPID2">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum PID value mapped to Accessory channel = 1 or
Throttle channel greater or equal to Throttle Max value.</string>
@ -317,6 +344,9 @@ Throttle channel greater or equal to Throttle Max value.</string>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="PID3">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select PID option or option pair to update.
Set to Disabled if not used.</string>
@ -325,6 +355,9 @@ Set to Disabled if not used.</string>
</item>
<item row="4" column="2">
<widget class="QComboBox" name="Input3">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Select input used as a control source for this instance.
It can be one of Accessory channels or Throttle channel.
@ -345,6 +378,9 @@ used, for instance, to decrease PID value when increasing Throttle.</string>
</item>
<item row="4" column="3">
<widget class="QDoubleSpinBox" name="MinPID3">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Minimum PID value mapped to Accessory channel = 0 or
Throttle channel lesser or equal to Throttle Min value.</string>
@ -359,6 +395,9 @@ Throttle channel lesser or equal to Throttle Min value.</string>
</item>
<item row="4" column="4">
<widget class="QDoubleSpinBox" name="MaxPID3">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Maximum PID value mapped to Accessory channel = 1 or
Throttle channel greater or equal to Throttle Max value.</string>
@ -380,6 +419,9 @@ Throttle channel greater or equal to Throttle Max value.</string>
</item>
<item row="8" column="1">
<widget class="QComboBox" name="UpdateMode">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>PID values update mode which can be set to:
- Never: this disables PID updates (but module still will be run if enabled),
@ -403,6 +445,9 @@ only when system is armed without disabling the module.</string>
</item>
<item row="7" column="1">
<widget class="QDoubleSpinBox" name="ThrottleMin">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Throttle channel lower bound mapped to PID Min value</string>
</property>
@ -416,6 +461,9 @@ only when system is armed without disabling the module.</string>
</item>
<item row="7" column="2">
<widget class="QDoubleSpinBox" name="ThrottleMax">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Throttle channel upper bound mapped to PID Max value</string>
</property>
@ -578,6 +626,21 @@ margin:1px;</string>
<tabstop>Apply</tabstop>
<tabstop>Save</tabstop>
<tabstop>scrollArea</tabstop>
<tabstop>PID1</tabstop>
<tabstop>Input1</tabstop>
<tabstop>MinPID1</tabstop>
<tabstop>MaxPID1</tabstop>
<tabstop>PID2</tabstop>
<tabstop>Input2</tabstop>
<tabstop>MinPID2</tabstop>
<tabstop>MaxPID2</tabstop>
<tabstop>PID3</tabstop>
<tabstop>Input3</tabstop>
<tabstop>MinPID3</tabstop>
<tabstop>MaxPID3</tabstop>
<tabstop>ThrottleMin</tabstop>
<tabstop>ThrottleMax</tabstop>
<tabstop>UpdateMode</tabstop>
</tabstops>
<resources/>
<connections/>

View File

@ -49,6 +49,7 @@ const char * const GCS_VERSION_LONG = GCS_VERSION;
const char * const GCS_AUTHOR = "OpenPilot Project";
const char * const GCS_YEAR = "2011";
const char * const GCS_HELP = "http://wiki.openpilot.org";
#ifdef GCS_REVISION
const char * const GCS_REVISION_STR = STRINGIFY(GCS_REVISION);
#else

View File

@ -83,6 +83,7 @@
#include <QtGui/QWizard>
#include <QtGui/QToolButton>
#include <QtGui/QMessageBox>
#include <QDesktopServices>
/*
#ifdef Q_OS_UNIX
@ -731,10 +732,7 @@ void MainWindow::registerDefaultActions()
cmd = am->registerAction(tmpaction, Constants::G_HELP_HELP, m_globalContext);
mhelp->addAction(cmd, Constants::G_HELP_HELP);
tmpaction->setEnabled(true);
#ifdef Q_WS_MAC
cmd->action()->setMenuRole(QAction::ApplicationSpecificRole);
#endif
connect(tmpaction, SIGNAL(triggered()), this, SLOT(aboutPlugins()));
connect(tmpaction, SIGNAL(triggered()), this, SLOT(showHelp()));
// About sep
#ifndef Q_WS_MAC // doesn't have the "About" actions in the Help menu
@ -870,6 +868,11 @@ void MainWindow::applyTabBarSettings(QTabWidget::TabPosition pos, bool movable)
m_modeStack->setMovable(movable);
}
void MainWindow::showHelp()
{
QDesktopServices::openUrl( QUrl(Constants::GCS_HELP, QUrl::StrictMode) );
}
ActionManager *MainWindow::actionManager() const
{
return m_actionManager;

View File

@ -163,6 +163,7 @@ private slots:
void modeChanged(Core::IMode *mode);
void showUavGadgetMenus(bool show, bool hasSplitter);
void applyTabBarSettings(QTabWidget::TabPosition pos, bool movable);
void showHelp();
private:
void updateContextObject(IContext *context);

View File

@ -304,7 +304,7 @@ void PFDGadgetWidget::updateAirspeed(UAVObject *object) {
UAVObjectField* eastField = object->getField("East");
if (northField && eastField) {
double val = floor(sqrt(pow(northField->getDouble(),2) + pow(eastField->getDouble(),2))*10)/10;
groundspeedTarget = 3.6*val*speedScaleHeight/3000;
groundspeedTarget = 3.6*val*speedScaleHeight/30;
if (!dialTimer.isActive())
dialTimer.start(); // Rearm the dial Timer which might be stopped.
@ -321,7 +321,7 @@ void PFDGadgetWidget::updateAltitude(UAVObject *object) {
UAVObjectField* downField = object->getField("Down");
if (downField) {
// The altitude scale represents 30 meters
altitudeTarget = -floor(downField->getDouble()*10)/10*altitudeScaleHeight/3000;
altitudeTarget = -floor(downField->getDouble()*10)/10*altitudeScaleHeight/30;
if (!dialTimer.isActive())
dialTimer.start(); // Rearm the dial Timer which might be stopped.

View File

@ -367,7 +367,7 @@ void ConfigTaskWidget::forceShadowUpdates()
setDirty(true);
}
/**
* SLOT function called when on of the widgets contents added to the framework changes
* SLOT function called when one of the widgets contents added to the framework changes
*/
void ConfigTaskWidget::widgetsContentsChanged()
{
@ -412,7 +412,8 @@ void ConfigTaskWidget::widgetsContentsChanged()
}
}
}
smartsave->resetIcons();
if(smartsave)
smartsave->resetIcons();
setDirty(true);
}
/**
@ -1144,6 +1145,30 @@ void ConfigTaskWidget::loadWidgetLimits(QWidget * widget,UAVObjectField * field,
}
}
void ConfigTaskWidget::disbleMouseWheelEvents()
{
//Disable mouse wheel events
foreach( QSpinBox * sp, findChildren<QSpinBox*>() ) {
sp->installEventFilter( this );
}
foreach( QDoubleSpinBox * sp, findChildren<QDoubleSpinBox*>() ) {
sp->installEventFilter( this );
}
foreach( QSlider * sp, findChildren<QSlider*>() ) {
sp->installEventFilter( this );
}
}
bool ConfigTaskWidget::eventFilter( QObject * obj, QEvent * evt ) {
//Filter all wheel events, and ignore them
if ( evt->type() == QEvent::Wheel &&
(qobject_cast<QAbstractSpinBox*>( obj ) || qobject_cast<QAbstractSlider*>( obj ) ))
{
evt->ignore();
return true;
}
return QWidget::eventFilter( obj, evt );
}
/**
@}
@}

View File

@ -46,6 +46,7 @@
#include "uavobjectwidgetutils_global.h"
#include <QDesktopServices>
#include <QUrl>
#include <QEvent>
class UAVOBJECTWIDGETUTILS_EXPORT ConfigTaskWidget: public QWidget
{
@ -85,6 +86,9 @@ public:
ConfigTaskWidget(QWidget *parent = 0);
~ConfigTaskWidget();
void disbleMouseWheelEvents();
bool eventFilter( QObject * obj, QEvent * evt );
void saveObjectToSD(UAVObject *obj);
UAVObjectManager* getObjectManager();
static double listMean(QList<double> list);

View File

@ -71,18 +71,23 @@ void ImportSummaryDialog::addLine(QString uavObjectName, QString text, bool stat
{
ui->importSummaryList->setRowCount(ui->importSummaryList->rowCount()+1);
int row = ui->importSummaryList->rowCount()-1;
ui->progressBar->setMaximum(row);
ui->importSummaryList->setCellWidget(row,0,new QCheckBox(ui->importSummaryList));
QTableWidgetItem *objName = new QTableWidgetItem(uavObjectName);
ui->importSummaryList->setItem(row, 1, objName);
QCheckBox *box = dynamic_cast<QCheckBox*>(ui->importSummaryList->cellWidget(row,0));
ui->importSummaryList->setItem(row,2,new QTableWidgetItem(text));
//Disable editability and selectability in table elements
ui->importSummaryList->item(row,1)->setFlags(!Qt::ItemIsEditable);
ui->importSummaryList->item(row,2)->setFlags(!Qt::ItemIsEditable);
if (status) {
box->setChecked(true);
} else {
box->setChecked(false);
box->setEnabled(false);
}
this->repaint();
this->showEvent(NULL);
}
@ -92,11 +97,22 @@ void ImportSummaryDialog::addLine(QString uavObjectName, QString text, bool stat
*/
void ImportSummaryDialog::doTheSaving()
{
int itemCount=0;
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
UAVObjectUtilManager *utilManager = pm->getObject<UAVObjectUtilManager>();
connect(utilManager, SIGNAL(saveCompleted(int,bool)), this, SLOT(updateSaveCompletion()));
for(int i=0; i < ui->importSummaryList->rowCount(); i++) {
QCheckBox *box = dynamic_cast<QCheckBox*>(ui->importSummaryList->cellWidget(i,0));
if (box->isChecked()) {
++itemCount;
}
}
if(itemCount==0)
return;
ui->progressBar->setMaximum(itemCount+1);
ui->progressBar->setValue(1);
for(int i=0; i < ui->importSummaryList->rowCount(); i++) {
QString uavObjectName = ui->importSummaryList->item(i,1)->text();
QCheckBox *box = dynamic_cast<QCheckBox*>(ui->importSummaryList->cellWidget(i,0));
@ -106,12 +122,21 @@ void ImportSummaryDialog::doTheSaving()
this->repaint();
}
}
ui->saveToFlash->setEnabled(false);
ui->closeButton->setEnabled(false);
}
void ImportSummaryDialog::updateSaveCompletion()
{
ui->progressBar->setValue(ui->progressBar->value()+1);
if(ui->progressBar->value()==ui->progressBar->maximum())
{
ui->saveToFlash->setEnabled(true);
ui->closeButton->setEnabled(true);
}
}
void ImportSummaryDialog::changeEvent(QEvent *e)

View File

@ -79,14 +79,14 @@ UAVSettingsImportExportFactory::UAVSettingsImportExportFactory(QObject *parent):
ac->addAction(cmd, Core::Constants::G_FILE_SAVE);
connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(importUAVSettings()));
ac = am->actionContainer(Core::Constants::M_HELP);
cmd = am->registerAction(new QAction(this),
"UAVSettingsImportExportPlugin.UAVDataExport",
QList<int>() <<
Core::Constants::C_GLOBAL_ID);
cmd->action()->setText(tr("Export UAV Data..."));
ac->addAction(cmd, Core::Constants::G_FILE_SAVE);
ac->addAction(cmd, Core::Constants::G_HELP_HELP);
connect(cmd->action(), SIGNAL(triggered(bool)), this, SLOT(exportUAVData()));
}
// Slot called by the menu manager on user action

View File

@ -516,22 +516,47 @@ void deviceWidget::setProgress(int percent)
}
/**
Opens an open file dialog.
*/
*Opens an open file dialog.
*/
QString deviceWidget::setOpenFileName()
{
QFileDialog::Options options;
QString selectedFilter;
QString fwDirectoryStr;
QDir fwDirectory;
//Format filename for file chooser
#ifdef Q_OS_WIN
fwDirectoryStr=QCoreApplication::applicationDirPath();
fwDirectory=QDir(fwDirectoryStr);
fwDirectory.cdUp();
fwDirectory.cd("firmware");
fwDirectoryStr=fwDirectory.absolutePath();
#elif defined Q_OS_LINUX
fwDirectoryStr=QCoreApplication::applicationDirPath();
fwDirectory=QDir(fwDirectoryStr);
fwDirectory.cd("../../..");
fwDirectoryStr=fwDirectory.absolutePath();
fwDirectoryStr=fwDirectoryStr+"/fw_"+myDevice->lblBrdName->text().toLower()+"/fw_"+myDevice->lblBrdName->text().toLower()+".opfw";
#elif defined Q_OS_MAC
fwDirectoryStr=QCoreApplication::applicationDirPath();
fwDirectory=QDir(fwDirectoryStr);
fwDirectory.cd("../../../../../..");
fwDirectoryStr=fwDirectory.absolutePath();
fwDirectoryStr=fwDirectoryStr+"/fw_"+myDevice->lblBrdName->text().toLower()+"/fw_"+myDevice->lblBrdName->text().toLower()+".opfw";
#endif
QString fileName = QFileDialog::getOpenFileName(this,
tr("Select firmware file"),
"",
fwDirectoryStr,
tr("Firmware Files (*.opfw *.bin)"),
&selectedFilter,
options);
return fileName;
}
/**
*Set the save file name
*/
QString deviceWidget::setSaveFileName()
{
QFileDialog::Options options;

View File

@ -40,6 +40,8 @@
#include <QCryptographicHash>
#include "uavobjectutilmanager.h"
#include "devicedescriptorstruct.h"
#include <QDir>
#include <QCoreApplication>
using namespace OP_DFU;
class deviceWidget : public QWidget
{