From 7fdc2cc3f9a3b3360be8426887bd1672ab35dc89 Mon Sep 17 00:00:00 2001 From: Armel FAUVEAU Date: Mon, 23 Sep 2024 20:10:40 +0200 Subject: [PATCH] Improve ScnRev - scan resume mode --- app/app.c | 26 ++++++++++++++++++++++---- app/chFrScanner.c | 18 ++++++++++++++++-- app/menu.c | 2 +- settings.c | 2 +- ui/menu.c | 18 ++++++------------ ui/menu.h | 2 +- 6 files changed, 47 insertions(+), 21 deletions(-) diff --git a/app/app.c b/app/app.c index a63ba0f..a0c364a 100644 --- a/app/app.c +++ b/app/app.c @@ -398,6 +398,18 @@ Skip: } */ + if(gEeprom.SCAN_RESUME_MODE < 2) + { + gScanPauseDelayIn_10ms = scan_pause_delay_in_6_10ms + (scan_pause_delay_in_6_10ms * 24 * gEeprom.SCAN_RESUME_MODE); + gScheduleScanListen = false; + + } + else if(gEeprom.SCAN_RESUME_MODE == 2) + { + CHFRSCANNER_Stop(); + } + + /* switch (gEeprom.SCAN_RESUME_MODE) { case 0: @@ -405,14 +417,20 @@ Skip: gScheduleScanListen = false; break; - case 62: + case 1: + gScanPauseDelayIn_10ms = scan_pause_delay_in_2_10ms * 5; + gScheduleScanListen = false; + break; + + case 26: CHFRSCANNER_Stop(); break; - default: - gScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms * gEeprom.SCAN_RESUME_MODE; - break; + //default: + // gScanPauseDelayIn_10ms = scan_pause_delay_in_5_10ms * (gEeprom.SCAN_RESUME_MODE - 1) * 5; + // break; } + */ } break; diff --git a/app/chFrScanner.c b/app/chFrScanner.c index 46ffb20..c7966f5 100644 --- a/app/chFrScanner.c +++ b/app/chFrScanner.c @@ -102,11 +102,24 @@ void CHFRSCANNER_ContinueScanning(void) void CHFRSCANNER_Found(void) { - if(gEeprom.SCAN_RESUME_MODE > 0 && gEeprom.SCAN_RESUME_MODE < 61) + if (gEeprom.SCAN_RESUME_MODE > 2) { + if (!gScanPauseMode) { + gScanPauseDelayIn_10ms = scan_pause_delay_in_5_10ms * (gEeprom.SCAN_RESUME_MODE - 2) * 5; + gScanPauseMode = true; + } + } else { + gScanPauseDelayIn_10ms = 0; + } + + // gScheduleScanListen is always false... + gScheduleScanListen = false; + + /* + if(gEeprom.SCAN_RESUME_MODE > 1 && gEeprom.SCAN_RESUME_MODE < 26) { if (!gScanPauseMode) { - gScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms * gEeprom.SCAN_RESUME_MODE; + gScanPauseDelayIn_10ms = scan_pause_delay_in_5_10ms * (gEeprom.SCAN_RESUME_MODE - 1) * 5; gScheduleScanListen = false; gScanPauseMode = true; } @@ -116,6 +129,7 @@ void CHFRSCANNER_Found(void) gScanPauseDelayIn_10ms = 0; gScheduleScanListen = false; } + */ /* switch (gEeprom.SCAN_RESUME_MODE) diff --git a/app/menu.c b/app/menu.c index 237a2b1..c440677 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 = 61; + *pMax = 26; break; case MENU_ROGER: diff --git a/settings.c b/settings.c index 33cf4c9..129eb58 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] < 62) ? Data[5] : 1; + gEeprom.SCAN_RESUME_MODE = (Data[5] < 27) ? 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/ui/menu.c b/ui/menu.c index d689484..ae94141 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -227,14 +227,12 @@ const char* const gSubMenu_RXMode[] = }; #endif -/* -const char gSubMenu_SC_REV[][8] = +const char gSubMenu_SC_REV[][13] = { - "TIMEOUT", - "CARRIER", + "CARRIER\nFAST", + "CARRIER\nSLOW", "STOP" }; -*/ const char* const gSubMenu_MDF[] = { @@ -828,17 +826,13 @@ void UI_DisplayMenu(void) #endif case MENU_SC_REV: - if(gSubMenuSelection == 0) + if(gSubMenuSelection < 3) { - sprintf(String, "%s", "CARRIER"); - } - else if(gSubMenuSelection < 61) - { - sprintf(String, "%02dm:%02ds", (((gSubMenuSelection) * 5) / 60), (((gSubMenuSelection) * 5) % 60)); + strcpy(String, gSubMenu_SC_REV[gSubMenuSelection]); } else { - sprintf(String, "%s", "STOP"); + sprintf(String, "TIMEOUT\n%02dm:%02ds", (((gSubMenuSelection - 2) * 5) / 60), (((gSubMenuSelection - 2) * 5) % 60)); } break; diff --git a/ui/menu.h b/ui/menu.h index a16df43..4b4ac43 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -160,7 +160,7 @@ extern const char* const gSubMenu_RXMode[4]; #ifdef ENABLE_VOICE extern const char gSubMenu_VOICE[3][4]; #endif -extern const char gSubMenu_SC_REV[3][8]; +extern const char gSubMenu_SC_REV[3][13]; extern const char* const gSubMenu_MDF[4]; #ifdef ENABLE_ALARM extern const char gSubMenu_AL_MOD[2][5];