From 5bfe710bb914fdb219e7d4c6d328542aa9618db2 Mon Sep 17 00:00:00 2001 From: Armel FAUVEAU Date: Sun, 22 Sep 2024 05:07:04 +0200 Subject: [PATCH] Improve ScnRev - scan resume mode --- app/app.c | 19 +++++++++++++++++++ app/chFrScanner.c | 17 +++++++++++++++++ app/menu.c | 2 +- settings.c | 2 +- settings.h | 2 ++ ui/menu.c | 15 ++++++++++++++- 6 files changed, 54 insertions(+), 3 deletions(-) diff --git a/app/app.c b/app/app.c index 277b885..a63ba0f 100644 --- a/app/app.c +++ b/app/app.c @@ -380,6 +380,8 @@ Skip: if (gScanStateDir != SCAN_OFF) { + + /* switch (gEeprom.SCAN_RESUME_MODE) { case SCAN_RESUME_TO: @@ -394,6 +396,23 @@ Skip: CHFRSCANNER_Stop(); break; } + */ + + switch (gEeprom.SCAN_RESUME_MODE) + { + case 0: + gScanPauseDelayIn_10ms = scan_pause_delay_in_6_10ms; + gScheduleScanListen = false; + break; + + case 62: + CHFRSCANNER_Stop(); + break; + + default: + gScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms * gEeprom.SCAN_RESUME_MODE; + break; + } } break; diff --git a/app/chFrScanner.c b/app/chFrScanner.c index bc00c1f..46ffb20 100644 --- a/app/chFrScanner.c +++ b/app/chFrScanner.c @@ -102,6 +102,22 @@ void CHFRSCANNER_ContinueScanning(void) void CHFRSCANNER_Found(void) { + if(gEeprom.SCAN_RESUME_MODE > 0 && gEeprom.SCAN_RESUME_MODE < 61) + { + if (!gScanPauseMode) + { + gScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms * gEeprom.SCAN_RESUME_MODE; + gScheduleScanListen = false; + gScanPauseMode = true; + } + } + else + { + gScanPauseDelayIn_10ms = 0; + gScheduleScanListen = false; + } + + /* switch (gEeprom.SCAN_RESUME_MODE) { case SCAN_RESUME_TO: @@ -119,6 +135,7 @@ void CHFRSCANNER_Found(void) gScheduleScanListen = false; break; } + */ #ifdef ENABLE_FEAT_F4HWN lastFoundFrqOrChanOld = lastFoundFrqOrChan; diff --git a/app/menu.c b/app/menu.c index 52987c9..237a2b1 100644 --- a/app/menu.c +++ b/app/menu.c @@ -176,7 +176,7 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax) case MENU_SC_REV: //*pMin = 0; - *pMax = ARRAY_SIZE(gSubMenu_SC_REV) - 1; + *pMax = 61; break; case MENU_ROGER: diff --git a/settings.c b/settings.c index 2145b5b..33cf4c9 100644 --- a/settings.c +++ b/settings.c @@ -119,7 +119,7 @@ void SETTINGS_InitEEPROM(void) gEeprom.KEY_1_LONG_PRESS_ACTION = (Data[2] < ACTION_OPT_LEN) ? Data[2] : ACTION_OPT_NONE; gEeprom.KEY_2_SHORT_PRESS_ACTION = (Data[3] < ACTION_OPT_LEN) ? Data[3] : ACTION_OPT_SCAN; gEeprom.KEY_2_LONG_PRESS_ACTION = (Data[4] < ACTION_OPT_LEN) ? Data[4] : ACTION_OPT_NONE; - gEeprom.SCAN_RESUME_MODE = (Data[5] < 3) ? Data[5] : SCAN_RESUME_CO; + gEeprom.SCAN_RESUME_MODE = (Data[5] < 62) ? Data[5] : 1; gEeprom.AUTO_KEYPAD_LOCK = (Data[6] < 2) ? Data[6] : false; #ifdef ENABLE_FEAT_F4HWN gEeprom.POWER_ON_DISPLAY_MODE = (Data[7] < 6) ? Data[7] : POWER_ON_DISPLAY_MODE_VOLTAGE; diff --git a/settings.h b/settings.h index 410a857..cd6c365 100644 --- a/settings.h +++ b/settings.h @@ -59,11 +59,13 @@ enum TxLockModes_t { F_LOCK_LEN }; +/* enum { SCAN_RESUME_TO = 0, SCAN_RESUME_CO, SCAN_RESUME_SE }; +*/ enum { CROSS_BAND_OFF = 0, diff --git a/ui/menu.c b/ui/menu.c index e2a8b78..d689484 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -227,12 +227,14 @@ const char* const gSubMenu_RXMode[] = }; #endif +/* const char gSubMenu_SC_REV[][8] = { "TIMEOUT", "CARRIER", "STOP" }; +*/ const char* const gSubMenu_MDF[] = { @@ -826,7 +828,18 @@ void UI_DisplayMenu(void) #endif case MENU_SC_REV: - strcpy(String, gSubMenu_SC_REV[gSubMenuSelection]); + if(gSubMenuSelection == 0) + { + sprintf(String, "%s", "CARRIER"); + } + else if(gSubMenuSelection < 61) + { + sprintf(String, "%02dm:%02ds", (((gSubMenuSelection) * 5) / 60), (((gSubMenuSelection) * 5) % 60)); + } + else + { + sprintf(String, "%s", "STOP"); + } break; case MENU_MDF: