1
0
Fork 0
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:
ctzsnooze 2024-10-05 16:32:50 +10:00 committed by GitHub
parent 7156dc84a3
commit 16c157e840
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 383 additions and 273 deletions

View file

@ -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];

View file

@ -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; };
}

View file

@ -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);
}

View file

@ -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; }