From 954e6004487b200bd50685a1eba4c5391eb90b74 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Sun, 21 Dec 2025 21:59:29 -0600 Subject: [PATCH] Throttle GPS initial position warning --- src/modules/PositionModule.cpp | 3 ++- src/modules/PositionModule.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/PositionModule.cpp b/src/modules/PositionModule.cpp index 0fa09df74..0bc03d2fc 100644 --- a/src/modules/PositionModule.cpp +++ b/src/modules/PositionModule.cpp @@ -428,8 +428,9 @@ int32_t PositionModule::runOnce() bool waitingForFreshPosition = (lastGpsSend == 0) && !config.position.fixed_position && !nodeDB->hasLocalPositionSinceBoot(); if (lastGpsSend == 0 || msSinceLastSend >= intervalMs) { - if (waitingForFreshPosition) { + if (waitingForFreshPosition && !Throttle::isWithinTimespanMs(lastWarn, ONE_MINUTE_MS)) { LOG_DEBUG("Skip initial position send; no fresh position since boot"); + lastWarn = now; } else if (nodeDB->hasValidPosition(node)) { lastGpsSend = now; diff --git a/src/modules/PositionModule.h b/src/modules/PositionModule.h index 4a2415058..57b6689be 100644 --- a/src/modules/PositionModule.h +++ b/src/modules/PositionModule.h @@ -64,6 +64,7 @@ class PositionModule : public ProtobufModule, private concu bool hasQualityTimesource(); bool hasGPS(); uint32_t lastSentReply = 0; // Last time we sent a position reply (used for reply throttling only) + uint32_t lastWarn = 0; // for throttling initial position warning #if USERPREFS_EVENT_MODE // In event mode we want to prevent excessive position broadcasts