0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-05-19 00:11:18 +03:00

Fix F+4 and F+* search bug

This commit is contained in:
OneOfEleven 2023-10-13 17:46:28 +01:00
parent 7f7c9490eb
commit bb79d51377
6 changed files with 60 additions and 35 deletions

View File

@ -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;
}
}

View File

@ -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

Binary file not shown.

Binary file not shown.

View File

@ -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())

View File

@ -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: