mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-25 17:25:20 +03:00
Shared altitude control parameters (#13884)
This commit is contained in:
parent
7156dc84a3
commit
16c157e840
28 changed files with 383 additions and 273 deletions
|
@ -34,6 +34,8 @@ extern "C" {
|
|||
#include "flight/failsafe.h"
|
||||
#include "flight/imu.h"
|
||||
#include "flight/position.h"
|
||||
#include "flight/position_control.h"
|
||||
#include "flight/pid.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
|
||||
|
@ -41,6 +43,7 @@ extern "C" {
|
|||
|
||||
PG_REGISTER(accelerometerConfig_t, accelerometerConfig, PG_ACCELEROMETER_CONFIG, 0);
|
||||
PG_REGISTER(positionConfig_t, positionConfig, PG_POSITION, 0);
|
||||
PG_REGISTER(positionControlConfig_t, positionControlConfig, PG_POSITION_CONTROL, 0);
|
||||
PG_REGISTER(altholdConfig_t, altholdConfig, PG_ALTHOLD_CONFIG, 0);
|
||||
|
||||
extern altHoldState_t altHoldState;
|
||||
|
@ -97,6 +100,13 @@ TEST(AltholdUnittest, altHoldTransitionsTestUnfinishedExitEnter)
|
|||
extern "C" {
|
||||
acc_t acc;
|
||||
|
||||
pidCoefficient_t testAltitudePidCoeffs = {15.0f, 15.0f, 15.1f, 15.0f};
|
||||
const pidCoefficient_t *getAltitudePidCoeffs(void) {
|
||||
return &testAltitudePidCoeffs;
|
||||
}
|
||||
float getAltitudeCm(void) { return 0.0f;}
|
||||
float getAltitudeDerivative(void) { return 0.0f;}
|
||||
|
||||
void pt2FilterInit(pt2Filter_t *altHoldDeltaLpf, float) {
|
||||
UNUSED(altHoldDeltaLpf);
|
||||
}
|
||||
|
@ -109,8 +119,6 @@ extern "C" {
|
|||
}
|
||||
|
||||
bool isAltitudeAvailable(void) { return true; }
|
||||
float getAltitude(void) { return 0.0f; }
|
||||
bool isAltitudeLow(void) { return true; }
|
||||
float getCosTiltAngle(void) { return 0.0f; }
|
||||
float rcCommand[4];
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ extern "C" {
|
|||
#include "flight/mixer.h"
|
||||
#include "flight/pid.h"
|
||||
#include "flight/position.h"
|
||||
#include "flight/position_control.h"
|
||||
#include "flight/servos.h"
|
||||
|
||||
#include "io/beeper.h"
|
||||
|
@ -77,6 +78,7 @@ extern "C" {
|
|||
PG_REGISTER(gpsConfig_t, gpsConfig, PG_GPS_CONFIG, 0);
|
||||
PG_REGISTER(gpsRescueConfig_t, gpsRescueConfig, PG_GPS_RESCUE, 0);
|
||||
PG_REGISTER(positionConfig_t, positionConfig, PG_POSITION, 0);
|
||||
PG_REGISTER(positionControlConfig_t, positionControlConfig, PG_POSITION_CONTROL, 0);
|
||||
|
||||
float rcData[MAX_SUPPORTED_RC_CHANNEL_COUNT];
|
||||
uint16_t averageSystemLoadPercent = 0;
|
||||
|
@ -1134,17 +1136,17 @@ extern "C" {
|
|||
bool isMotorProtocolEnabled(void) { return true; }
|
||||
void pinioBoxTaskControl(void) {}
|
||||
void schedulerSetNextStateTime(timeDelta_t) {}
|
||||
float getAltitude(void) { return 3000.0f; }
|
||||
|
||||
pidCoefficient_t testAltitudePidCoeffs = {15.0f, 15.0f, 15.1f, 15.0f};
|
||||
const pidCoefficient_t *getAltitudePidCoeffs(void) {
|
||||
return &testAltitudePidCoeffs;
|
||||
}
|
||||
float getAltitudeCm(void) {return 0.0f;}
|
||||
float getAltitudeDerivative(void) {return 0.0f;}
|
||||
|
||||
float pt1FilterGain(float, float) { return 0.5f; }
|
||||
float pt2FilterGain(float, float) { return 0.1f; }
|
||||
float pt3FilterGain(float, float) { return 0.1f; }
|
||||
void pt2FilterInit(pt2Filter_t *throttleDLpf, float) {
|
||||
UNUSED(throttleDLpf);
|
||||
}
|
||||
float pt2FilterApply(pt2Filter_t *throttleDLpf, float) {
|
||||
UNUSED(throttleDLpf);
|
||||
return 0.0f;
|
||||
}
|
||||
void pt1FilterInit(pt1Filter_t *velocityDLpf, float) {
|
||||
UNUSED(velocityDLpf);
|
||||
}
|
||||
|
@ -1161,6 +1163,6 @@ extern "C" {
|
|||
}
|
||||
void getRcDeflectionAbs(void) {}
|
||||
uint32_t getCpuPercentageLate(void) { return 0; }
|
||||
bool crashFlipSuccessful(void) {return false; }
|
||||
bool isAltitudeLow(void) {return false; }
|
||||
bool crashFlipSuccessful(void) { return false; }
|
||||
bool isBelowLandingAltitude(void) { return false; };
|
||||
}
|
||||
|
|
|
@ -46,8 +46,8 @@ extern "C" {
|
|||
#include "flight/pid.h"
|
||||
#include "flight/imu.h"
|
||||
#include "flight/position.h"
|
||||
#include "flight/position_control.h"
|
||||
|
||||
|
||||
#include "io/gps.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
|
@ -74,6 +74,7 @@ extern "C" {
|
|||
PG_REGISTER(rcControlsConfig_t, rcControlsConfig, PG_RC_CONTROLS_CONFIG, 0);
|
||||
PG_REGISTER(barometerConfig_t, barometerConfig, PG_BAROMETER_CONFIG, 0);
|
||||
PG_REGISTER(gpsConfig_t, gpsConfig, PG_GPS_CONFIG, 0);
|
||||
PG_REGISTER(positionControlConfig_t, positionControlConfig, PG_POSITION_CONTROL, 0);
|
||||
|
||||
PG_RESET_TEMPLATE(featureConfig_t, featureConfig,
|
||||
.enabledFeatures = 0
|
||||
|
@ -438,7 +439,6 @@ extern "C" {
|
|||
float getBaroAltitude(void) { return 3000.0f; }
|
||||
float gpsRescueGetImuYawCogGain(void) { return 1.0f; }
|
||||
float getRcDeflectionAbs(int) { return 0.0f; }
|
||||
|
||||
void pt2FilterInit(pt2Filter_t *baroDerivativeLpf, float) {
|
||||
UNUSED(baroDerivativeLpf);
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ extern "C" {
|
|||
float mixerGetRcThrottle() { return fabsf(simulatedMixerGetRcThrottle); }
|
||||
|
||||
|
||||
bool isAltitudeLow(void) { return false; }
|
||||
bool isBelowLandingAltitude(void) { return false; }
|
||||
|
||||
void systemBeep(bool) { }
|
||||
bool gyroOverflowDetected(void) { return false; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue