mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
OP-146 Stabilization configuration: can now update stab settings in real time on the airframe, and link roll/pitch for easier adjustment...
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2880 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
09786b763f
commit
495445c3a5
@ -53,9 +53,27 @@ ConfigStabilizationWidget::ConfigStabilizationWidget(QWidget *parent) : ConfigTa
|
||||
|
||||
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestStabilizationUpdate()));
|
||||
|
||||
// TODO: create a timer to regularly send the object update in case
|
||||
// Create a timer to regularly send the object update in case
|
||||
// we want realtime updates.
|
||||
connect(&updateTimer, SIGNAL(timeout()), this, SLOT(sendStabilizationUpdate()));
|
||||
connect(m_stabilization->realTimeUpdates, SIGNAL(toggled(bool)), this, SLOT(realtimeUpdateToggle(bool)));
|
||||
|
||||
// Connect the updates of the stab values
|
||||
connect(m_stabilization->rateRollKp, SIGNAL(valueChanged(double)), this, SLOT(updateRateRollKP(double)));
|
||||
connect(m_stabilization->rateRollKi, SIGNAL(valueChanged(double)), this, SLOT(updateRateRollKI(double)));
|
||||
connect(m_stabilization->rateRollILimit, SIGNAL(valueChanged(double)), this, SLOT(updateRateRollILimit(double)));
|
||||
|
||||
connect(m_stabilization->ratePitchKp, SIGNAL(valueChanged(double)), this, SLOT(updateRatePitchKP(double)));
|
||||
connect(m_stabilization->ratePitchKi, SIGNAL(valueChanged(double)), this, SLOT(updateRatePitchKI(double)));
|
||||
connect(m_stabilization->ratePitchILimit, SIGNAL(valueChanged(double)), this, SLOT(updateRatePitchILimit(double)));
|
||||
|
||||
connect(m_stabilization->rollKp, SIGNAL(valueChanged(double)), this, SLOT(updateRollKP(double)));
|
||||
connect(m_stabilization->rollKi, SIGNAL(valueChanged(double)), this, SLOT(updateRollKI(double)));
|
||||
connect(m_stabilization->rollILimit, SIGNAL(valueChanged(double)), this, SLOT(updateRollILimit(double)));
|
||||
|
||||
connect(m_stabilization->pitchKp, SIGNAL(valueChanged(double)), this, SLOT(updatePitchKP(double)));
|
||||
connect(m_stabilization->pitchKi, SIGNAL(valueChanged(double)), this, SLOT(updatePitchKI(double)));
|
||||
connect(m_stabilization->pitchILimit, SIGNAL(valueChanged(double)), this, SLOT(updatePitchILimit(double)));
|
||||
|
||||
}
|
||||
|
||||
@ -65,6 +83,93 @@ ConfigStabilizationWidget::~ConfigStabilizationWidget()
|
||||
}
|
||||
|
||||
|
||||
void ConfigStabilizationWidget::updateRateRollKP(double val)
|
||||
{
|
||||
if (m_stabilization->linkRateRP->isChecked()) {
|
||||
m_stabilization->ratePitchKp->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRateRollKI(double val)
|
||||
{
|
||||
if (m_stabilization->linkRateRP->isChecked()) {
|
||||
m_stabilization->ratePitchKi->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRateRollILimit(double val)
|
||||
{
|
||||
if (m_stabilization->linkRateRP->isChecked()) {
|
||||
m_stabilization->ratePitchILimit->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRatePitchKP(double val)
|
||||
{
|
||||
if (m_stabilization->linkRateRP->isChecked()) {
|
||||
m_stabilization->rateRollKp->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRatePitchKI(double val)
|
||||
{
|
||||
if (m_stabilization->linkRateRP->isChecked()) {
|
||||
m_stabilization->rateRollKi->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRatePitchILimit(double val)
|
||||
{
|
||||
if (m_stabilization->linkRateRP->isChecked()) {
|
||||
m_stabilization->rateRollILimit->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRollKP(double val)
|
||||
{
|
||||
if (m_stabilization->linkAttitudeRP->isChecked()) {
|
||||
m_stabilization->pitchKp->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRollKI(double val)
|
||||
{
|
||||
if (m_stabilization->linkAttitudeRP->isChecked()) {
|
||||
m_stabilization->pitchKi->setValue(val);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updateRollILimit(double val)
|
||||
{
|
||||
if (m_stabilization->linkAttitudeRP->isChecked()) {
|
||||
m_stabilization->pitchILimit->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updatePitchKP(double val)
|
||||
{
|
||||
if (m_stabilization->linkAttitudeRP->isChecked()) {
|
||||
m_stabilization->rollKp->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updatePitchKI(double val)
|
||||
{
|
||||
if (m_stabilization->linkAttitudeRP->isChecked()) {
|
||||
m_stabilization->rollKi->setValue(val);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::updatePitchILimit(double val)
|
||||
{
|
||||
if (m_stabilization->linkAttitudeRP->isChecked()) {
|
||||
m_stabilization->rollILimit->setValue(val);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************
|
||||
* Stabilization Settings
|
||||
*****************************/
|
||||
@ -160,6 +265,10 @@ void ConfigStabilizationWidget::resetStabilizationToDefaults()
|
||||
{
|
||||
}
|
||||
|
||||
void ConfigStabilizationWidget::parameterValueChanged(double value)
|
||||
void ConfigStabilizationWidget::realtimeUpdateToggle(bool state)
|
||||
{
|
||||
if (state)
|
||||
updateTimer.start(300);
|
||||
else
|
||||
updateTimer.stop();
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "uavobject.h"
|
||||
#include "stabilizationsettings.h"
|
||||
#include <QtGui/QWidget>
|
||||
#include <QList>
|
||||
#include <QTimer>
|
||||
|
||||
|
||||
class ConfigStabilizationWidget: public ConfigTaskWidget
|
||||
@ -48,13 +48,32 @@ public:
|
||||
private:
|
||||
Ui_StabilizationWidget *m_stabilization;
|
||||
StabilizationSettings* stabSettings;
|
||||
QTimer updateTimer;
|
||||
|
||||
|
||||
private slots:
|
||||
void requestStabilizationUpdate();
|
||||
void sendStabilizationUpdate();
|
||||
void saveStabilizationUpdate();
|
||||
void resetStabilizationToDefaults();
|
||||
void parameterValueChanged(double value);
|
||||
void realtimeUpdateToggle(bool);
|
||||
|
||||
void updateRateRollKP(double);
|
||||
void updateRateRollKI(double);
|
||||
void updateRateRollILimit(double);
|
||||
|
||||
void updateRatePitchKP(double);
|
||||
void updateRatePitchKI(double);
|
||||
void updateRatePitchILimit(double);
|
||||
|
||||
void updateRollKP(double);
|
||||
void updateRollKI(double);
|
||||
void updateRollILimit(double);
|
||||
|
||||
void updatePitchKP(double);
|
||||
void updatePitchKI(double);
|
||||
void updatePitchILimit(double);
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
@ -248,6 +248,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
@ -255,6 +258,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
@ -262,6 +268,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
@ -269,6 +278,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
@ -276,6 +288,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
@ -283,6 +298,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
@ -290,6 +308,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
@ -297,6 +318,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
@ -304,6 +328,9 @@
|
||||
<property name="decimals">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
|
Loading…
x
Reference in New Issue
Block a user