1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 03:20:00 +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

@ -89,6 +89,7 @@
#include "flight/pid.h"
#include "flight/pid_init.h"
#include "flight/position.h"
#include "flight/position_control.h"
#include "flight/rpm_filter.h"
#include "flight/servos.h"
@ -1545,7 +1546,7 @@ case MSP_NAME:
sbufWriteU16(dst, gpsRescueConfig()->groundSpeedCmS);
sbufWriteU16(dst, gpsRescueConfig()->throttleMin);
sbufWriteU16(dst, gpsRescueConfig()->throttleMax);
sbufWriteU16(dst, positionConfig()->hover_throttle);
sbufWriteU16(dst, positionControlConfig()->hover_throttle);
sbufWriteU8(dst, gpsRescueConfig()->sanityChecks);
sbufWriteU8(dst, gpsRescueConfig()->minSats);
@ -1561,9 +1562,10 @@ case MSP_NAME:
break;
case MSP_GPS_RESCUE_PIDS:
sbufWriteU16(dst, gpsRescueConfig()->throttleP);
sbufWriteU16(dst, gpsRescueConfig()->throttleI);
sbufWriteU16(dst, gpsRescueConfig()->throttleD);
sbufWriteU16(dst, positionControlConfig()->altitude_P);
sbufWriteU16(dst, positionControlConfig()->altitude_I);
sbufWriteU16(dst, positionControlConfig()->altitude_D);
// altitude_F not implemented yet
sbufWriteU16(dst, gpsRescueConfig()->velP);
sbufWriteU16(dst, gpsRescueConfig()->velI);
sbufWriteU16(dst, gpsRescueConfig()->velD);
@ -2879,7 +2881,7 @@ static mspResult_e mspProcessInCommand(mspDescriptor_t srcDesc, int16_t cmdMSP,
gpsRescueConfigMutable()->groundSpeedCmS = sbufReadU16(src);
gpsRescueConfigMutable()->throttleMin = sbufReadU16(src);
gpsRescueConfigMutable()->throttleMax = sbufReadU16(src);
positionConfigMutable()->hover_throttle = sbufReadU16(src);
positionControlConfigMutable()->hover_throttle = sbufReadU16(src);
gpsRescueConfigMutable()->sanityChecks = sbufReadU8(src);
gpsRescueConfigMutable()->minSats = sbufReadU8(src);
if (sbufBytesRemaining(src) >= 6) {
@ -2900,9 +2902,10 @@ static mspResult_e mspProcessInCommand(mspDescriptor_t srcDesc, int16_t cmdMSP,
break;
case MSP_SET_GPS_RESCUE_PIDS:
gpsRescueConfigMutable()->throttleP = sbufReadU16(src);
gpsRescueConfigMutable()->throttleI = sbufReadU16(src);
gpsRescueConfigMutable()->throttleD = sbufReadU16(src);
positionControlConfigMutable()->altitude_P = sbufReadU16(src);
positionControlConfigMutable()->altitude_I = sbufReadU16(src);
positionControlConfigMutable()->altitude_D = sbufReadU16(src);
// altitude_F not included in msp yet
gpsRescueConfigMutable()->velP = sbufReadU16(src);
gpsRescueConfigMutable()->velI = sbufReadU16(src);
gpsRescueConfigMutable()->velD = sbufReadU16(src);