mirror of
https://github.com/armel/uv-k1-k5v3-firmware-custom.git
synced 2026-10-02 03:15:37 +00:00
Fix Fox Hunt: disable SetOff auto power-off in this mode
This commit is contained in:
1 parent
0d69388e6d
commit
559460739e
1 file changed
+13
-18
+13
-18
@@ -656,8 +656,14 @@ static void FOXHUNT_TickDelay(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Idle housekeeping the foreground scheduler normally does but this modal loop
|
// Idle housekeeping the foreground scheduler normally does but this modal loop
|
||||||
// bypasses: backlight timeout (BLTime) and, while hunting, the sleep auto power
|
// bypasses: the periodic battery sample, the config save and the backlight
|
||||||
// off. Cadenced on the 500 ms system tick.
|
// timeout (BLTime). Cadenced on the 500 ms system tick.
|
||||||
|
//
|
||||||
|
// The SetOff auto power-off is deliberately NOT run here. Fox Hunt is an active,
|
||||||
|
// attended mode that receives a signal continuously; the main loop never sleeps
|
||||||
|
// while receiving (it re-arms gSleepModeCountdown_500ms on RX), so the old
|
||||||
|
// hand-back-to-main scheme just ejected the user to the VFO instead of powering
|
||||||
|
// off. Both hunt and beacon therefore ignore SetOff and run until EXIT.
|
||||||
static void FOXHUNT_IdleHousekeeping(void)
|
static void FOXHUNT_IdleHousekeeping(void)
|
||||||
{
|
{
|
||||||
if (!gNextTimeslice_500ms)
|
if (!gNextTimeslice_500ms)
|
||||||
@@ -679,22 +685,11 @@ static void FOXHUNT_IdleHousekeeping(void)
|
|||||||
// just a clean EXIT). No-op when nothing changed.
|
// just a clean EXIT). No-op when nothing changed.
|
||||||
FOXHUNT_SaveConfig();
|
FOXHUNT_SaveConfig();
|
||||||
|
|
||||||
// Backlight timeout: switch it off when the countdown expires (both modes).
|
// Backlight timeout: at BLTime expiry drop from BLMax to BLMin (both modes).
|
||||||
if (gBacklightCountdown_500ms > 0
|
if (gBacklightCountdown_500ms > 0
|
||||||
&& gEeprom.BACKLIGHT_TIME < 61
|
&& gEeprom.BACKLIGHT_TIME < 61
|
||||||
&& --gBacklightCountdown_500ms == 0)
|
&& --gBacklightCountdown_500ms == 0)
|
||||||
BACKLIGHT_TurnOff();
|
BACKLIGHT_TurnOff();
|
||||||
|
|
||||||
#ifdef ENABLE_FEAT_F4HWN_SLEEP
|
|
||||||
// Auto power-off: only while hunting (a running beacon must stay alive). Hand
|
|
||||||
// back to the main loop just before expiry so it performs the actual sleep.
|
|
||||||
if (!foxBeacon && gSetting_set_off != 0 && gSleepModeCountdown_500ms > 0) {
|
|
||||||
if (gSleepModeCountdown_500ms > 1)
|
|
||||||
gSleepModeCountdown_500ms--;
|
|
||||||
else
|
|
||||||
foxRunning = false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FOXHUNT_HandleKeys(void)
|
static void FOXHUNT_HandleKeys(void)
|
||||||
@@ -1217,7 +1212,7 @@ static void FOXHUNT_BeaconTick(void)
|
|||||||
beaconPhaseTx = true; // next tick transmits
|
beaconPhaseTx = true; // next tick transmits
|
||||||
}
|
}
|
||||||
|
|
||||||
FOXHUNT_IdleHousekeeping(); // backlight timeout (no sleep while beaconing)
|
FOXHUNT_IdleHousekeeping(); // battery sample + save + backlight timeout
|
||||||
FOXHUNT_TickDelay(); // tick delay + smooth backlight fade
|
FOXHUNT_TickDelay(); // tick delay + smooth backlight fade
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1390,12 +1385,12 @@ void APP_RunFoxHunt(void)
|
|||||||
: BK4819_AF_MUTE);
|
: BK4819_AF_MUTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
FOXHUNT_IdleHousekeeping(); // backlight timeout / sleep
|
FOXHUNT_IdleHousekeeping(); // battery sample + save + backlight timeout
|
||||||
FOXHUNT_TickDelay(); // tick delay + smooth backlight fade
|
FOXHUNT_TickDelay(); // tick delay + smooth backlight fade
|
||||||
}
|
}
|
||||||
|
|
||||||
// Persist the session's settings so they survive a power cycle (covers EXIT
|
// Persist the session's settings on the way out (EXIT clears foxRunning) so
|
||||||
// and the sleep auto power-off, both of which just clear foxRunning).
|
// they survive a later power cycle.
|
||||||
FOXHUNT_SaveConfig();
|
FOXHUNT_SaveConfig();
|
||||||
|
|
||||||
gWasFKeyPressed = false; // don't leak a pending reverse-step arm to the main screen
|
gWasFKeyPressed = false; // don't leak a pending reverse-step arm to the main screen
|
||||||
|
|||||||
Reference in new issue
Block a user