From bb79d51377620b14d1cafa7eff6e5df30711dda0 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 13 Oct 2023 17:46:28 +0100 Subject: [PATCH] Fix F+4 and F+* search bug --- app/app.c | 45 +++++++++++++++++++++++++++++++------------- app/uart.c | 4 ++-- firmware.bin | Bin 59752 -> 59784 bytes firmware.packed.bin | Bin 59770 -> 59802 bytes ui/lock.c | 16 ++++++++++------ ui/scanner.c | 30 +++++++++++++++-------------- 6 files changed, 60 insertions(+), 35 deletions(-) diff --git a/app/app.c b/app/app.c index f4bee7e..769de9d 100644 --- a/app/app.c +++ b/app/app.c @@ -1847,7 +1847,8 @@ void APP_TimeSlice10ms(void) } else { // RF carrier found - // stop RF the scan and move on too the CTCSS/CDCSS scan + // + // stop RF search and start CTCSS/CDCSS search BK4819_SetScanFrequency(g_search_frequency); @@ -1858,10 +1859,9 @@ void APP_TimeSlice10ms(void) g_search_freq_css_timer_10ms = 0; g_search_css_state = SEARCH_CSS_STATE_SCANNING; - GUI_SelectNextDisplay(DISPLAY_SEARCH); - g_update_status = true; g_update_display = true; + GUI_SelectNextDisplay(DISPLAY_SEARCH); } g_search_delay_10ms = scan_freq_css_delay_10ms; @@ -1873,9 +1873,10 @@ void APP_TimeSlice10ms(void) { // CTCSS/CDCSS search timeout #if defined(ENABLE_CODE_SEARCH_TIMEOUT) - BK4819_Disable(); g_search_css_state = SEARCH_CSS_STATE_FAILED; + BK4819_Disable(); + AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP); g_update_status = true; g_update_display = true; @@ -1884,9 +1885,10 @@ void APP_TimeSlice10ms(void) #else if (!g_search_single_frequency) { - BK4819_Disable(); g_search_css_state = SEARCH_CSS_STATE_FAILED; + BK4819_Disable(); + AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP); g_update_status = true; g_update_display = true; @@ -1903,11 +1905,12 @@ void APP_TimeSlice10ms(void) if (ScanResult == BK4819_CSS_RESULT_CDCSS) { // found a CDCSS code - const uint8_t Code = DCS_GetCdcssCode(Result); - if (Code != 0xFF) + const uint8_t code = DCS_GetCdcssCode(Result); + if (code != 0xFF) { - g_search_css_result_code = Code; + g_search_hit_count = 0; g_search_css_result_type = CODE_TYPE_DIGITAL; + g_search_css_result_code = code; g_search_css_state = SEARCH_CSS_STATE_FOUND; g_search_use_css_result = true; @@ -1915,6 +1918,13 @@ void APP_TimeSlice10ms(void) g_update_status = true; g_update_display = true; } + else + { + g_search_hit_count = 0; + g_search_css_result_type = CODE_TYPE_NONE; + g_search_css_result_code = code; + g_search_use_css_result = false; + } } else if (ScanResult == BK4819_CSS_RESULT_CTCSS) @@ -1925,7 +1935,7 @@ void APP_TimeSlice10ms(void) if (code == g_search_css_result_code && g_search_css_result_type == CODE_TYPE_CONTINUOUS_TONE) { - if (++g_search_hit_count >= 2) + if (++g_search_hit_count >= 3) { g_search_css_state = SEARCH_CSS_STATE_FOUND; g_search_use_css_result = true; @@ -1936,10 +1946,19 @@ void APP_TimeSlice10ms(void) } } else - g_search_hit_count = 0; - - g_search_css_result_type = CODE_TYPE_CONTINUOUS_TONE; - g_search_css_result_code = code; + { + g_search_hit_count = 1; + g_search_css_result_type = CODE_TYPE_CONTINUOUS_TONE; + g_search_css_result_code = code; + g_search_use_css_result = false; + } + } + else + { + g_search_hit_count = 0; + g_search_css_result_type = CODE_TYPE_NONE; + g_search_css_result_code = 0xff; + g_search_use_css_result = false; } } diff --git a/app/uart.c b/app/uart.c index fa13ed8..123e68f 100644 --- a/app/uart.c +++ b/app/uart.c @@ -348,8 +348,8 @@ static void cmd_051D(const uint8_t *pBuffer) #endif #ifdef ENABLE_PWRON_PASSWORD - if ((Offset < 0x0E98 || Offset >= 0x0EA0) || !g_password_locked || pCmd->bAllowPassword) - EEPROM_WriteBuffer(Offset, &pCmd->Data[i * write_size]); + if ((Offset < 0x0E98 || Offset >= 0x0EA0) || !g_password_locked || pCmd->allow_password) + EEPROM_WriteBuffer(Offset, &data[i * write_size]); #else EEPROM_WriteBuffer(Offset, &data[i * write_size]); #endif diff --git a/firmware.bin b/firmware.bin index 9b6f79e1240b4c700bfab6640a243bca7129ecf7..f36319407a969ed884b2948b0b7a668a454f5211 100644 GIT binary patch delta 8924 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 ITP5`W0nmDpCIA2c delta 8885 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 BfV2Pr diff --git a/firmware.packed.bin b/firmware.packed.bin index e07ce7ef3ea85239debc80f5a2e9e06b5cc6e975..4cb806fcfb03debe6e2894433eba85f41904c554 100644 GIT binary patch delta 23506 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 delta 23474 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 diff --git a/ui/lock.c b/ui/lock.c index 6535c49..65b09bd 100644 --- a/ui/lock.c +++ b/ui/lock.c @@ -50,8 +50,12 @@ static void Render(void) void UI_DisplayLock(void) { - key_code_t Key; - beep_type_t Beep; + unsigned int g_debounce_counter = 0; +// bool g_key_being_held = false; + key_code_t g_key_reading_0 = KEY_INVALID; +// key_code_t g_key_reading_1; + key_code_t Key; + beep_type_t Beep; g_update_display = true; @@ -73,11 +77,11 @@ void UI_DisplayLock(void) { if (Key == KEY_INVALID) { - g_key_reading_1 = KEY_INVALID; +// g_key_reading_1 = KEY_INVALID; } else { - g_key_reading_1 = Key; +// g_key_reading_1 = Key; switch (Key) { @@ -135,13 +139,13 @@ void UI_DisplayLock(void) } } - g_key_being_held = false; +// g_key_being_held = false; } } else { g_debounce_counter = 0; - g_key_reading_0 = Key; + g_key_reading_0 = Key; } if (UART_IsCommandAvailable()) diff --git a/ui/scanner.c b/ui/scanner.c index 9e8e94a..cc045a3 100644 --- a/ui/scanner.c +++ b/ui/scanner.c @@ -93,21 +93,23 @@ void UI_DisplaySearch(void) case SEARCH_CSS_STATE_FOUND: case SEARCH_CSS_STATE_REPEAT: - - switch (g_search_css_result_type) + strcpy(String, "CODE none found"); + if (g_search_use_css_result) { - default: - case CODE_TYPE_NONE: - strcpy(String, "CODE none found"); - break; - case CODE_TYPE_CONTINUOUS_TONE: - sprintf(String, "CTCSS %u.%uHz", CTCSS_OPTIONS[g_search_css_result_code] / 10, CTCSS_OPTIONS[g_search_css_result_code] % 10); - break; - case CODE_TYPE_DIGITAL: - case CODE_TYPE_REVERSE_DIGITAL: - sprintf(String, "CDCSS D%03oN", DCS_OPTIONS[g_search_css_result_code]); - break; - } + switch (g_search_css_result_type) + { + default: + case CODE_TYPE_NONE: + break; + case CODE_TYPE_CONTINUOUS_TONE: + sprintf(String, "CTCSS %u.%uHz", CTCSS_OPTIONS[g_search_css_result_code] / 10, CTCSS_OPTIONS[g_search_css_result_code] % 10); + break; + case CODE_TYPE_DIGITAL: + case CODE_TYPE_REVERSE_DIGITAL: + sprintf(String, "CDCSS D%03oN", DCS_OPTIONS[g_search_css_result_code]); + break; + } + } break; case SEARCH_CSS_STATE_FAILED: