From 0bb5bca5a7c5524bc5ca976bedd2f885ac74634f Mon Sep 17 00:00:00 2001 From: Hans Christian Olaussen <41271048+klutvott123@users.noreply.github.com> Date: Wed, 13 Apr 2022 21:08:29 +0200 Subject: [PATCH] Fix READY_BEEP --- src/main/io/gps.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/io/gps.c b/src/main/io/gps.c index b5a9871c93..a830e92f11 100644 --- a/src/main/io/gps.c +++ b/src/main/io/gps.c @@ -43,6 +43,7 @@ #include "drivers/light_led.h" #include "drivers/time.h" +#include "io/beeper.h" #include "io/dashboard.h" #include "io/gps.h" #include "io/serial.h" @@ -872,11 +873,26 @@ void gpsUpdate(timeUs_t currentTimeUs) if (!ARMING_FLAG(ARMED) && !gpsConfig()->gps_set_home_point_once) { DISABLE_STATE(GPS_FIX_HOME); } + + uint8_t minSats = 5; + #if defined(USE_GPS_RESCUE) if (gpsRescueIsConfigured()) { updateGPSRescueState(); + minSats = gpsRescueConfig()->minSats; } #endif + + static bool hasFix = false; + if (STATE(GPS_FIX)) { + if (gpsIsHealthy() && gpsSol.numSat >= minSats && !hasFix) { + // ready beep sequence on fix or requirements for gps rescue met. + beeper(BEEPER_READY_BEEP); + hasFix = true; + } + } else { + hasFix = false; + } } static void gpsNewData(uint16_t c)