From 06c7d79b4b9c5361d72253b7aafb84ae96b20039 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 7 Oct 2023 15:12:53 +0100 Subject: [PATCH] Fix F+4 and F+* scanning --- Makefile | 4 ++ README.md | 1 + app/app.c | 87 ++++++++++++------------ app/main.c | 2 - app/scanner.c | 157 +++++++++++++++++++++++++++++--------------- app/scanner.h | 17 +++-- firmware.bin | Bin 53784 -> 53740 bytes firmware.packed.bin | Bin 53802 -> 53758 bytes frequencies.c | 8 +-- frequencies.h | 18 +++-- ui/menu.c | 4 +- ui/scanner.c | 65 +++++++++--------- 12 files changed, 209 insertions(+), 154 deletions(-) diff --git a/Makefile b/Makefile index 33133a5..d13ab3f 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ ENABLE_BIG_FREQ := 0 ENABLE_SMALL_BOLD := 1 ENABLE_KEEP_MEM_NAME := 1 ENABLE_WIDE_RX := 1 +ENABLE_1250HZ_STEP := 1 ENABLE_TX_WHEN_AM := 0 ENABLE_F_CAL_MENU := 0 ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 @@ -254,6 +255,9 @@ endif ifeq ($(ENABLE_WIDE_RX),1) CFLAGS += -DENABLE_WIDE_RX endif +ifeq ($(ENABLE_1250HZ_STEP),1) + CFLAGS += -DENABLE_1250HZ_STEP +endif ifeq ($(ENABLE_TX_WHEN_AM),1) CFLAGS += -DENABLE_TX_WHEN_AM endif diff --git a/README.md b/README.md index c3b7a1a..a3ffcf2 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ ENABLE_BIG_FREQ := 0 big font frequencies (like original QS ENABLE_SMALL_BOLD := 1 bold channel name/no. (when name + freq channel display mode) ENABLE_KEEP_MEM_NAME := 1 maintain channel name when (re)saving memory channel ENABLE_WIDE_RX := 1 full 18MHz to 1300MHz RX (though front-end/PA not designed for full range) +ENABLE_1250HZ_STEP := 1 enable smaller 1.25kHz frequency steps ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set to AM ENABLE_F_CAL_MENU := 0 enable/disable the radios hidden frequency calibration menu ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather than QS's own 55Hz tone method diff --git a/app/app.c b/app/app.c index 8578416..55604fa 100644 --- a/app/app.c +++ b/app/app.c @@ -15,6 +15,7 @@ */ #include +#include // abs() #include "app/action.h" #ifdef ENABLE_AIRCOPY @@ -657,7 +658,7 @@ static void MR_NextChannel(void) { case SCAN_NEXT_CHAN_SCANLIST1: prev_mr_chan = gNextMrChannel; - + if (chan1 >= 0) { if (RADIO_CheckValidChannel(chan1, false, 0)) @@ -667,7 +668,7 @@ static void MR_NextChannel(void) break; } } - + case SCAN_NEXT_CHAN_SCANLIST2: if (chan2 >= 0) { @@ -678,7 +679,7 @@ static void MR_NextChannel(void) break; } } - + // this bit doesn't yet work if the other VFO is a frequency case SCAN_NEXT_CHAN_DUAL_WATCH: // dual watch is enabled - include the other VFO in the scan @@ -710,11 +711,11 @@ static void MR_NextChannel(void) chan = RADIO_FindNextChannel(gNextMrChannel + gScanStateDir, gScanStateDir, (gEeprom.SCAN_LIST_DEFAULT < 2) ? true : false, gEeprom.SCAN_LIST_DEFAULT); if (chan == 0xFF) { // no valid channel found - + chan = MR_CHANNEL_FIRST; // return; } - + gNextMrChannel = chan; } @@ -873,7 +874,7 @@ void APP_CheckRadioInterrupts(void) { g_VOX_Lost = true; gVoxPauseCountdown = 10; - + if (gEeprom.VOX_SWITCH) { if (gCurrentFunction == FUNCTION_POWER_SAVE && !gRxIdleMode) @@ -881,12 +882,12 @@ void APP_CheckRadioInterrupts(void) gPowerSave_10ms = power_save2_10ms; gPowerSaveCountdownExpired = 0; } - + if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && (gScheduleDualWatch || gDualWatchCountdown_10ms < dual_watch_count_after_vox_10ms)) { gDualWatchCountdown_10ms = dual_watch_count_after_vox_10ms; gScheduleDualWatch = false; - + // let the user see DW is not active gDualWatchActive = false; gUpdateStatus = true; @@ -959,7 +960,7 @@ void APP_EndTransmission(void) { if (gSetting_KILLED) return; - + if (gVoxResumeCountdown == 0) { if (gVoxPauseCountdown) @@ -970,18 +971,18 @@ void APP_EndTransmission(void) g_VOX_Lost = false; gVoxPauseCountdown = 0; } - + #ifdef ENABLE_FMRADIO if (gFmRadioMode) return; #endif - + if (gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR) return; - + if (gScanStateDir != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF) return; - + if (gVOX_NoiseDetected) { if (g_VOX_Lost) @@ -989,7 +990,7 @@ void APP_EndTransmission(void) else if (gVoxStopCountdown_10ms == 0) gVOX_NoiseDetected = false; - + if (gCurrentFunction == FUNCTION_TRANSMIT && !gPttIsPressed && !gVOX_NoiseDetected) { if (gFlagEndTransmission) @@ -1000,7 +1001,7 @@ void APP_EndTransmission(void) else { APP_EndTransmission(); - + if (gEeprom.REPEATER_TAIL_TONE_ELIMINATION == 0) { //if (gCurrentFunction != FUNCTION_FOREGROUND) @@ -1009,21 +1010,21 @@ void APP_EndTransmission(void) else gRTTECountdown = gEeprom.REPEATER_TAIL_TONE_ELIMINATION * 10; } - + gUpdateStatus = true; gUpdateDisplay = true; gFlagEndTransmission = false; } return; } - + if (g_VOX_Lost) { gVOX_NoiseDetected = true; - + if (gCurrentFunction == FUNCTION_POWER_SAVE) FUNCTION_Select(FUNCTION_FOREGROUND); - + if (gCurrentFunction != FUNCTION_TRANSMIT && gSerialConfigCountDown_500ms == 0) { gDTMF_ReplyState = DTMF_REPLY_NONE; @@ -1076,7 +1077,7 @@ void APP_Update(void) if (gScreenToDisplay != DISPLAY_SCANNER && gScanStateDir != SCAN_OFF && gScheduleScanListen && !gPttIsPressed) #endif { // scanning - + if (IS_FREQ_CHANNEL(gNextMrChannel)) { if (gCurrentFunction == FUNCTION_INCOMING) @@ -1369,7 +1370,7 @@ void APP_CheckKeys(void) if (gDebounceCounter < key_repeat_delay_10ms) return; - + // key is being held pressed if (gDebounceCounter == key_repeat_delay_10ms) @@ -1455,7 +1456,7 @@ void APP_TimeSlice10ms(void) #ifdef ENABLE_VOX if (gVoxResumeCountdown > 0) gVoxResumeCountdown--; - + if (gVoxPauseCountdown > 0) gVoxPauseCountdown--; #endif @@ -1553,7 +1554,7 @@ void APP_TimeSlice10ms(void) return; } - if (gScannerEditState != 0) + if (gScannerEditState != SCAN_EDIT_STATE_NONE) { APP_CheckKeys(); return; @@ -1576,15 +1577,13 @@ void APP_TimeSlice10ms(void) { const uint32_t step = StepFrequencyTable[gStepSetting]; gScanFrequency = ((Result + (step / 2)) / step) * step; // round to nearest step multiple +// gScanFrequency = (Result / step) * step; // round down } #endif - - if (Delta < 0) - Delta = -Delta; - if (Delta < 100) - gScanHitCount++; - else - gScanHitCount = 0; + + Delta = abs(Delta); + + gScanHitCount = (Delta < 100) ? gScanHitCount + 1 : 0; BK4819_DisableFrequencyScan(); @@ -1730,7 +1729,7 @@ void APP_TimeSlice500ms(void) } } } - + if (gDTMF_RX_live_timeout > 0) { #ifdef ENABLE_RSSI_BAR @@ -1748,7 +1747,7 @@ void APP_TimeSlice500ms(void) } } } - + if (gMenuCountdown > 0) if (--gMenuCountdown == 0) exit_menu = (gScreenToDisplay == DISPLAY_MENU); // exit menu mode @@ -1872,7 +1871,7 @@ void APP_TimeSlice500ms(void) { GUI_DisplayType_t disp = DISPLAY_INVALID; - + #ifdef ENABLE_FMRADIO if (gFmRadioMode && gCurrentFunction != FUNCTION_RECEIVE && @@ -1882,7 +1881,7 @@ void APP_TimeSlice500ms(void) disp = DISPLAY_FM; } #endif - + if (disp == DISPLAY_INVALID) { #ifndef ENABLE_CODE_SCAN_TIMEOUT @@ -1890,7 +1889,7 @@ void APP_TimeSlice500ms(void) #endif disp = DISPLAY_MAIN; } - + if (disp != DISPLAY_INVALID) GUI_SelectNextDisplay(disp); } @@ -1972,7 +1971,9 @@ void APP_TimeSlice500ms(void) } } - if (gScreenToDisplay == DISPLAY_SCANNER && gScannerEditState == 0 && gScanCssState < SCAN_CSS_STATE_FOUND) + if (gScreenToDisplay == DISPLAY_SCANNER && + gScannerEditState == SCAN_EDIT_STATE_NONE && + gScanCssState < SCAN_CSS_STATE_FOUND) { gScanProgressIndicator++; @@ -2271,20 +2272,20 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) Code = DTMF_GetCharacter(Key - KEY_0); if (Code == 0xFF) goto Skip; - + // transmit DTMF keys } - + if (!bKeyPressed || bKeyHeld) { if (!bKeyPressed) { GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - + gEnableSpeaker = false; - + BK4819_ExitDTMF_TX(false); - + if (gCurrentVfo->SCRAMBLING_TYPE == 0 || !gSetting_ScrambleEnable) BK4819_DisableScramble(); else @@ -2298,9 +2299,9 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); gEnableSpeaker = true; } - + BK4819_DisableScramble(); - + if (Code == 0xFE) BK4819_TransmitTone(gEeprom.DTMF_SIDE_TONE, 1750); else diff --git a/app/main.c b/app/main.c index 83d971a..1a14d3e 100644 --- a/app/main.c +++ b/app/main.c @@ -702,8 +702,6 @@ static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld) gScanSingleFrequency = true; gBackupCROSS_BAND_RX_TX = gEeprom.CROSS_BAND_RX_TX; gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_OFF; - - ACTION_Scan(false); } gPttWasReleased = true; diff --git a/app/scanner.c b/app/scanner.c index e79d378..07c95fd 100644 --- a/app/scanner.c +++ b/app/scanner.c @@ -31,7 +31,7 @@ uint8_t gScanCssResultCode; bool gFlagStartScan; bool gFlagStopScan; bool gScanSingleFrequency; -uint8_t gScannerEditState; +SCAN_edit_state_t gScannerEditState; uint8_t gScanChannel; uint32_t gScanFrequency; bool gScanPauseMode; @@ -48,7 +48,7 @@ static void SCANNER_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) { if (!bKeyHeld && bKeyPressed) { - if (gScannerEditState == 1) + if (gScannerEditState == SCAN_EDIT_STATE_BUSY) { uint16_t Channel; @@ -92,9 +92,9 @@ static void SCANNER_Key_EXIT(bool bKeyPressed, bool bKeyHeld) switch (gScannerEditState) { - case 0: + case SCAN_EDIT_STATE_NONE: gRequestDisplayScreen = DISPLAY_MAIN; - + gEeprom.CROSS_BAND_RX_TX = gBackupCROSS_BAND_RX_TX; gUpdateStatus = true; gFlagStopScan = true; @@ -105,7 +105,7 @@ static void SCANNER_Key_EXIT(bool bKeyPressed, bool bKeyHeld) #endif break; - case 1: + case SCAN_EDIT_STATE_BUSY: if (gInputBoxIndex > 0) { gInputBox[--gInputBoxIndex] = 10; @@ -115,8 +115,8 @@ static void SCANNER_Key_EXIT(bool bKeyPressed, bool bKeyHeld) // Fallthrough - case 2: - gScannerEditState = 0; + case SCAN_EDIT_STATE_DONE: + gScannerEditState = SCAN_EDIT_STATE_NONE; #ifdef ENABLE_VOICE gAnotherVoiceID = VOICE_ID_CANCEL; #endif @@ -161,49 +161,97 @@ static void SCANNER_Key_MENU(bool bKeyPressed, bool bKeyHeld) switch (gScannerEditState) { - case 0: + case SCAN_EDIT_STATE_NONE: if (!gScanSingleFrequency) { - int16_t Delta625; - uint32_t Freq250 = FREQUENCY_FloorToStep(gScanFrequency, 250, 0); - uint32_t Freq625 = FREQUENCY_FloorToStep(gScanFrequency, 625, 0); - int16_t Delta250 = (int16_t)gScanFrequency - (int16_t)Freq250; - if (125 < Delta250) - { - Delta250 = 250 - Delta250; - Freq250 += 250; - } + #if 0 + // can't make head nor tail of what's being done here :( - Delta625 = (int16_t)gScanFrequency - (int16_t)Freq625; + uint32_t Freq250 = FREQUENCY_FloorToStep(gScanFrequency, 250, 0); + uint32_t Freq625 = FREQUENCY_FloorToStep(gScanFrequency, 625, 0); - if (312 < Delta625) - { - Delta625 = 625 - Delta625; - Freq625 += 625; - } + int16_t Delta250 = (int16_t)gScanFrequency - (int16_t)Freq250; + int16_t Delta625; - if (Delta625 < Delta250) - { - gStepSetting = STEP_6_25kHz; - gScanFrequency = Freq625; - } - else - { - gStepSetting = STEP_2_5kHz; - gScanFrequency = Freq250; - } + if (125 < Delta250) + { + Delta250 = 250 - Delta250; + Freq250 += 250; + } + + Delta625 = (int16_t)gScanFrequency - (int16_t)Freq625; + + if (312 < Delta625) + { + Delta625 = 625 - Delta625; + Freq625 += 625; + } + + if (Delta625 < Delta250) + { + gStepSetting = STEP_6_25kHz; + gScanFrequency = Freq625; + } + else + { + gStepSetting = STEP_2_5kHz; + gScanFrequency = Freq250; + } + #else + + #ifdef ENABLE_1250HZ_STEP + const STEP_Setting_t small_step = STEP_1_25kHz; + const STEP_Setting_t big_step = STEP_6_25kHz; + #else + const STEP_Setting_t small_step = STEP_2_5kHz; + const STEP_Setting_t big_step = STEP_6_25kHz; + #endif + const uint32_t small_step_freq = StepFrequencyTable[small_step]; + const uint32_t big_step_freq = StepFrequencyTable[big_step]; + + uint32_t freq_small_step = FREQUENCY_FloorToStep(gScanFrequency, small_step_freq, 0); + uint32_t freq_big_step = FREQUENCY_FloorToStep(gScanFrequency, big_step_freq, 0); + + int32_t delta_small_step = (int32_t)gScanFrequency - freq_small_step; + int32_t delta_big_step = (int32_t)gScanFrequency - freq_big_step; + + if (delta_small_step > 125) + { + delta_small_step = StepFrequencyTable[small_step] - delta_small_step; + freq_big_step += small_step_freq; + } + + delta_big_step = (int32_t)gScanFrequency - freq_big_step; + + if (delta_big_step > 312) + { + delta_big_step = big_step_freq - delta_big_step; + freq_big_step += big_step_freq; + } + + if (delta_small_step >= delta_big_step) + { + gStepSetting = small_step; + gScanFrequency = freq_small_step; + } + else + { + gStepSetting = big_step; + gScanFrequency = freq_big_step; + } + #endif } if (gTxVfo->CHANNEL_SAVE <= MR_CHANNEL_LAST) { - gScannerEditState = 1; + gScannerEditState = SCAN_EDIT_STATE_BUSY; gScanChannel = gTxVfo->CHANNEL_SAVE; gShowChPrefix = RADIO_CheckValidChannel(gTxVfo->CHANNEL_SAVE, false, 0); } else { - gScannerEditState = 2; + gScannerEditState = SCAN_EDIT_STATE_DONE; } gScanCssState = SCAN_CSS_STATE_FOUND; @@ -211,20 +259,20 @@ static void SCANNER_Key_MENU(bool bKeyPressed, bool bKeyHeld) gAnotherVoiceID = VOICE_ID_MEMORY_CHANNEL; #endif gRequestDisplayScreen = DISPLAY_SCANNER; - + gUpdateStatus = true; break; - case 1: + case SCAN_EDIT_STATE_BUSY: if (gInputBoxIndex == 0) { gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; gRequestDisplayScreen = DISPLAY_SCANNER; - gScannerEditState = 2; + gScannerEditState = SCAN_EDIT_STATE_DONE; } break; - case 2: + case SCAN_EDIT_STATE_DONE: if (!gScanSingleFrequency) { RADIO_InitInfo(gTxVfo, gTxVfo->CHANNEL_SAVE, gScanFrequency); @@ -235,8 +283,8 @@ static void SCANNER_Key_MENU(bool bKeyPressed, bool bKeyHeld) gTxVfo->freq_config_RX.Code = gScanCssResultCode; } - gTxVfo->freq_config_TX = gTxVfo->freq_config_RX; - gTxVfo->STEP_SETTING = gStepSetting; + gTxVfo->freq_config_TX = gTxVfo->freq_config_RX; + gTxVfo->STEP_SETTING = gStepSetting; } else { @@ -251,23 +299,26 @@ static void SCANNER_Key_MENU(bool bKeyPressed, bool bKeyHeld) if (gTxVfo->CHANNEL_SAVE <= MR_CHANNEL_LAST) { - Channel = gScanChannel; + Channel = gScanChannel; gEeprom.MrChannel[gEeprom.TX_VFO] = Channel; } else { - Channel = gTxVfo->Band + FREQ_CHANNEL_FIRST; + Channel = gTxVfo->Band + FREQ_CHANNEL_FIRST; gEeprom.FreqChannel[gEeprom.TX_VFO] = Channel; } - gTxVfo->CHANNEL_SAVE = Channel; + gTxVfo->CHANNEL_SAVE = Channel; gEeprom.ScreenChannel[gEeprom.TX_VFO] = Channel; + gRequestSaveChannel = 2; + #ifdef ENABLE_VOICE - gAnotherVoiceID = VOICE_ID_CONFIRM; + gAnotherVoiceID = VOICE_ID_CONFIRM; #endif - gRequestDisplayScreen = DISPLAY_SCANNER; - gRequestSaveChannel = 2; - gScannerEditState = 0; + + gScannerEditState = SCAN_EDIT_STATE_NONE; + + gRequestDisplayScreen = DISPLAY_SCANNER; break; default: @@ -302,7 +353,7 @@ static void SCANNER_Key_UP_DOWN(bool bKeyPressed, bool pKeyHeld, int8_t Directio gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; } - if (gScannerEditState == 1) + if (gScannerEditState == SCAN_EDIT_STATE_BUSY) { gScanChannel = NUMBER_AddWithWraparound(gScanChannel, Direction, 0, MR_CHANNEL_LAST); gShowChPrefix = RADIO_CheckValidChannel(gScanChannel, false, 0); @@ -389,8 +440,6 @@ void SCANNER_Start(void) BK4819_PickRXFilterPathBasedOnFrequency(gScanFrequency); BK4819_SetScanFrequency(gScanFrequency); - - gUpdateStatus = true; } else { @@ -399,8 +448,6 @@ void SCANNER_Start(void) BK4819_PickRXFilterPathBasedOnFrequency(0xFFFFFFFF); BK4819_EnableFrequencyScan(); - - gUpdateStatus = true; } DTMF_clear_RX(); @@ -418,8 +465,10 @@ void SCANNER_Start(void) g_VOX_Lost = false; #endif g_SquelchLost = false; - gScannerEditState = 0; + gScannerEditState = SCAN_EDIT_STATE_NONE; gScanProgressIndicator = 0; + + gUpdateStatus = true; } void SCANNER_Stop(void) diff --git a/app/scanner.h b/app/scanner.h index 8730ea6..d0d4630 100644 --- a/app/scanner.h +++ b/app/scanner.h @@ -20,29 +20,34 @@ #include "dcs.h" #include "driver/keyboard.h" -enum SCAN_CssState_t +enum SCAN_CssState_e { SCAN_CSS_STATE_OFF = 0, SCAN_CSS_STATE_SCANNING, SCAN_CSS_STATE_FOUND, SCAN_CSS_STATE_FAILED }; +typedef enum SCAN_CssState_e SCAN_CssState_t; -typedef enum SCAN_CssState_t SCAN_CssState_t; - -enum -{ +enum { SCAN_REV = -1, SCAN_OFF = 0, SCAN_FWD = +1 }; +enum SCAN_edit_state_e { + SCAN_EDIT_STATE_NONE = 0, + SCAN_EDIT_STATE_BUSY, + SCAN_EDIT_STATE_DONE +}; +typedef enum SCAN_edit_state_e SCAN_edit_state_t; + extern DCS_CodeType_t gScanCssResultType; extern uint8_t gScanCssResultCode; extern bool gFlagStartScan; extern bool gFlagStopScan; extern bool gScanSingleFrequency; -extern uint8_t gScannerEditState; +extern SCAN_edit_state_t gScannerEditState; extern uint8_t gScanChannel; extern uint32_t gScanFrequency; extern bool gScanPauseMode; diff --git a/firmware.bin b/firmware.bin index b598b40ce28cb5f3e9a57bda0044ec197297f2f2..607fe740e5ef1c663c2a26e681ab7c745273bbdf 100644 GIT binary patch delta 12318 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 delta 12456 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 MQC9+)k$%Dd0X)1sWdHyG delta 28601 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 BcohHu diff --git a/frequencies.c b/frequencies.c index b16f9e5..6cfb270 100644 --- a/frequencies.c +++ b/frequencies.c @@ -61,12 +61,12 @@ const freq_band_table_t frequencyBandTable[7] = }; #endif -#ifndef ENABLE_12_5KHZ_STEP - // QS steps (*10 Hz) - const uint16_t StepFrequencyTable[7] = {250, 500, 625, 1000, 1250, 2500, 833}; -#else +#ifdef ENABLE_1250HZ_STEP // includes 1.25kHz step const uint16_t StepFrequencyTable[7] = {125, 250, 625, 1000, 1250, 2500, 833}; +#else + // QS steps (*10 Hz) + const uint16_t StepFrequencyTable[7] = {250, 500, 625, 1000, 1250, 2500, 833}; #endif FREQUENCY_Band_t FREQUENCY_GetBand(uint32_t Frequency) diff --git a/frequencies.h b/frequencies.h index 5b38dd7..f7b07cb 100644 --- a/frequencies.h +++ b/frequencies.h @@ -19,8 +19,6 @@ #include -#define ENABLE_12_5KHZ_STEP - typedef struct { const uint32_t lower; const uint32_t upper; @@ -43,22 +41,22 @@ enum FREQUENCY_Band_t { }; typedef enum FREQUENCY_Band_t FREQUENCY_Band_t; -#ifndef ENABLE_12_5KHZ_STEP - // QS steps +#ifdef ENABLE_1250HZ_STEP + // includes 1.25kHz step enum STEP_Setting_t { - STEP_2_5kHz = 0, - STEP_5_0kHz, + STEP_1_25kHz = 0, + STEP_2_5kHz, STEP_6_25kHz, STEP_10_0kHz, STEP_12_5kHz, STEP_25_0kHz, STEP_8_33kHz - }; +}; #else - // includes 1.25kHz step + // QS steps enum STEP_Setting_t { - STEP_1_25kHz = 0, - STEP_2_5kHz, + STEP_2_5kHz = 0, + STEP_5_0kHz, STEP_6_25kHz, STEP_10_0kHz, STEP_12_5kHz, diff --git a/ui/menu.c b/ui/menu.c index deb9250..3a5f9a6 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -341,6 +341,7 @@ const char gSubMenu_SCRAMBLER[11][7] = }; const char gSubMenu_SIDE_BUTT[9][16] = +//const char gSubMenu_SIDE_BUTT[10][16] = { "NONE", "FLASH\nLIGHT", @@ -350,7 +351,8 @@ const char gSubMenu_SIDE_BUTT[9][16] = "VOX\non\\off", "ALARM\non\\off", "FM RADIO\non\\off", - "TX\n1750Hz" + "TX\n1750Hz", +// "2nd PTT", }; // *************************************************************************************** diff --git a/ui/scanner.c b/ui/scanner.c index a055a95..74a5e98 100644 --- a/ui/scanner.c +++ b/ui/scanner.c @@ -30,8 +30,7 @@ void UI_DisplayScanner(void) { char String[16]; - bool bCentered; - uint8_t Start; + bool text_centered = false; memset(gFrameBuffer, 0, sizeof(gFrameBuffer)); @@ -49,7 +48,7 @@ void UI_DisplayScanner(void) memset(String, 0, sizeof(String)); if (gScanCssState < SCAN_CSS_STATE_FOUND || !gScanUseCssResult) - strcpy(String, " CTC scanning"); + strcpy(String, "CODE scanning"); else if (gScanCssResultType == CODE_TYPE_CONTINUOUS_TONE) sprintf(String, " CTC %u.%uHz", CTCSS_Options[gScanCssResultCode] / 10, CTCSS_Options[gScanCssResultCode] % 10); @@ -58,42 +57,40 @@ void UI_DisplayScanner(void) UI_PrintString(String, 2, 0, 3, 8); memset(String, 0, sizeof(String)); - if (gScannerEditState == 2) + switch (gScannerEditState) { - strcpy(String, "SAVE ?"); + default: + case SCAN_EDIT_STATE_NONE: + if (gScanCssState < SCAN_CSS_STATE_FOUND) + { // rolling indicator + memset(String, 0, sizeof(String)); + memset(String, '.', 15); + String[gScanProgressIndicator % 15] = '#'; + } + else + if (gScanCssState == SCAN_CSS_STATE_FOUND) + { +// strcpy(String, "SCAN COMPLETE"); + strcpy(String, "* repeat M save"); + text_centered = true; + } + else + { + strcpy(String, "SCAN FAIL"); + } + break; - Start = 0; - bCentered = 1; - } - else - { - if (gScannerEditState == 1) - { + case SCAN_EDIT_STATE_BUSY: strcpy(String, "SAVE "); UI_GenerateChannelStringEx(String + 5, gShowChPrefix, gScanChannel); - } - else - if (gScanCssState < SCAN_CSS_STATE_FOUND) - { - memset(String, 0, sizeof(String)); - memset(String, '.', 15); - String[gScanProgressIndicator % 15] = '#'; - } - else - if (gScanCssState == SCAN_CSS_STATE_FOUND) - { -// strcpy(String, "SCAN CMP"); - strcpy(String, " '*' to save"); - } - else - { - strcpy(String, "SCAN FAIL"); - } - - Start = 2; - bCentered = 0; + break; + + case SCAN_EDIT_STATE_DONE: + text_centered = true; + strcpy(String, "SAVE ?"); + break; } - UI_PrintString(String, Start, bCentered ? 127 : 0, 5, 8); + UI_PrintString(String, text_centered ? 0 : 2, text_centered ? 127 : 0, 5, 8); ST7565_BlitFullScreen(); }