mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-06-19 14:48:03 +03:00
Fixed F+4 and F+* freq/ctcss/cdcss search functions
This commit is contained in:
108
app/app.c
108
app/app.c
@ -202,7 +202,7 @@ static void APP_HandleIncoming(void)
|
||||
return;
|
||||
}
|
||||
|
||||
flag = (g_scan_state_dir == SCAN_OFF && g_current_code_type == CODE_TYPE_OFF);
|
||||
flag = (g_scan_state_dir == SCAN_OFF && g_current_code_type == CODE_TYPE_NONE);
|
||||
|
||||
#ifdef ENABLE_NOAA
|
||||
if (IS_NOAA_CHANNEL(g_rx_vfo->channel_save) && g_noaa_count_down_10ms > 0)
|
||||
@ -282,7 +282,7 @@ static void APP_HandleReceive(void)
|
||||
switch (g_current_code_type)
|
||||
{
|
||||
default:
|
||||
case CODE_TYPE_OFF:
|
||||
case CODE_TYPE_NONE:
|
||||
break;
|
||||
|
||||
case CODE_TYPE_CONTINUOUS_TONE:
|
||||
@ -317,7 +317,7 @@ static void APP_HandleReceive(void)
|
||||
{
|
||||
switch (g_current_code_type)
|
||||
{
|
||||
case CODE_TYPE_OFF:
|
||||
case CODE_TYPE_NONE:
|
||||
if (g_eeprom.squelch_level)
|
||||
{
|
||||
if (g_CxCSS_tail_found)
|
||||
@ -942,7 +942,7 @@ void APP_EndTransmission(void)
|
||||
|
||||
RADIO_SendEndOfTransmission();
|
||||
|
||||
if (g_current_vfo->pTX->code_type != CODE_TYPE_OFF)
|
||||
if (g_current_vfo->pTX->code_type != CODE_TYPE_NONE)
|
||||
{ // CTCSS/DCS is enabled
|
||||
|
||||
//if (g_eeprom.tail_note_elimination && g_eeprom.repeater_tail_tone_elimination > 0)
|
||||
@ -1099,7 +1099,7 @@ void APP_Update(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_current_code_type == CODE_TYPE_OFF && g_current_function == FUNCTION_INCOMING)
|
||||
if (g_current_code_type == CODE_TYPE_NONE && g_current_function == FUNCTION_INCOMING)
|
||||
APP_StartListening(g_monitor_enabled ? FUNCTION_MONITOR : FUNCTION_RECEIVE, true);
|
||||
else
|
||||
USER_NextChannel(); // switch to next channel
|
||||
@ -1346,7 +1346,7 @@ void APP_CheckKeys(void)
|
||||
APP_ProcessKey(KEY_PTT, true, false);
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf(" ptt key %3u %u %u\r\n", KEY_PTT, g_ptt_is_pressed, g_ptt_was_released);
|
||||
//UART_printf(" ptt key %3u %u %u\r\n", KEY_PTT, g_ptt_is_pressed, g_ptt_was_released);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -1367,7 +1367,7 @@ void APP_CheckKeys(void)
|
||||
APP_ProcessKey(KEY_PTT, false, false);
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf(" ptt key %3u %u %u\r\n", KEY_PTT, g_ptt_is_pressed, g_ptt_was_released);
|
||||
//UART_printf(" ptt key %3u %u %u\r\n", KEY_PTT, g_ptt_is_pressed, g_ptt_was_released);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -1403,7 +1403,7 @@ void APP_CheckKeys(void)
|
||||
{ // key now fully released
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf(" old key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
//UART_printf(" old key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AIRCOPY
|
||||
@ -1441,7 +1441,7 @@ void APP_CheckKeys(void)
|
||||
g_key_held = false;
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf("\r\n new key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
//UART_printf("\r\n new key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
#endif
|
||||
|
||||
g_key_prev = key;
|
||||
@ -1468,7 +1468,7 @@ void APP_CheckKeys(void)
|
||||
g_key_held = true;
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf("long key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
//UART_printf("long key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AIRCOPY
|
||||
@ -1492,7 +1492,7 @@ void APP_CheckKeys(void)
|
||||
g_key_debounce_repeat -= key_repeat_10ms;
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf("rept key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
//UART_printf("rept key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AIRCOPY
|
||||
@ -1503,7 +1503,7 @@ void APP_CheckKeys(void)
|
||||
#else
|
||||
APP_ProcessKey(g_key_prev, true, g_key_held);
|
||||
#endif
|
||||
|
||||
|
||||
//g_update_status = true;
|
||||
//g_update_display = true;
|
||||
}
|
||||
@ -1592,15 +1592,15 @@ void APP_TimeSlice10ms(void)
|
||||
{ // we're TX'ing
|
||||
AIRCOPY_process_FSK_tx_10ms();
|
||||
}
|
||||
|
||||
|
||||
APP_CheckKeys();
|
||||
|
||||
if (g_update_display)
|
||||
GUI_DisplayScreen();
|
||||
|
||||
|
||||
if (g_update_status)
|
||||
UI_DisplayStatus(false);
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@ -1755,14 +1755,34 @@ void APP_TimeSlice10ms(void)
|
||||
case SCAN_CSS_STATE_OFF:
|
||||
|
||||
if (g_scan_freq_css_timer_10ms >= scan_freq_css_timeout_10ms)
|
||||
{ // freq/css scan timeout
|
||||
#ifdef ENABLE_CODE_SCAN_TIMEOUT
|
||||
BK4819_DisableFrequencyScan();
|
||||
g_scan_css_state = SCAN_CSS_STATE_FREQ_FAILED;
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
break;
|
||||
#endif
|
||||
{ // FREQ/CTCSS/CDCSS search timeout
|
||||
|
||||
if (!g_scan_single_frequency)
|
||||
{ // FREQ search timeout
|
||||
#ifdef ENABLE_FREQ_SEARCH_TIMEOUT
|
||||
BK4819_DisableFrequencyScan();
|
||||
|
||||
g_scan_css_state = SCAN_CSS_STATE_FREQ_FAILED;
|
||||
|
||||
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{ // CTCSS/CDCSS search timeout
|
||||
#ifdef ENABLE_CODE_SEARCH_TIMEOUT
|
||||
BK4819_DisableFrequencyScan();
|
||||
|
||||
g_scan_css_state = SCAN_CSS_STATE_FREQ_FAILED;
|
||||
|
||||
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (!BK4819_GetFrequencyScanResult(&Result))
|
||||
@ -1786,14 +1806,15 @@ void APP_TimeSlice10ms(void)
|
||||
|
||||
BK4819_SetScanFrequency(g_scan_frequency);
|
||||
|
||||
g_scan_css_result_code = 0xFF;
|
||||
g_scan_css_result_type = 0xFF;
|
||||
g_scan_css_result_type = CODE_TYPE_NONE;
|
||||
g_scan_css_result_code = 0xff;
|
||||
g_scan_hit_count = 0;
|
||||
g_scan_use_css_result = false;
|
||||
g_scan_freq_css_timer_10ms = 0;
|
||||
g_scan_css_state = SCAN_CSS_STATE_SCANNING;
|
||||
|
||||
GUI_SelectNextDisplay(DISPLAY_SCANNER);
|
||||
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
}
|
||||
@ -1804,18 +1825,24 @@ void APP_TimeSlice10ms(void)
|
||||
case SCAN_CSS_STATE_SCANNING:
|
||||
|
||||
if (g_scan_freq_css_timer_10ms >= scan_freq_css_timeout_10ms)
|
||||
{ // timeout
|
||||
#if defined(ENABLE_CODE_SCAN_TIMEOUT)
|
||||
{ // CTCSS/CDCSS search timeout
|
||||
|
||||
#if defined(ENABLE_CODE_SEARCH_TIMEOUT)
|
||||
BK4819_Disable();
|
||||
g_scan_css_state = SCAN_CSS_STATE_FAILED;
|
||||
|
||||
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
break;
|
||||
#elif defined(ENABLE_FREQ_CODE_SCAN_TIMEOUT)
|
||||
|
||||
#else
|
||||
if (!g_scan_single_frequency)
|
||||
{
|
||||
BK4819_Disable();
|
||||
g_scan_css_state = SCAN_CSS_STATE_FAILED;
|
||||
|
||||
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
break;
|
||||
@ -1838,8 +1865,10 @@ void APP_TimeSlice10ms(void)
|
||||
g_scan_css_result_type = CODE_TYPE_DIGITAL;
|
||||
g_scan_css_state = SCAN_CSS_STATE_FOUND;
|
||||
g_scan_use_css_result = true;
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
|
||||
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -1855,8 +1884,10 @@ void APP_TimeSlice10ms(void)
|
||||
{
|
||||
g_scan_css_state = SCAN_CSS_STATE_FOUND;
|
||||
g_scan_use_css_result = true;
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
|
||||
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
|
||||
g_update_status = true;
|
||||
g_update_display = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -1867,7 +1898,8 @@ void APP_TimeSlice10ms(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (g_scan_css_state == SCAN_CSS_STATE_OFF || g_scan_css_state == SCAN_CSS_STATE_SCANNING)
|
||||
if (g_scan_css_state == SCAN_CSS_STATE_OFF ||
|
||||
g_scan_css_state == SCAN_CSS_STATE_SCANNING)
|
||||
{ // re-start scan
|
||||
BK4819_SetScanFrequency(g_scan_frequency);
|
||||
g_scan_delay_10ms = scan_freq_css_delay_10ms;
|
||||
@ -1878,7 +1910,7 @@ void APP_TimeSlice10ms(void)
|
||||
|
||||
//case SCAN_CSS_STATE_FOUND:
|
||||
//case SCAN_CSS_STATE_FAILED:
|
||||
//case SCAN_CSS_STATE_FREQ_FAILED:
|
||||
//case SCAN_CSS_STATE_REPEAT:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -2049,7 +2081,7 @@ void APP_TimeSlice500ms(void)
|
||||
(g_screen_to_display != DISPLAY_SCANNER ||
|
||||
g_scan_css_state == SCAN_CSS_STATE_FOUND ||
|
||||
g_scan_css_state == SCAN_CSS_STATE_FAILED ||
|
||||
g_scan_css_state == SCAN_CSS_STATE_FREQ_FAILED))
|
||||
g_scan_css_state == SCAN_CSS_STATE_REPEAT))
|
||||
{
|
||||
|
||||
if (g_eeprom.auto_keypad_lock &&
|
||||
@ -2114,7 +2146,7 @@ void APP_TimeSlice500ms(void)
|
||||
|
||||
if (disp == DISPLAY_INVALID)
|
||||
{
|
||||
#ifndef ENABLE_CODE_SCAN_TIMEOUT
|
||||
#ifndef ENABLE_CODE_SEARCH_TIMEOUT
|
||||
if (g_screen_to_display != DISPLAY_SCANNER)
|
||||
#endif
|
||||
disp = DISPLAY_MAIN;
|
||||
@ -2463,12 +2495,12 @@ static void APP_ProcessKey(const key_code_t Key, const bool key_pressed, const b
|
||||
}
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf("proc key 1 %3u %u %u %u %u\r\n", Key, key_pressed, key_held, g_fkey_pressed, flag);
|
||||
//UART_printf("proc key 1 %3u %u %u %u %u\r\n", Key, key_pressed, key_held, g_fkey_pressed, flag);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_printf("proc key 2 %3u %u %u %u %u\r\n", Key, key_pressed, key_held, g_fkey_pressed, flag);
|
||||
//UART_printf("proc key 2 %3u %u %u %u %u\r\n", Key, key_pressed, key_held, g_fkey_pressed, flag);
|
||||
#endif
|
||||
|
||||
if (!flag) // this flag is responsible for keys being ignored :(
|
||||
|
@ -411,7 +411,7 @@ void MENU_AcceptSetting(void)
|
||||
return;
|
||||
}
|
||||
Code = 0;
|
||||
pConfig->code_type = CODE_TYPE_OFF;
|
||||
pConfig->code_type = CODE_TYPE_NONE;
|
||||
}
|
||||
else
|
||||
if (g_sub_menu_selection < 105)
|
||||
@ -444,7 +444,7 @@ void MENU_AcceptSetting(void)
|
||||
}
|
||||
Code = 0;
|
||||
pConfig->code = Code;
|
||||
pConfig->code_type = CODE_TYPE_OFF;
|
||||
pConfig->code_type = CODE_TYPE_NONE;
|
||||
|
||||
BK4819_ExitSubAu();
|
||||
}
|
||||
|
117
app/scanner.c
117
app/scanner.c
@ -50,7 +50,7 @@ static void SCANNER_Key_DIGITS(key_code_t Key, bool key_pressed, bool key_held)
|
||||
if (key_held || key_pressed)
|
||||
return;
|
||||
|
||||
if (g_scanner_edit_state == SCAN_EDIT_STATE_SAVE)
|
||||
if (g_scanner_edit_state == SCAN_EDIT_STATE_SAVE_CHAN)
|
||||
{
|
||||
uint16_t Channel;
|
||||
|
||||
@ -95,35 +95,41 @@ static void SCANNER_Key_EXIT(bool key_pressed, bool key_held)
|
||||
switch (g_scanner_edit_state)
|
||||
{
|
||||
case SCAN_EDIT_STATE_NONE:
|
||||
g_request_display_screen = DISPLAY_MAIN;
|
||||
|
||||
g_eeprom.cross_vfo_rx_tx = g_backup_cross_vfo_rx_tx;
|
||||
g_update_status = true;
|
||||
g_flag_stop_scan = true;
|
||||
g_vfo_configure_mode = VFO_CONFIGURE_RELOAD;
|
||||
g_flag_reset_vfos = true;
|
||||
g_update_status = true;
|
||||
g_flag_stop_scan = true;
|
||||
g_vfo_configure_mode = VFO_CONFIGURE_RELOAD;
|
||||
g_flag_reset_vfos = true;
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
g_another_voice_id = VOICE_ID_CANCEL;
|
||||
g_another_voice_id = VOICE_ID_CANCEL;
|
||||
#endif
|
||||
|
||||
g_request_display_screen = DISPLAY_MAIN;
|
||||
g_update_display = true;
|
||||
break;
|
||||
|
||||
case SCAN_EDIT_STATE_SAVE:
|
||||
case SCAN_EDIT_STATE_SAVE_CHAN:
|
||||
if (g_input_box_index > 0)
|
||||
{
|
||||
g_input_box[--g_input_box_index] = 10;
|
||||
|
||||
g_request_display_screen = DISPLAY_SCANNER;
|
||||
g_update_display = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Fallthrough
|
||||
|
||||
case SCAN_EDIT_STATE_DONE:
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_NONE;
|
||||
case SCAN_EDIT_STATE_SAVE_CONFIRM:
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_NONE;
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
g_another_voice_id = VOICE_ID_CANCEL;
|
||||
g_another_voice_id = VOICE_ID_CANCEL;
|
||||
#endif
|
||||
// g_request_display_screen = DISPLAY_SCANNER;
|
||||
|
||||
g_request_display_screen = DISPLAY_MAIN;
|
||||
g_update_display = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -158,12 +164,16 @@ static void SCANNER_Key_MENU(bool key_pressed, bool key_held)
|
||||
|
||||
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough="
|
||||
|
||||
switch (g_scanner_edit_state)
|
||||
{
|
||||
case SCAN_EDIT_STATE_NONE:
|
||||
/* if (!g_scan_single_frequency)
|
||||
if (!g_scan_single_frequency)
|
||||
{
|
||||
#if 0
|
||||
|
||||
uint32_t Freq250 = FREQUENCY_FloorToStep(g_scan_frequency, 250, 0);
|
||||
uint32_t Freq625 = FREQUENCY_FloorToStep(g_scan_frequency, 625, 0);
|
||||
|
||||
@ -194,7 +204,8 @@ static void SCANNER_Key_MENU(bool key_pressed, bool key_held)
|
||||
g_step_setting = STEP_2_5kHz;
|
||||
g_scan_frequency = Freq250;
|
||||
}
|
||||
#elif 0
|
||||
|
||||
#elif 1
|
||||
|
||||
#ifdef ENABLE_1250HZ_STEP
|
||||
const step_setting_t small_step = STEP_1_25kHz;
|
||||
@ -238,40 +249,24 @@ static void SCANNER_Key_MENU(bool key_pressed, bool key_held)
|
||||
g_scan_frequency = freq_big_step;
|
||||
}
|
||||
|
||||
#else
|
||||
#ifdef ENABLE_1250HZ_STEP
|
||||
g_step_setting = STEP_1_25kHz;
|
||||
#else
|
||||
g_step_setting = STEP_2_5kHz;
|
||||
#endif
|
||||
{ // round to the nearest step size
|
||||
const uint32_t step = STEP_FREQ_TABLE[g_step_setting];
|
||||
g_scan_frequency = ((g_scan_frequency + (step / 2)) / step) * step;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
*/
|
||||
|
||||
if (g_tx_vfo->channel_save <= USER_CHANNEL_LAST)
|
||||
{ // save to channel
|
||||
if (!g_scan_single_frequency)
|
||||
{ // round to the nearest step size
|
||||
const uint32_t step = g_tx_vfo->step_freq;
|
||||
g_scan_frequency = ((g_scan_frequency + (step / 2)) / step) * step;
|
||||
}
|
||||
g_scan_channel = g_tx_vfo->channel_save;
|
||||
g_show_chan_prefix = RADIO_CheckValidChannel(g_tx_vfo->channel_save, false, 0);
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_SAVE;
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_SAVE_CHAN;
|
||||
}
|
||||
else
|
||||
{ // save the VFO
|
||||
if (!g_scan_single_frequency)
|
||||
{ // round to the nearest step size
|
||||
const uint32_t step = g_tx_vfo->step_freq;
|
||||
g_scan_frequency = ((g_scan_frequency + (step / 2)) / step) * step;
|
||||
}
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_DONE;
|
||||
{ // save to VFO
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_SAVE_CONFIRM;
|
||||
}
|
||||
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
//UART_SendText("edit none\r\n");
|
||||
#endif
|
||||
|
||||
g_scan_css_state = SCAN_CSS_STATE_FOUND;
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
@ -282,18 +277,27 @@ static void SCANNER_Key_MENU(bool key_pressed, bool key_held)
|
||||
g_update_status = true;
|
||||
break;
|
||||
|
||||
case SCAN_EDIT_STATE_SAVE:
|
||||
case SCAN_EDIT_STATE_SAVE_CHAN:
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
UART_SendText("edit save chan\r\n");
|
||||
#endif
|
||||
|
||||
if (g_input_box_index > 0)
|
||||
break;
|
||||
|
||||
if (g_input_box_index == 0)
|
||||
{
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_SAVE_CONFIRM;
|
||||
|
||||
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
|
||||
g_request_display_screen = DISPLAY_SCANNER;
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_DONE;
|
||||
}
|
||||
break;
|
||||
|
||||
// break;
|
||||
|
||||
case SCAN_EDIT_STATE_DONE:
|
||||
case SCAN_EDIT_STATE_SAVE_CONFIRM:
|
||||
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
|
||||
//UART_SendText("edit done\r\n");
|
||||
UART_SendText("edit save confirm\r\n");
|
||||
#endif
|
||||
|
||||
if (!g_scan_single_frequency)
|
||||
@ -316,6 +320,7 @@ static void SCANNER_Key_MENU(bool key_pressed, bool key_held)
|
||||
|
||||
g_tx_vfo->freq_config_rx.code_type = g_scan_css_result_type;
|
||||
g_tx_vfo->freq_config_rx.code = g_scan_css_result_code;
|
||||
|
||||
g_tx_vfo->freq_config_tx.code_type = g_scan_css_result_type;
|
||||
g_tx_vfo->freq_config_tx.code = g_scan_css_result_code;
|
||||
}
|
||||
@ -339,15 +344,29 @@ static void SCANNER_Key_MENU(bool key_pressed, bool key_held)
|
||||
g_another_voice_id = VOICE_ID_CONFIRM;
|
||||
#endif
|
||||
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_NONE;
|
||||
if (!g_scan_single_frequency)
|
||||
{ // FREQ/CTCSS/CDCSS search mode .. do another search
|
||||
g_scan_css_state = SCAN_CSS_STATE_REPEAT;
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_NONE;
|
||||
g_request_display_screen = DISPLAY_SCANNER;
|
||||
}
|
||||
else
|
||||
{ // CTCSS/CDCSS search mode .. only do a single search
|
||||
g_scan_css_state = SCAN_CSS_STATE_OFF;
|
||||
g_scanner_edit_state = SCAN_EDIT_STATE_NONE;
|
||||
g_request_display_screen = DISPLAY_MAIN;
|
||||
}
|
||||
|
||||
g_request_display_screen = DISPLAY_SCANNER;
|
||||
g_update_display = true;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
}
|
||||
|
||||
static void SCANNER_Key_STAR(bool key_pressed, bool key_held)
|
||||
@ -375,7 +394,7 @@ static void SCANNER_Key_UP_DOWN(bool key_pressed, bool pKeyHeld, int8_t Directio
|
||||
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
|
||||
}
|
||||
|
||||
if (g_scanner_edit_state == SCAN_EDIT_STATE_SAVE)
|
||||
if (g_scanner_edit_state == SCAN_EDIT_STATE_SAVE_CHAN)
|
||||
{
|
||||
g_scan_channel = NUMBER_AddWithWraparound(g_scan_channel, Direction, 0, USER_CHANNEL_LAST);
|
||||
g_show_chan_prefix = RADIO_CheckValidChannel(g_scan_channel, false, 0);
|
||||
@ -475,8 +494,8 @@ void SCANNER_Start(void)
|
||||
DTMF_clear_RX();
|
||||
|
||||
g_scan_delay_10ms = scan_freq_css_delay_10ms;
|
||||
g_scan_css_result_code = 0xFF;
|
||||
g_scan_css_result_type = 0xFF;
|
||||
g_scan_css_result_type = CODE_TYPE_NONE;
|
||||
g_scan_css_result_code = 0xff;
|
||||
g_scan_hit_count = 0;
|
||||
g_scan_use_css_result = false;
|
||||
g_CxCSS_tail_found = false;
|
||||
|
@ -23,11 +23,11 @@
|
||||
enum scan_css_state_e
|
||||
{
|
||||
SCAN_CSS_STATE_OFF = 0,
|
||||
// SCAN_CSS_STATE_FREQ_SCANNING,
|
||||
SCAN_CSS_STATE_SCANNING,
|
||||
SCAN_CSS_STATE_FOUND,
|
||||
SCAN_CSS_STATE_FAILED,
|
||||
SCAN_CSS_STATE_FREQ_FAILED
|
||||
SCAN_CSS_STATE_FREQ_FAILED,
|
||||
SCAN_CSS_STATE_REPEAT
|
||||
};
|
||||
typedef enum scan_css_state_e scan_css_state_t;
|
||||
|
||||
@ -40,8 +40,8 @@ typedef enum scan_state_dir_e scan_state_dir_t;
|
||||
|
||||
enum scan_edit_state_e {
|
||||
SCAN_EDIT_STATE_NONE = 0,
|
||||
SCAN_EDIT_STATE_SAVE,
|
||||
SCAN_EDIT_STATE_DONE
|
||||
SCAN_EDIT_STATE_SAVE_CHAN,
|
||||
SCAN_EDIT_STATE_SAVE_CONFIRM
|
||||
};
|
||||
typedef enum scan_edit_state_e scan_edit_state_t;
|
||||
|
||||
|
Reference in New Issue
Block a user