From 4c8d068c69b9e37f75022eee6f9ffee07b1b4d5d Mon Sep 17 00:00:00 2001 From: frogmane <7685285+xznhj8129@users.noreply.github.com> Date: Wed, 25 Feb 2026 20:59:46 -0500 Subject: [PATCH 1/2] change def guard and clean MSP decode --- src/main/fc/fc_msp.c | 7 ++++--- src/main/telemetry/mavlink.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index 53b59f5d490..cf8038252ec 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -4218,14 +4218,15 @@ bool mspFCProcessInOutCommand(uint16_t cmdMSP, sbuf_t *dst, sbuf_t *src, mspResu break; #endif -#ifdef USE_BARO +#ifdef USE_GPS case MSP2_INAV_SET_ALT_TARGET: if (dataSize != (sizeof(int32_t) + sizeof(uint8_t))) { *ret = MSP_RESULT_ERROR; break; } - - if (navigationSetAltitudeTargetWithDatum((geoAltitudeDatumFlag_e)sbufReadU8(src), (int32_t)sbufReadU32(src))) { + uint8_t setAltDatum = (geoAltitudeDatumFlag_e)sbufReadU8(src); + int32_t setNewAlt = sbufReadU32(src); + if (navigationSetAltitudeTargetWithDatum(setAltDatum, setNewAlt)) { *ret = MSP_RESULT_ACK; break; } diff --git a/src/main/telemetry/mavlink.c b/src/main/telemetry/mavlink.c index 60f6aed67c3..0e6abe146b8 100644 --- a/src/main/telemetry/mavlink.c +++ b/src/main/telemetry/mavlink.c @@ -1215,7 +1215,7 @@ static bool handleIncoming_COMMAND_INT(void) mavlinkSendMessage(); } } else { -#ifdef USE_BARO +#ifdef USE_GPS if (msg.command == MAV_CMD_DO_CHANGE_ALTITUDE) { const float altitudeMeters = msg.param1; const uint8_t frame = (uint8_t)msg.frame; From 6523701bdc248ce4fff6bc83f32394742749fbaa Mon Sep 17 00:00:00 2001 From: frogmane <7685285+xznhj8129@users.noreply.github.com> Date: Fri, 10 Apr 2026 22:51:01 -0400 Subject: [PATCH 2/2] Refine set alt acceptance policy --- src/main/navigation/navigation.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/navigation/navigation.c b/src/main/navigation/navigation.c index a3752233149..89bf5421ab0 100644 --- a/src/main/navigation/navigation.c +++ b/src/main/navigation/navigation.c @@ -5204,7 +5204,14 @@ bool navigationIsControllingAltitude(void) { bool navigationSetAltitudeTargetWithDatum(geoAltitudeDatumFlag_e datumFlag, int32_t targetAltitudeCm) { const navigationFSMStateFlags_t stateFlags = navGetCurrentStateFlags(); - if (!(stateFlags & NAV_CTL_ALT) || (stateFlags & NAV_CTL_LAND) || navigationIsExecutingAnEmergencyLanding() || posControl.flags.estAltStatus == EST_NONE) { + if (!(stateFlags & NAV_CTL_ALT) || + (stateFlags & NAV_CTL_LAND) || + navigationIsExecutingAnEmergencyLanding() || + posControl.flags.estAltStatus == EST_NONE || + (stateFlags & NAV_MIXERAT) || + FLIGHT_MODE(NAV_FW_AUTOLAND) || + FLIGHT_MODE(NAV_SEND_TO) || + ((stateFlags & NAV_AUTO_RTH) && posControl.navState != NAV_STATE_RTH_HEAD_HOME)) { return false; }