mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-03-01 18:29:16 +01:00
Merge remote-tracking branch 'origin/steve/OP-1903_Add_TxPID_controls_for_AttitudeSettings' into rel-nano-15.05
This commit is contained in:
commit
c8ff29c404
@ -55,6 +55,7 @@
|
|||||||
#include "accessorydesired.h"
|
#include "accessorydesired.h"
|
||||||
#include "manualcontrolcommand.h"
|
#include "manualcontrolcommand.h"
|
||||||
#include "stabilizationsettings.h"
|
#include "stabilizationsettings.h"
|
||||||
|
#include "attitudesettings.h"
|
||||||
#ifdef REVOLUTION
|
#ifdef REVOLUTION
|
||||||
#include "altitudeholdsettings.h"
|
#include "altitudeholdsettings.h"
|
||||||
#endif
|
#endif
|
||||||
@ -195,6 +196,10 @@ static void updatePIDs(UAVObjEvent *ev)
|
|||||||
}
|
}
|
||||||
StabilizationSettingsData stab;
|
StabilizationSettingsData stab;
|
||||||
StabilizationSettingsGet(&stab);
|
StabilizationSettingsGet(&stab);
|
||||||
|
|
||||||
|
AttitudeSettingsData att;
|
||||||
|
AttitudeSettingsGet(&att);
|
||||||
|
|
||||||
#ifdef REVOLUTION
|
#ifdef REVOLUTION
|
||||||
AltitudeHoldSettingsData altitude;
|
AltitudeHoldSettingsData altitude;
|
||||||
AltitudeHoldSettingsGet(&altitude);
|
AltitudeHoldSettingsGet(&altitude);
|
||||||
@ -203,6 +208,7 @@ static void updatePIDs(UAVObjEvent *ev)
|
|||||||
|
|
||||||
uint8_t needsUpdateBank = 0;
|
uint8_t needsUpdateBank = 0;
|
||||||
uint8_t needsUpdateStab = 0;
|
uint8_t needsUpdateStab = 0;
|
||||||
|
uint8_t needsUpdateAtt = 0;
|
||||||
#ifdef REVOLUTION
|
#ifdef REVOLUTION
|
||||||
uint8_t needsUpdateAltitude = 0;
|
uint8_t needsUpdateAltitude = 0;
|
||||||
#endif
|
#endif
|
||||||
@ -365,6 +371,16 @@ static void updatePIDs(UAVObjEvent *ev)
|
|||||||
case TXPIDSETTINGS_PIDS_ACROPLUSFACTOR:
|
case TXPIDSETTINGS_PIDS_ACROPLUSFACTOR:
|
||||||
needsUpdateBank |= update(&bank.AcroInsanityFactor, value);
|
needsUpdateBank |= update(&bank.AcroInsanityFactor, value);
|
||||||
break;
|
break;
|
||||||
|
case TXPIDSETTINGS_PIDS_ACCELTAU:
|
||||||
|
needsUpdateAtt |= update(&att.AccelTau, value);
|
||||||
|
break;
|
||||||
|
case TXPIDSETTINGS_PIDS_ACCELKP:
|
||||||
|
needsUpdateAtt |= update(&att.AccelKp, value);
|
||||||
|
break;
|
||||||
|
case TXPIDSETTINGS_PIDS_ACCELKI:
|
||||||
|
needsUpdateAtt |= update(&att.AccelKi, value);
|
||||||
|
break;
|
||||||
|
|
||||||
#ifdef REVOLUTION
|
#ifdef REVOLUTION
|
||||||
case TXPIDSETTINGS_PIDS_ALTITUDEPOSKP:
|
case TXPIDSETTINGS_PIDS_ALTITUDEPOSKP:
|
||||||
needsUpdateAltitude |= update(&altitude.VerticalPosP, value);
|
needsUpdateAltitude |= update(&altitude.VerticalPosP, value);
|
||||||
@ -390,6 +406,9 @@ static void updatePIDs(UAVObjEvent *ev)
|
|||||||
if (needsUpdateStab) {
|
if (needsUpdateStab) {
|
||||||
StabilizationSettingsSet(&stab);
|
StabilizationSettingsSet(&stab);
|
||||||
}
|
}
|
||||||
|
if (needsUpdateAtt) {
|
||||||
|
AttitudeSettingsSet(&att);
|
||||||
|
}
|
||||||
#ifdef REVOLUTION
|
#ifdef REVOLUTION
|
||||||
if (needsUpdateAltitude) {
|
if (needsUpdateAltitude) {
|
||||||
AltitudeHoldSettingsSet(&altitude);
|
AltitudeHoldSettingsSet(&altitude);
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include "configtxpidwidget.h"
|
#include "configtxpidwidget.h"
|
||||||
#include "txpidsettings.h"
|
#include "txpidsettings.h"
|
||||||
#include "hwsettings.h"
|
#include "hwsettings.h"
|
||||||
|
#include "attitudesettings.h"
|
||||||
#include "stabilizationsettings.h"
|
#include "stabilizationsettings.h"
|
||||||
#include "stabilizationsettingsbank1.h"
|
#include "stabilizationsettingsbank1.h"
|
||||||
#include "stabilizationsettingsbank2.h"
|
#include "stabilizationsettingsbank2.h"
|
||||||
@ -305,6 +306,15 @@ float ConfigTxPIDWidget::getDefaultValueForPidOption(int pidOption)
|
|||||||
if (pidOption == TxPIDSettings::PIDS_GYROTAU) {
|
if (pidOption == TxPIDSettings::PIDS_GYROTAU) {
|
||||||
StabilizationSettings *stab = qobject_cast<StabilizationSettings *>(getObject(QString("StabilizationSettings")));
|
StabilizationSettings *stab = qobject_cast<StabilizationSettings *>(getObject(QString("StabilizationSettings")));
|
||||||
return stab->getGyroTau();
|
return stab->getGyroTau();
|
||||||
|
} else if (pidOption == TxPIDSettings::PIDS_ACCELTAU) {
|
||||||
|
AttitudeSettings *att = qobject_cast<AttitudeSettings *>(getObject(QString("AttitudeSettings")));
|
||||||
|
return att->getAccelTau();
|
||||||
|
} else if (pidOption == TxPIDSettings::PIDS_ACCELKP) {
|
||||||
|
AttitudeSettings *att = qobject_cast<AttitudeSettings *>(getObject(QString("AttitudeSettings")));
|
||||||
|
return att->getAccelKp();
|
||||||
|
} else if (pidOption == TxPIDSettings::PIDS_ACCELKI) {
|
||||||
|
AttitudeSettings *att = qobject_cast<AttitudeSettings *>(getObject(QString("AttitudeSettings")));
|
||||||
|
return att->getAccelKi();
|
||||||
}
|
}
|
||||||
|
|
||||||
int pidBankIndex = m_txpid->pidBank->currentIndex();
|
int pidBankIndex = m_txpid->pidBank->currentIndex();
|
||||||
|
@ -20,7 +20,8 @@
|
|||||||
Roll+Pitch Attitude.Kp, Roll+Pitch Attitude.Ki, Roll+Pitch Attitude.ILimit, Roll+Pitch Attitude.Resp,
|
Roll+Pitch Attitude.Kp, Roll+Pitch Attitude.Ki, Roll+Pitch Attitude.ILimit, Roll+Pitch Attitude.Resp,
|
||||||
Yaw Attitude.Kp, Yaw Attitude.Ki, Yaw Attitude.ILimit, Yaw Attitude.Resp,
|
Yaw Attitude.Kp, Yaw Attitude.Ki, Yaw Attitude.ILimit, Yaw Attitude.Resp,
|
||||||
Roll.Expo, Pitch.Expo, Roll+Pitch.Expo, Yaw.Expo,
|
Roll.Expo, Pitch.Expo, Roll+Pitch.Expo, Yaw.Expo,
|
||||||
GyroTau,AcroPlusFactor,Altitude Pos.Kp,Altitude Velocity.Kp,Altitude Velocity.Ki,Altitude Velocity.Kd,Altitude Velocity.Beta"
|
GyroTau,AcroPlusFactor,Altitude Pos.Kp,Altitude Velocity.Kp,Altitude Velocity.Ki,Altitude Velocity.Kd,Altitude Velocity.Beta,
|
||||||
|
AccelTau, AccelKp, AccelKi"
|
||||||
defaultvalue="Disabled"/>
|
defaultvalue="Disabled"/>
|
||||||
<field name="MinPID" units="" type="float" elementnames="Instance1,Instance2,Instance3" defaultvalue="0"/>
|
<field name="MinPID" units="" type="float" elementnames="Instance1,Instance2,Instance3" defaultvalue="0"/>
|
||||||
<field name="MaxPID" units="" type="float" elementnames="Instance1,Instance2,Instance3" defaultvalue="0"/>
|
<field name="MaxPID" units="" type="float" elementnames="Instance1,Instance2,Instance3" defaultvalue="0"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user