From d47cd80fd4e179794f9f189376fdc4fd54ce2639 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Tue, 17 Oct 2023 11:05:41 +0100 Subject: [PATCH] Can now interrupt RF scanning with any other function --- app/action.c | 4 +- app/app.c | 241 ++++++++++------------- app/generic.c | 2 +- app/main.c | 467 +++++++++++++++++++++++++------------------- app/menu.c | 29 ++- app/menu.h | 4 +- app/search.c | 4 +- bitmaps.c | 38 ++-- bitmaps.h | 8 +- board.c | 4 + firmware.bin | Bin 60844 -> 60996 bytes firmware.packed.bin | Bin 60862 -> 61014 bytes functions.c | 17 +- main.c | 4 +- misc.c | 40 ++-- misc.h | 46 ++--- radio.c | 22 ++- radio.h | 4 +- scheduler.c | 7 +- settings.c | 5 +- settings.h | 6 +- ui/menu.c | 6 + ui/menu.h | 1 + ui/status.c | 29 ++- 24 files changed, 529 insertions(+), 459 deletions(-) diff --git a/app/action.c b/app/action.c index 65cc280..511c61a 100644 --- a/app/action.c +++ b/app/action.c @@ -90,8 +90,8 @@ void ACTION_Monitor(void) if (g_scan_state_dir != SCAN_STATE_DIR_OFF) { - g_scan_pause_10ms = scan_pause_1_10ms; - g_scan_pause_mode = true; + g_scan_pause_10ms = g_eeprom.scan_hold_time_500ms * 50; + g_scan_pause_mode = true; } #ifdef g_power_save_expired diff --git a/app/app.c b/app/app.c index 85cef6f..1e67845 100644 --- a/app/app.c +++ b/app/app.c @@ -103,7 +103,7 @@ static void APP_check_for_incoming_rx(void) if (g_css_scan_mode != CSS_SCAN_MODE_OFF && g_rx_reception_mode == RX_MODE_NONE) { // CTCSS/DTS scanning - g_scan_pause_10ms = scan_pause_5_10ms; + g_scan_pause_10ms = scan_pause_code_10ms; g_rx_reception_mode = RX_MODE_DETECTED; } @@ -118,62 +118,32 @@ static void APP_check_for_incoming_rx(void) } #endif - if (g_current_function != FUNCTION_INCOMING) - { - FUNCTION_Select(FUNCTION_INCOMING); - //g_update_display = true; - - APP_update_rssi(g_eeprom.rx_vfo); - g_update_rssi = true; - } - - return; + goto done; } // dual watch is enabled and we're RX'ing a signal if (g_rx_reception_mode != RX_MODE_NONE) - { - if (g_current_function != FUNCTION_INCOMING) - { - FUNCTION_Select(FUNCTION_INCOMING); - //g_update_display = true; + goto done; - APP_update_rssi(g_eeprom.rx_vfo); - g_update_rssi = true; - } - return; - } - - g_dual_watch_count_down_10ms = dual_watch_count_after_rx_10ms; - g_schedule_dual_watch = false; + g_dual_watch_delay_10ms = g_eeprom.scan_hold_time_500ms * 50; g_update_status = true; } else { // RF scanning if (g_rx_reception_mode != RX_MODE_NONE) - { - if (g_current_function != FUNCTION_INCOMING) - { - FUNCTION_Select(FUNCTION_INCOMING); - //g_update_display = true; + goto done; - APP_update_rssi(g_eeprom.rx_vfo); - g_update_rssi = true; - } - return; - } - - g_scan_pause_10ms = scan_pause_3_10ms; + g_scan_pause_10ms = scan_pause_chan_10ms; } g_rx_reception_mode = RX_MODE_DETECTED; +done: if (g_current_function != FUNCTION_INCOMING) { FUNCTION_Select(FUNCTION_INCOMING); - //g_update_display = true; APP_update_rssi(g_eeprom.rx_vfo); g_update_rssi = true; @@ -223,7 +193,7 @@ static void APP_process_incoming_rx(void) return; if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF) - { // not scanning + { // not code scanning #ifdef ENABLE_KILL_REVIVE if (g_rx_vfo->dtmf_decoding_enable || g_setting_radio_disabled) @@ -238,10 +208,8 @@ static void APP_process_incoming_rx(void) { if (g_rx_reception_mode == RX_MODE_DETECTED) { - g_dual_watch_count_down_10ms = dual_watch_count_after_1_10ms; - g_schedule_dual_watch = false; - - g_rx_reception_mode = RX_MODE_LISTENING; + g_dual_watch_delay_10ms = g_eeprom.scan_hold_time_500ms * 50; + g_rx_reception_mode = RX_MODE_LISTENING; g_update_status = true; g_update_display = true; @@ -411,7 +379,7 @@ Skip: break; case SCAN_RESUME_CO: - g_scan_pause_10ms = scan_pause_7_10ms; + g_scan_pause_10ms = g_eeprom.scan_hold_time_500ms * 50; break; case SCAN_RESUME_SE: @@ -456,13 +424,9 @@ static void APP_process_function(void) APP_process_incoming_rx(); case FUNCTION_MONITOR: - if (g_setting_backlight_on_tx_rx >= 2) - backlight_turn_on(backlight_tx_rx_time_500ms); break; case FUNCTION_RECEIVE: - if (g_setting_backlight_on_tx_rx >= 2) - backlight_turn_on(backlight_tx_rx_time_500ms); APP_process_rx(); break; @@ -488,6 +452,9 @@ void APP_start_listening(function_type_t Function, const bool reset_am_fix) return; #endif + if (g_setting_backlight_on_tx_rx >= 2) + backlight_turn_on(backlight_tx_rx_time_500ms); + #ifdef ENABLE_FMRADIO if (g_fm_radio_mode) BK1080_Init(0, false); @@ -501,15 +468,15 @@ void APP_start_listening(function_type_t Function, const bool reset_am_fix) g_enable_speaker = true; if (g_scan_state_dir != SCAN_STATE_DIR_OFF) - { // we're scanning + { // we're RF scanning switch (g_eeprom.scan_resume_mode) { case SCAN_RESUME_TO: if (!g_scan_pause_mode) { - g_scan_pause_10ms = scan_pause_1_10ms; - g_scan_pause_mode = true; + g_scan_pause_10ms = g_eeprom.scan_hold_time_500ms * 50; + g_scan_pause_mode = true; } break; @@ -519,7 +486,9 @@ void APP_start_listening(function_type_t Function, const bool reset_am_fix) break; } - g_scan_keep_frequency = true; + g_scan_restore_channel = 0xff; + g_scan_restore_frequency = 0; +// g_scan_keep_frequency = true; } #ifdef ENABLE_NOAA @@ -542,10 +511,8 @@ void APP_start_listening(function_type_t Function, const bool reset_am_fix) g_eeprom.dual_watch != DUAL_WATCH_OFF) { // not scanning, but dual watch is enabled - g_dual_watch_count_down_10ms = dual_watch_count_after_2_10ms; - g_schedule_dual_watch = false; - - g_rx_vfo_is_active = true; + g_dual_watch_delay_10ms = g_eeprom.scan_hold_time_500ms * 50; + g_rx_vfo_is_active = true; g_update_status = true; } @@ -562,16 +529,12 @@ void APP_start_listening(function_type_t Function, const bool reset_am_fix) if (g_rx_vfo->am_mode && g_setting_am_fix) { // AM RX mode if (reset_am_fix) - AM_fix_reset(chan); // TODO: only reset it when moving channel/frequency .. or do we ??? + AM_fix_reset(chan); // TODO: only reset it when moving channel/frequency .. or do we ??? AM_fix_10ms(chan); } else - { // FM RX mode - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); - } - #else - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); #endif + BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); } // AF gain - original QS values @@ -599,7 +562,7 @@ void APP_start_listening(function_type_t Function, const bool reset_am_fix) #else if (Function == FUNCTION_MONITOR) #endif - { // squelch is disabled + { // monitor mode (open squelch) if (g_screen_to_display != DISPLAY_MENU) // 1of11 .. don't close the menu GUI_SelectNextDisplay(DISPLAY_MAIN); } @@ -637,46 +600,53 @@ uint32_t APP_set_frequency_by_step(vfo_info_t *pInfo, int8_t Step) void APP_stop_scan(void) { - const uint8_t Previous = g_scan_restore_channel; - if (g_scan_state_dir == SCAN_STATE_DIR_OFF) return; // but, but, we weren't doing anything ! + // yes we were ;) + g_scan_state_dir = SCAN_STATE_DIR_OFF; - if (!g_scan_keep_frequency) - { - if (g_scan_next_channel <= USER_CHANNEL_LAST) - { - g_eeprom.user_channel[g_eeprom.rx_vfo] = g_scan_restore_channel; - g_eeprom.screen_channel[g_eeprom.rx_vfo] = Previous; + if (g_scan_restore_channel != 0xff || (g_scan_restore_frequency > 0 && g_scan_restore_frequency != 0xffffffff)) + { // revert to where we were before starting the scan - RADIO_ConfigureChannel(g_eeprom.rx_vfo, VFO_CONFIGURE_RELOAD); + if (g_scan_next_channel <= USER_CHANNEL_LAST) + { // we were channel scanning + + if (g_scan_restore_channel != 0xff) + { + g_eeprom.user_channel[g_eeprom.rx_vfo] = g_scan_restore_channel; + g_eeprom.screen_channel[g_eeprom.rx_vfo] = g_scan_restore_channel; + + RADIO_configure_channel(g_eeprom.rx_vfo, VFO_CONFIGURE_RELOAD); + RADIO_setup_registers(true); + } } else + if (g_scan_restore_frequency > 0 && g_scan_restore_frequency != 0xffffffff) { g_rx_vfo->freq_config_rx.frequency = g_scan_restore_frequency; RADIO_ApplyOffset(g_rx_vfo); RADIO_ConfigureSquelchAndOutputPower(g_rx_vfo); + RADIO_setup_registers(true); } - RADIO_setup_registers(true); - g_update_display = true; - return; } - - if (g_rx_vfo->channel_save > USER_CHANNEL_LAST) + else { - RADIO_ApplyOffset(g_rx_vfo); - RADIO_ConfigureSquelchAndOutputPower(g_rx_vfo); - SETTINGS_SaveChannel(g_rx_vfo->channel_save, g_eeprom.rx_vfo, g_rx_vfo, 1); - return; + if (g_rx_vfo->channel_save > USER_CHANNEL_LAST) + { + RADIO_ApplyOffset(g_rx_vfo); + RADIO_ConfigureSquelchAndOutputPower(g_rx_vfo); + SETTINGS_SaveChannel(g_rx_vfo->channel_save, g_eeprom.rx_vfo, g_rx_vfo, 1); + return; + } + + SETTINGS_SaveVfoIndices(); } - - SETTINGS_SaveVfoIndices(); - + g_update_status = true; } @@ -700,7 +670,7 @@ static void APP_next_freq(void) #ifdef ENABLE_FASTER_CHANNEL_SCAN g_scan_pause_10ms = 8; // 80ms #else - g_scan_pause_10ms = scan_pause_6_10ms; + g_scan_pause_10ms = scan_pause_freq_10ms; #endif } else @@ -711,11 +681,11 @@ static void APP_next_freq(void) #ifdef ENABLE_FASTER_CHANNEL_SCAN g_scan_pause_10ms = 10; // 100ms #else - g_scan_pause_10ms = scan_pause_6_10ms; + g_scan_pause_10ms = scan_pause_freq_10ms; #endif } - g_scan_keep_frequency = false; +// g_scan_keep_frequency = false; g_update_display = true; } @@ -803,7 +773,7 @@ static void APP_next_channel(void) g_eeprom.user_channel[g_eeprom.rx_vfo] = g_scan_next_channel; g_eeprom.screen_channel[g_eeprom.rx_vfo] = g_scan_next_channel; - RADIO_ConfigureChannel(g_eeprom.rx_vfo, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(g_eeprom.rx_vfo, VFO_CONFIGURE_RELOAD); RADIO_setup_registers(true); g_update_display = true; @@ -812,10 +782,10 @@ static void APP_next_channel(void) #ifdef ENABLE_FASTER_CHANNEL_SCAN g_scan_pause_10ms = 9; // 90ms .. <= ~60ms it misses signals (squelch response and/or PLL lock time) ? #else - g_scan_pause_10ms = scan_pause_3_10ms; + g_scan_pause_10ms = scan_pause_chan_10ms; #endif - g_scan_keep_frequency = false; +// g_scan_keep_frequency = false; if (enabled) if (++g_scan_current_scan_list >= SCAN_NEXT_NUM) @@ -832,6 +802,10 @@ static void APP_next_channel(void) static void APP_toggle_dual_watch_vfo(void) { + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_SendText("dual watch\r\n"); + #endif + #ifdef ENABLE_NOAA if (g_is_noaa_mode) { @@ -856,9 +830,9 @@ static void APP_toggle_dual_watch_vfo(void) RADIO_setup_registers(false); #ifdef ENABLE_NOAA - g_dual_watch_count_down_10ms = g_is_noaa_mode ? dual_watch_count_noaa_10ms : dual_watch_count_toggle_10ms; + g_dual_watch_delay_10ms = g_is_noaa_mode ? dual_watch_delay_noaa_10ms : dual_watch_delay_toggle_10ms; #else - g_dual_watch_count_down_10ms = dual_watch_count_toggle_10ms; + g_dual_watch_delay_10ms = dual_watch_delay_toggle_10ms; #endif } @@ -944,16 +918,14 @@ void APP_process_radio_interrupts(void) { if (g_current_function == FUNCTION_POWER_SAVE && !g_rx_idle_mode) { - g_power_save_10ms = power_save2_10ms; + g_power_save_10ms = power_save2_10ms; g_power_save_expired = false; } if (g_eeprom.dual_watch != DUAL_WATCH_OFF && - (g_schedule_dual_watch || g_dual_watch_count_down_10ms < dual_watch_count_after_vox_10ms)) + (g_dual_watch_delay_10ms == 0 || g_dual_watch_delay_10ms < dual_watch_delay_after_vox_10ms)) { - g_dual_watch_count_down_10ms = dual_watch_count_after_vox_10ms; - g_schedule_dual_watch = false; - + g_dual_watch_delay_10ms = dual_watch_delay_after_vox_10ms; g_update_status = true; } } @@ -1180,42 +1152,30 @@ void APP_process(void) #endif // toggle between the VFO's if dual watch is enabled - if (g_screen_to_display != DISPLAY_SEARCH && g_eeprom.dual_watch != DUAL_WATCH_OFF) - { - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) - UART_SendText("dual watch\r\n"); + if (g_eeprom.dual_watch != DUAL_WATCH_OFF && + g_dual_watch_delay_10ms == 0 && + !g_ptt_is_pressed && + #ifdef ENABLE_VOICE + g_voice_write_index == 0 && #endif + #ifdef ENABLE_FMRADIO + !g_fm_radio_mode && + #endif + g_dtmf_call_state == DTMF_CALL_STATE_NONE && + g_screen_to_display != DISPLAY_SEARCH && + g_scan_state_dir == SCAN_STATE_DIR_OFF && + g_css_scan_mode == CSS_SCAN_MODE_OFF && + g_current_function != FUNCTION_POWER_SAVE && + (g_current_function == FUNCTION_FOREGROUND || g_current_function == FUNCTION_POWER_SAVE)) + { + APP_toggle_dual_watch_vfo(); // toggle between the two VFO's - #ifdef ENABLE_VOICE - if (g_voice_write_index == 0) - #endif - { - if (g_schedule_dual_watch) - { - if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF) - { - #ifdef ENABLE_FMRADIO - if (!g_fm_radio_mode) - #endif - { - if (!g_ptt_is_pressed && - g_dtmf_call_state == DTMF_CALL_STATE_NONE && - g_current_function != FUNCTION_POWER_SAVE) - { - APP_toggle_dual_watch_vfo(); // toggle between the two VFO's + if (g_rx_vfo_is_active && g_screen_to_display == DISPLAY_MAIN) + GUI_SelectNextDisplay(DISPLAY_MAIN); - if (g_rx_vfo_is_active && g_screen_to_display == DISPLAY_MAIN) - GUI_SelectNextDisplay(DISPLAY_MAIN); - - g_rx_vfo_is_active = false; - g_scan_pause_mode = false; - g_rx_reception_mode = RX_MODE_NONE; - g_schedule_dual_watch = false; - } - } - } - } - } + g_rx_vfo_is_active = false; + g_scan_pause_mode = false; + g_rx_reception_mode = RX_MODE_NONE; } #ifdef ENABLE_FMRADIO @@ -1311,7 +1271,6 @@ void APP_process(void) g_css_scan_mode == CSS_SCAN_MODE_OFF) { // dual watch mode, toggle between the two VFO's APP_toggle_dual_watch_vfo(); - g_update_rssi = false; } @@ -1599,7 +1558,7 @@ void APP_time_slice_10ms(void) SETTINGS_SaveChannel(g_tx_vfo->channel_save, g_eeprom.tx_vfo, g_tx_vfo, g_flag_save_channel ? 1 : 0); g_flag_save_channel = false; - RADIO_ConfigureChannel(g_eeprom.tx_vfo, VFO_CONFIGURE); + RADIO_configure_channel(g_eeprom.tx_vfo, VFO_CONFIGURE); RADIO_setup_registers(true); GUI_SelectNextDisplay(DISPLAY_MAIN); @@ -2179,8 +2138,8 @@ void APP_time_slice_500ms(void) { BK4819_StopScan(); - RADIO_ConfigureChannel(0, VFO_CONFIGURE_RELOAD); - RADIO_ConfigureChannel(1, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(0, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(1, VFO_CONFIGURE_RELOAD); RADIO_setup_registers(true); } @@ -2395,9 +2354,10 @@ void APP_channel_next(const bool flag, const scan_state_dir_t scan_direction) APP_next_freq(); } - g_scan_pause_10ms = scan_pause_2_10ms; - g_scan_pause_mode = false; - g_scan_keep_frequency = false; + g_scan_pause_10ms = scan_pause_css_10ms; + g_scan_pause_mode = false; + +// g_scan_keep_frequency = false; g_rx_reception_mode = RX_MODE_NONE; } @@ -2522,7 +2482,8 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wtype-limits" - if (g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF) +// if (g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF) + if (g_css_scan_mode != CSS_SCAN_MODE_OFF) { // FREQ/CTCSS/CDCSS scanning if ((Key >= KEY_0 && Key <= KEY_9) || Key == KEY_F) @@ -2800,12 +2761,12 @@ Skip: if (g_flag_reset_vfos) { - RADIO_ConfigureChannel(0, g_vfo_configure_mode); - RADIO_ConfigureChannel(1, g_vfo_configure_mode); + RADIO_configure_channel(0, g_vfo_configure_mode); + RADIO_configure_channel(1, g_vfo_configure_mode); } else { - RADIO_ConfigureChannel(g_eeprom.tx_vfo, g_vfo_configure_mode); + RADIO_configure_channel(g_eeprom.tx_vfo, g_vfo_configure_mode); } if (g_request_display_screen == DISPLAY_INVALID) diff --git a/app/generic.c b/app/generic.c index df9c7c0..afdbad3 100644 --- a/app/generic.c +++ b/app/generic.c @@ -158,7 +158,7 @@ void GENERIC_Key_PTT(bool key_pressed) else if (g_css_scan_mode != CSS_SCAN_MODE_OFF) { // CTCSS/CDCSS scanning .. stop - MENU_StopCssScan(); + MENU_stop_css_scan(); #ifdef ENABLE_VOICE g_another_voice_id = VOICE_ID_SCANNING_STOP; diff --git a/app/main.c b/app/main.c index 036e619..ed62403 100644 --- a/app/main.c +++ b/app/main.c @@ -39,12 +39,45 @@ // #include "app/spectrum.h" #endif +static void MAIN_stop_scan(void) +{ + if (g_scan_state_dir == SCAN_STATE_DIR_OFF) + return; + + APP_stop_scan(); + + #ifdef ENABLE_VOICE + g_another_voice_id = VOICE_ID_SCANNING_STOP; + #endif + + g_request_display_screen = DISPLAY_MAIN; + g_update_status = true; +} + void toggle_chan_scanlist(void) { // toggle the selected channels scanlist setting - if (g_screen_to_display == DISPLAY_SEARCH || !IS_USER_CHANNEL(g_tx_vfo->channel_save)) + if (g_screen_to_display != DISPLAY_MAIN || !IS_USER_CHANNEL(g_tx_vfo->channel_save)) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; return; + } + if (g_current_function != FUNCTION_FOREGROUND && + g_current_function != FUNCTION_INCOMING && + g_current_function != FUNCTION_MONITOR && + g_current_function != FUNCTION_RECEIVE) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + + if (g_scan_pause_10ms > 0 && !g_scan_pause_mode) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + if (g_tx_vfo->scanlist_1_participation) { if (g_tx_vfo->scanlist_2_participation) @@ -71,7 +104,7 @@ static void processFKeyFunction(const key_code_t Key) uint8_t Band; uint8_t Vfo = g_eeprom.tx_vfo; - if (g_screen_to_display == DISPLAY_MENU) + if (g_current_function == FUNCTION_TRANSMIT || g_screen_to_display == DISPLAY_MENU) { g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; return; @@ -81,6 +114,9 @@ static void processFKeyFunction(const key_code_t Key) { case KEY_0: // FM + if (g_scan_state_dir != SCAN_STATE_DIR_OFF) + MAIN_stop_scan(); + #ifdef ENABLE_FMRADIO ACTION_FM(); #else @@ -90,18 +126,19 @@ static void processFKeyFunction(const key_code_t Key) #endif + break; case KEY_1: // BAND if (!IS_FREQ_CHANNEL(g_tx_vfo->channel_save)) { - g_fkey_pressed = false; - g_update_status = true; - g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; return; } + MAIN_stop_scan(); + Band = g_tx_vfo->band + 1; if (g_setting_350_enable || Band != BAND5_350MHz) { @@ -118,13 +155,13 @@ static void processFKeyFunction(const key_code_t Key) g_request_save_vfo = true; g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; - g_request_display_screen = DISPLAY_MAIN; break; case KEY_2: // A/B + MAIN_stop_scan(); + if (g_eeprom.cross_vfo_rx_tx == CROSS_BAND_CHAN_A) g_eeprom.cross_vfo_rx_tx = CROSS_BAND_CHAN_B; else @@ -142,12 +179,13 @@ static void processFKeyFunction(const key_code_t Key) g_request_save_settings = 1; g_flag_reconfigure_vfos = true; -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; - g_request_display_screen = DISPLAY_MAIN; break; case KEY_3: // VFO/MR + + MAIN_stop_scan(); + if (g_eeprom.vfo_open && IS_NOT_NOAA_CHANNEL(g_tx_vfo->channel_save)) { uint8_t Channel; @@ -162,8 +200,6 @@ static void processFKeyFunction(const key_code_t Key) g_request_save_vfo = true; g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; - -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; break; } @@ -180,8 +216,6 @@ static void processFKeyFunction(const key_code_t Key) g_request_save_vfo = true; g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; - -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; break; } } @@ -192,20 +226,20 @@ static void processFKeyFunction(const key_code_t Key) case KEY_4: // FC - g_fkey_pressed = false; - g_search_flag_start_scan = true; - g_search_single_frequency = false; - g_backup_cross_vfo_rx_tx = g_eeprom.cross_vfo_rx_tx; - g_eeprom.cross_vfo_rx_tx = CROSS_BAND_OFF; - g_update_status = true; + MAIN_stop_scan(); -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + g_search_flag_start_scan = true; + g_search_single_frequency = false; + g_backup_cross_vfo_rx_tx = g_eeprom.cross_vfo_rx_tx; + g_eeprom.cross_vfo_rx_tx = CROSS_BAND_OFF; break; case KEY_5: // NOAA #ifdef ENABLE_NOAA + MAIN_stop_scan(); + if (IS_NOT_NOAA_CHANNEL(g_tx_vfo->channel_save)) { g_eeprom.screen_channel[Vfo] = g_eeprom.noaa_channel[g_eeprom.tx_vfo]; @@ -213,6 +247,7 @@ static void processFKeyFunction(const key_code_t Key) else { g_eeprom.screen_channel[Vfo] = g_eeprom.freq_channel[g_eeprom.tx_vfo]; + #ifdef ENABLE_VOICE g_another_voice_id = VOICE_ID_FREQUENCY_MODE; #endif @@ -226,81 +261,95 @@ static void processFKeyFunction(const key_code_t Key) #endif #endif -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; break; case KEY_6: // H/M/L + if (g_scan_state_dir == SCAN_STATE_DIR_OFF) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + ACTION_Power(); -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; break; case KEY_7: // VOX #ifdef ENABLE_VOX + MAIN_stop_scan(); + ACTION_Vox(); #else toggle_chan_scanlist(); #endif - g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + break; case KEY_8: // R + if (g_scan_state_dir == SCAN_STATE_DIR_OFF) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + g_tx_vfo->frequency_reverse = g_tx_vfo->frequency_reverse == false; g_request_save_channel = 1; -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + break; case KEY_9: // CALL - if (RADIO_CheckValidChannel(g_eeprom.chan_1_call, false, 0)) + if (!RADIO_CheckValidChannel(g_eeprom.chan_1_call, false, 0)) { - g_eeprom.user_channel[Vfo] = g_eeprom.chan_1_call; - g_eeprom.screen_channel[Vfo] = g_eeprom.chan_1_call; - #ifdef ENABLE_VOICE - AUDIO_SetVoiceID(0, VOICE_ID_CHANNEL_MODE); - AUDIO_SetDigitVoice(1, g_eeprom.chan_1_call + 1); - g_another_voice_id = (voice_id_t)0xFE; - #endif - g_request_save_vfo = true; - g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; - break; + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; } -// g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + // swap to the CALL channel + + MAIN_stop_scan(); + + g_eeprom.user_channel[Vfo] = g_eeprom.chan_1_call; + g_eeprom.screen_channel[Vfo] = g_eeprom.chan_1_call; + + #ifdef ENABLE_VOICE + AUDIO_SetVoiceID(0, VOICE_ID_CHANNEL_MODE); + AUDIO_SetDigitVoice(1, g_eeprom.chan_1_call + 1); + g_another_voice_id = (voice_id_t)0xFE; + #endif + + g_request_save_vfo = true; + g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; + break; default: - g_update_status = true; - g_fkey_pressed = false; - g_fkey_pressed = false; - - #ifdef ENABLE_FMRADIO -// if (!g_fm_radio_mode) - #endif -// g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; +// g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; break; } } static void MAIN_Key_DIGITS(key_code_t Key, bool key_pressed, bool key_held) { + g_key_input_count_down = key_input_timeout_500ms; + if (key_held) { // key held down if (key_pressed) - { + { // and pressed if (g_screen_to_display == DISPLAY_MAIN) { if (g_input_box_index > 0) - { // delete any inputted chars + { // clear the user box g_input_box_index = 0; g_request_display_screen = DISPLAY_MAIN; } - g_fkey_pressed = false; - g_update_status = true; + g_fkey_pressed = false; + g_update_status = true; processFKeyFunction(Key); } @@ -311,27 +360,151 @@ static void MAIN_Key_DIGITS(key_code_t Key, bool key_pressed, bool key_held) if (key_pressed) { // key is pressed - g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; // beep when key is pressed - return; // don't use the key till it's released + g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + return; // don't use the key till it's released } - if (!g_fkey_pressed) - { // F-key wasn't pressed + if (g_fkey_pressed) + { // F-key was first pressed + processFKeyFunction(Key); - const uint8_t Vfo = g_eeprom.tx_vfo; - - g_key_input_count_down = key_input_timeout_500ms; - - INPUTBOX_Append(Key); - - g_request_display_screen = DISPLAY_MAIN; - - if (IS_USER_CHANNEL(g_tx_vfo->channel_save)) - { // user is entering channel number - - uint16_t Channel; - - if (g_input_box_index != 3) + g_fkey_pressed = false; + g_update_status = true; + return; + } + + const uint8_t Vfo = g_eeprom.tx_vfo; + + if (g_scan_state_dir != SCAN_STATE_DIR_OFF || g_current_function == FUNCTION_TRANSMIT) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + + // add the digit to the channel/frequency input box + + INPUTBOX_Append(Key); + + g_request_display_screen = DISPLAY_MAIN; + + if (IS_USER_CHANNEL(g_tx_vfo->channel_save)) + { // user is entering channel number + + uint16_t Channel; + + if (g_input_box_index != 3) + { + #ifdef ENABLE_VOICE + g_another_voice_id = (voice_id_t)Key; + #endif + g_request_display_screen = DISPLAY_MAIN; + return; + } + + g_input_box_index = 0; + + Channel = ((g_input_box[0] * 100) + (g_input_box[1] * 10) + g_input_box[2]) - 1; + + if (!RADIO_CheckValidChannel(Channel, false, 0)) + { + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + + #ifdef ENABLE_VOICE + g_another_voice_id = (voice_id_t)Key; + #endif + + g_eeprom.user_channel[Vfo] = (uint8_t)Channel; + g_eeprom.screen_channel[Vfo] = (uint8_t)Channel; + g_request_save_vfo = true; + g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; + + return; + } + +// #ifdef ENABLE_NOAA +// if (IS_NOT_NOAA_CHANNEL(g_tx_vfo->channel_save)) +// #endif + if (IS_FREQ_CHANNEL(g_tx_vfo->channel_save)) + { // user is entering a frequency + + uint32_t Frequency; + + if (g_input_box_index < 6) + { + #ifdef ENABLE_VOICE + g_another_voice_id = (voice_id_t)Key; + #endif + + return; + } + + g_input_box_index = 0; + + NUMBER_Get(g_input_box, &Frequency); + + // clamp the frequency entered to some valid value + if (Frequency < FREQ_BAND_TABLE[0].lower) + { + Frequency = FREQ_BAND_TABLE[0].lower; + } + else + if (Frequency >= BX4819_BAND1.upper && Frequency < BX4819_BAND2.lower) + { + const uint32_t center = (BX4819_BAND1.upper + BX4819_BAND2.lower) / 2; + Frequency = (Frequency < center) ? BX4819_BAND1.upper : BX4819_BAND2.lower; + } + else + if (Frequency > FREQ_BAND_TABLE[ARRAY_SIZE(FREQ_BAND_TABLE) - 1].upper) + { + Frequency = FREQ_BAND_TABLE[ARRAY_SIZE(FREQ_BAND_TABLE) - 1].upper; + } + + { + const frequency_band_t band = FREQUENCY_GetBand(Frequency); + + #ifdef ENABLE_VOICE + g_another_voice_id = (voice_id_t)Key; + #endif + + if (g_tx_vfo->band != band) + { + g_tx_vfo->band = band; + g_eeprom.screen_channel[Vfo] = band + FREQ_CHANNEL_FIRST; + g_eeprom.freq_channel[Vfo] = band + FREQ_CHANNEL_FIRST; + + SETTINGS_SaveVfoIndices(); + + RADIO_configure_channel(Vfo, VFO_CONFIGURE_RELOAD); + } + +// Frequency += 75; // is this meant to be rounding ? + Frequency += g_tx_vfo->step_freq / 2; // no idea, but this is + + Frequency = FREQUENCY_FloorToStep(Frequency, g_tx_vfo->step_freq, FREQ_BAND_TABLE[g_tx_vfo->band].lower); + + if (Frequency >= BX4819_BAND1.upper && Frequency < BX4819_BAND2.lower) + { // clamp the frequency to the limit + const uint32_t center = (BX4819_BAND1.upper + BX4819_BAND2.lower) / 2; + Frequency = (Frequency < center) ? BX4819_BAND1.upper - g_tx_vfo->step_freq : BX4819_BAND2.lower; + } + + g_tx_vfo->freq_config_rx.frequency = Frequency; + + g_request_save_channel = 1; + return; + } + + } + #ifdef ENABLE_NOAA + else + if (IS_NOAA_CHANNEL(g_tx_vfo->channel_save)) + { // user is entering NOAA channel + + uint8_t Channel; + + if (g_input_box_index != 2) { #ifdef ENABLE_VOICE g_another_voice_id = (voice_id_t)Key; @@ -339,146 +512,27 @@ static void MAIN_Key_DIGITS(key_code_t Key, bool key_pressed, bool key_held) g_request_display_screen = DISPLAY_MAIN; return; } - + g_input_box_index = 0; - - Channel = ((g_input_box[0] * 100) + (g_input_box[1] * 10) + g_input_box[2]) - 1; - - if (!RADIO_CheckValidChannel(Channel, false, 0)) - { - g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; - return; - } - - #ifdef ENABLE_VOICE - g_another_voice_id = (voice_id_t)Key; - #endif - - g_eeprom.user_channel[Vfo] = (uint8_t)Channel; - g_eeprom.screen_channel[Vfo] = (uint8_t)Channel; - g_request_save_vfo = true; - g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; - - return; - } - -// #ifdef ENABLE_NOAA -// if (IS_NOT_NOAA_CHANNEL(g_tx_vfo->channel_save)) -// #endif - if (IS_FREQ_CHANNEL(g_tx_vfo->channel_save)) - { // user is entering a frequency - - uint32_t Frequency; - - if (g_input_box_index < 6) + + Channel = (g_input_box[0] * 10) + g_input_box[1]; + if (Channel >= 1 && Channel <= ARRAY_SIZE(NOAA_FREQUENCY_TABLE)) { + Channel += NOAA_CHANNEL_FIRST; #ifdef ENABLE_VOICE - g_another_voice_id = (voice_id_t)Key; + g_another_voice_id = (voice_id_t)Key; #endif - + g_eeprom.noaa_channel[Vfo] = Channel; + g_eeprom.screen_channel[Vfo] = Channel; + g_request_save_vfo = true; + g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; return; } - - g_input_box_index = 0; - - NUMBER_Get(g_input_box, &Frequency); - - // clamp the frequency entered to some valid value - if (Frequency < FREQ_BAND_TABLE[0].lower) - { - Frequency = FREQ_BAND_TABLE[0].lower; - } - else - if (Frequency >= BX4819_BAND1.upper && Frequency < BX4819_BAND2.lower) - { - const uint32_t center = (BX4819_BAND1.upper + BX4819_BAND2.lower) / 2; - Frequency = (Frequency < center) ? BX4819_BAND1.upper : BX4819_BAND2.lower; - } - else - if (Frequency > FREQ_BAND_TABLE[ARRAY_SIZE(FREQ_BAND_TABLE) - 1].upper) - { - Frequency = FREQ_BAND_TABLE[ARRAY_SIZE(FREQ_BAND_TABLE) - 1].upper; - } - - { - const frequency_band_t band = FREQUENCY_GetBand(Frequency); - - #ifdef ENABLE_VOICE - g_another_voice_id = (voice_id_t)Key; - #endif - - if (g_tx_vfo->band != band) - { - g_tx_vfo->band = band; - g_eeprom.screen_channel[Vfo] = band + FREQ_CHANNEL_FIRST; - g_eeprom.freq_channel[Vfo] = band + FREQ_CHANNEL_FIRST; - - SETTINGS_SaveVfoIndices(); - - RADIO_ConfigureChannel(Vfo, VFO_CONFIGURE_RELOAD); - } - -// Frequency += 75; // is this meant to be rounding ? - Frequency += g_tx_vfo->step_freq / 2; // no idea, but this is - - Frequency = FREQUENCY_FloorToStep(Frequency, g_tx_vfo->step_freq, FREQ_BAND_TABLE[g_tx_vfo->band].lower); - - if (Frequency >= BX4819_BAND1.upper && Frequency < BX4819_BAND2.lower) - { // clamp the frequency to the limit - const uint32_t center = (BX4819_BAND1.upper + BX4819_BAND2.lower) / 2; - Frequency = (Frequency < center) ? BX4819_BAND1.upper - g_tx_vfo->step_freq : BX4819_BAND2.lower; - } - - g_tx_vfo->freq_config_rx.frequency = Frequency; - - g_request_save_channel = 1; - return; - } - } - #ifdef ENABLE_NOAA - else - if (IS_NOAA_CHANNEL(g_tx_vfo->channel_save)) - { // user is entering NOAA channel - - uint8_t Channel; - - if (g_input_box_index != 2) - { - #ifdef ENABLE_VOICE - g_another_voice_id = (voice_id_t)Key; - #endif - g_request_display_screen = DISPLAY_MAIN; - return; - } - - g_input_box_index = 0; - - Channel = (g_input_box[0] * 10) + g_input_box[1]; - if (Channel >= 1 && Channel <= ARRAY_SIZE(NOAA_FREQUENCY_TABLE)) - { - Channel += NOAA_CHANNEL_FIRST; - #ifdef ENABLE_VOICE - g_another_voice_id = (voice_id_t)Key; - #endif - g_eeprom.noaa_channel[Vfo] = Channel; - g_eeprom.screen_channel[Vfo] = Channel; - g_request_save_vfo = true; - g_vfo_configure_mode = VFO_CONFIGURE_RELOAD; - return; - } - } - #endif - - g_request_display_screen = DISPLAY_MAIN; - g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; - return; - } - - g_fkey_pressed = false; - g_update_status = true; - - processFKeyFunction(Key); + #endif + + g_request_display_screen = DISPLAY_MAIN; + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; } static void MAIN_Key_EXIT(bool key_pressed, bool key_held) @@ -647,11 +701,8 @@ static void MAIN_Key_MENU(const bool key_pressed, const bool key_held) static void MAIN_Key_STAR(bool key_pressed, bool key_held) { - if (g_current_function == FUNCTION_TRANSMIT) - return; - if (g_input_box_index > 0) - { // entering a frequency or DTMF string + { // entering a channel, frequency or DTMF string if (!key_held && key_pressed) g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; @@ -671,6 +722,12 @@ static void MAIN_Key_STAR(bool key_pressed, bool key_held) return; } + if (g_scan_state_dir != SCAN_STATE_DIR_OFF || g_current_function == FUNCTION_TRANSMIT) + { // RF scanning or TX'ing + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + if (key_pressed) { // just pressed g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; @@ -779,7 +836,7 @@ static void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t D } if (g_scan_state_dir == SCAN_STATE_DIR_OFF) - { // not scanning + { // not RF scanning if (IS_NOT_NOAA_CHANNEL(Channel)) { @@ -891,9 +948,9 @@ void MAIN_process_key(key_code_t key, bool key_pressed, bool key_held) { DTMF_Append(Character); g_key_input_count_down = key_input_timeout_500ms; - g_ptt_was_released = true; g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; g_request_display_screen = DISPLAY_MAIN; + g_ptt_was_released = true; } return; } diff --git a/app/menu.c b/app/menu.c index 304974d..3e89743 100644 --- a/app/menu.c +++ b/app/menu.c @@ -76,7 +76,7 @@ } #endif -void MENU_StartCssScan(int8_t Direction) +void MENU_start_css_scan(int8_t Direction) { g_css_scan_mode = CSS_SCAN_MODE_SCANNING; g_update_status = true; @@ -87,10 +87,10 @@ void MENU_StartCssScan(int8_t Direction) MENU_SelectNextCode(); - g_scan_pause_10ms = scan_pause_2_10ms; + g_scan_pause_10ms = scan_pause_css_10ms; } -void MENU_StopCssScan(void) +void MENU_stop_css_scan(void) { g_css_scan_mode = CSS_SCAN_MODE_OFF; g_update_status = true; @@ -143,6 +143,11 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) *pMax = ARRAY_SIZE(g_sub_menu_off_on) - 1; break; + case MENU_SCAN_HOLD: + *pMin = 2; + *pMax = 20; + break; + case MENU_XB: *pMin = 0; *pMax = ARRAY_SIZE(g_sub_menu_xb) - 1; @@ -557,6 +562,10 @@ void MENU_AcceptSetting(void) g_update_status = true; break; + case MENU_SCAN_HOLD: + g_eeprom.scan_hold_time_500ms = g_sub_menu_selection; + break; + case MENU_XB: if (IS_NOAA_CHANNEL(g_eeprom.screen_channel[0])) return; @@ -882,7 +891,7 @@ void MENU_SelectNextCode(void) RADIO_setup_registers(true); - g_scan_pause_10ms = (g_selected_code_type == CODE_TYPE_CONTINUOUS_TONE) ? scan_pause_3_10ms : scan_pause_4_10ms; + g_scan_pause_10ms = (g_selected_code_type == CODE_TYPE_CONTINUOUS_TONE) ? scan_pause_ctcss_10ms : scan_pause_cdcss_10ms; g_update_display = true; } @@ -1022,6 +1031,10 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = (g_eeprom.dual_watch == DUAL_WATCH_OFF) ? 0 : 1; break; + case MENU_SCAN_HOLD: + g_sub_menu_selection = g_eeprom.scan_hold_time_500ms; + break; + case MENU_XB: g_sub_menu_selection = g_eeprom.cross_vfo_rx_tx; break; @@ -1482,7 +1495,7 @@ static void MENU_Key_EXIT(bool key_pressed, bool key_held) } else { - MENU_StopCssScan(); + MENU_stop_css_scan(); #ifdef ENABLE_VOICE g_another_voice_id = VOICE_ID_SCANNING_STOP; @@ -1669,7 +1682,7 @@ static void MENU_Key_STAR(const bool key_pressed, const bool key_held) if (g_css_scan_mode == CSS_SCAN_MODE_OFF) { - MENU_StartCssScan(1); + MENU_start_css_scan(1); g_request_display_screen = DISPLAY_MENU; #ifdef ENABLE_VOICE AUDIO_SetVoiceID(0, VOICE_ID_SCANNING_BEGIN); @@ -1678,7 +1691,7 @@ static void MENU_Key_STAR(const bool key_pressed, const bool key_held) } else { - MENU_StopCssScan(); + MENU_stop_css_scan(); g_request_display_screen = DISPLAY_MENU; #ifdef ENABLE_VOICE g_another_voice_id = VOICE_ID_SCANNING_STOP; @@ -1737,7 +1750,7 @@ static void MENU_Key_UP_DOWN(bool key_pressed, bool key_held, int8_t Direction) if (g_css_scan_mode != CSS_SCAN_MODE_OFF) { - MENU_StartCssScan(Direction); + MENU_start_css_scan(Direction); g_ptt_was_released = true; g_request_display_screen = DISPLAY_MENU; diff --git a/app/menu.h b/app/menu.h index ec5e185..22554a7 100644 --- a/app/menu.h +++ b/app/menu.h @@ -27,8 +27,8 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax); void MENU_AcceptSetting(void); void MENU_SelectNextCode(void); void MENU_ShowCurrentSetting(void); -void MENU_StartCssScan(int8_t Direction); -void MENU_StopCssScan(void); +void MENU_start_css_scan(int8_t Direction); +void MENU_stop_css_scan(void); void MENU_process_key(key_code_t Key, bool key_pressed, bool key_held); diff --git a/app/search.c b/app/search.c index 87e0a2b..ef101d0 100644 --- a/app/search.c +++ b/app/search.c @@ -334,8 +334,8 @@ static void SEARCH_Key_MENU(bool key_pressed, bool key_held) } else { - RADIO_ConfigureChannel(0, VFO_CONFIGURE_RELOAD); - RADIO_ConfigureChannel(1, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(0, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(1, VFO_CONFIGURE_RELOAD); g_tx_vfo->freq_config_rx.code_type = g_search_css_result_type; g_tx_vfo->freq_config_rx.code = g_search_css_result_code; diff --git a/bitmaps.c b/bitmaps.c index a2430a4..538c9cf 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -99,7 +99,7 @@ const uint8_t BITMAP_RX[8] = }; #endif -const uint8_t BITMAP_USB_C[9] = +const uint8_t BITMAP_USB_C[8] = { // USB symbol __extension__ 0b00000000, __extension__ 0b00011100, @@ -107,13 +107,12 @@ const uint8_t BITMAP_USB_C[9] = __extension__ 0b01000100, __extension__ 0b01000100, __extension__ 0b01000100, - __extension__ 0b01000100, __extension__ 0b00100111, __extension__ 0b00011100 }; const uint8_t BITMAP_KEYLOCK[6] = -{ // teeny padlock symbol +{ // teeny weeny padlock symbol __extension__ 0b00000000, __extension__ 0b01111100, __extension__ 0b01000110, @@ -191,7 +190,7 @@ const uint8_t BITMAP_F_KEY[6] = }; #endif -const uint8_t BITMAP_TDR1[12] = +const uint8_t BITMAP_TDR_RUNNING[12] = { // "DW" __extension__ 0b00000000, __extension__ 0b01111111, @@ -207,20 +206,20 @@ const uint8_t BITMAP_TDR1[12] = __extension__ 0b01111111 }; -const uint8_t BITMAP_TDR2[12] = -{ // "><" .. DW on hold +const uint8_t BITMAP_TDR_HOLDING[12] = +{ // "--" .. DW on hold __extension__ 0b00000000, - __extension__ 0b00000000, - __extension__ 0b00100010, - __extension__ 0b00110110, - __extension__ 0b00011100, + __extension__ 0b00001000, + __extension__ 0b00001000, + __extension__ 0b00001000, + __extension__ 0b00001000, __extension__ 0b00001000, __extension__ 0b00000000, __extension__ 0b00001000, - __extension__ 0b00011100, - __extension__ 0b00110110, - __extension__ 0b00100010, - __extension__ 0b00000000 + __extension__ 0b00001000, + __extension__ 0b00001000, + __extension__ 0b00001000, + __extension__ 0b00001000 }; #ifdef ENABLE_VOICE @@ -238,6 +237,16 @@ const uint8_t BITMAP_TDR2[12] = }; #endif +const uint8_t BITMAP_MONITOR[6] = +{ // "M" + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00000010, + __extension__ 0b00001100, + __extension__ 0b00000010, + __extension__ 0b01111111 +}; + #ifdef ENABLE_FMRADIO const uint8_t BITMAP_FM[12] = { // "FM" @@ -247,7 +256,6 @@ const uint8_t BITMAP_TDR2[12] = __extension__ 0b00001001, __extension__ 0b00001001, __extension__ 0b00000001, - __extension__ 0b00000000, __extension__ 0b01111111, __extension__ 0b00000010, diff --git a/bitmaps.h b/bitmaps.h index d950769..7ccb581 100644 --- a/bitmaps.h +++ b/bitmaps.h @@ -10,7 +10,7 @@ extern const uint8_t BITMAP_RX[8]; extern const uint8_t BITMAP_BATTERY_LEVEL[17]; -extern const uint8_t BITMAP_USB_C[9]; +extern const uint8_t BITMAP_USB_C[8]; extern const uint8_t BITMAP_KEYLOCK[6]; @@ -26,13 +26,15 @@ extern const uint8_t BITMAP_F_KEY[6]; extern const uint8_t BITMAP_XB[12]; #endif -extern const uint8_t BITMAP_TDR1[12]; -extern const uint8_t BITMAP_TDR2[12]; +extern const uint8_t BITMAP_TDR_RUNNING[12]; +extern const uint8_t BITMAP_TDR_HOLDING[12]; #ifdef ENABLE_VOICE extern const uint8_t BITMAP_VOICE_PROMPT[9]; #endif +extern const uint8_t BITMAP_MONITOR[6]; + #ifdef ENABLE_FMRADIO extern const uint8_t BITMAP_FM[12]; #endif diff --git a/board.c b/board.c index e9dfe08..a2b7441 100644 --- a/board.c +++ b/board.c @@ -747,6 +747,10 @@ void BOARD_EEPROM_load(void) #endif g_setting_backlight_on_tx_rx = (Data[7] >> 6) & 3u; + // 0F48..0F4F + EEPROM_ReadBuffer(0x0F48, Data, 8); + g_eeprom.scan_hold_time_500ms = (Data[0] > 20) ? 6 : (Data[0] < 2) ? 6 : Data[0]; + if (!g_eeprom.vfo_open) { g_eeprom.screen_channel[0] = g_eeprom.user_channel[0]; diff --git a/firmware.bin b/firmware.bin index cf5c0237ae9ac58fa68e502702cf58cf2e2b7586..97c8d3cca8fc4321bda42509dbe6582cae3eb30d 100644 GIT binary patch delta 31921 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

(=FKMnV!)Ho4x!g#`l0UhC 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 z�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 OA3Jg69D#kHx9~q=avU=N diff --git a/functions.c b/functions.c index 3c39456..983a0c6 100644 --- a/functions.c +++ b/functions.c @@ -89,11 +89,14 @@ void FUNCTION_Select(function_type_t Function) if (was_power_save && Function != FUNCTION_POWER_SAVE) { // wake up BK4819_Conditional_RX_TurnOn_and_GPIO6_Enable(); + g_rx_idle_mode = false; UI_DisplayStatus(false); } + g_update_status = true; + switch (Function) { case FUNCTION_FOREGROUND: @@ -125,7 +128,6 @@ void FUNCTION_Select(function_type_t Function) g_dtmf_auto_reset_time_500ms = g_eeprom.dtmf_auto_reset_time * 2; } - g_update_status = true; return; case FUNCTION_MONITOR: @@ -165,8 +167,6 @@ void FUNCTION_Select(function_type_t Function) BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_UNKNOWN, false); - g_update_status = true; - if (g_screen_to_display != DISPLAY_MENU) // 1of11 .. don't close the menu GUI_SelectNextDisplay(DISPLAY_MAIN); @@ -258,6 +258,13 @@ void FUNCTION_Select(function_type_t Function) if (g_setting_backlight_on_tx_rx == 1 || g_setting_backlight_on_tx_rx == 3) backlight_turn_on(backlight_tx_rx_time_500ms); + if (g_eeprom.dual_watch != DUAL_WATCH_OFF) + { // dual-RX is enabled + g_dual_watch_delay_10ms = dual_watch_delay_after_tx_10ms; + if (g_dual_watch_delay_10ms < (g_eeprom.scan_hold_time_500ms * 50)) + g_dual_watch_delay_10ms = g_eeprom.scan_hold_time_500ms * 50; + } + break; case FUNCTION_PANADAPTER: @@ -265,9 +272,11 @@ void FUNCTION_Select(function_type_t Function) } g_battery_save_count_down_10ms = battery_save_count_10ms; - g_schedule_power_save = false; + g_schedule_power_save = false; #if defined(ENABLE_FMRADIO) g_fm_restore_count_down_10ms = 0; #endif + + g_update_status = true; } diff --git a/main.c b/main.c index 3e3ba76..2c7917c 100644 --- a/main.c +++ b/main.c @@ -92,8 +92,8 @@ void Main(void) BOARD_EEPROM_LoadCalibration(); - RADIO_ConfigureChannel(0, VFO_CONFIGURE_RELOAD); - RADIO_ConfigureChannel(1, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(0, VFO_CONFIGURE_RELOAD); + RADIO_configure_channel(1, VFO_CONFIGURE_RELOAD); RADIO_select_vfos(); diff --git a/misc.c b/misc.c index 623fa00..a1853f5 100644 --- a/misc.c +++ b/misc.c @@ -53,23 +53,19 @@ const uint8_t key_repeat_10ms = 50 / 10; // 50ms const uint16_t scan_freq_css_timeout_10ms = 10000 / 10; // 10 seconds const uint8_t scan_freq_css_delay_10ms = 210 / 10; // 210ms .. don't reduce this -const uint16_t dual_watch_count_after_tx_10ms = 3600 / 10; // 3.6 sec after TX ends -const uint16_t dual_watch_count_after_rx_10ms = 1000 / 10; // 1 sec after RX ends ? -const uint16_t dual_watch_count_after_1_10ms = 5000 / 10; // 5 sec -const uint16_t dual_watch_count_after_2_10ms = 3600 / 10; // 3.6 sec -const uint16_t dual_watch_count_noaa_10ms = 70 / 10; // 70ms #ifdef ENABLE_VOX - const uint16_t dual_watch_count_after_vox_10ms = 200 / 10; // 200ms + const uint16_t dual_watch_delay_after_vox_10ms = 200 / 10; // 200ms #endif -const uint16_t dual_watch_count_toggle_10ms = 100 / 10; // 100ms between VFO toggles +const uint16_t dual_watch_delay_after_tx_10ms = 7000 / 10; // 7 sec after TX ends +const uint16_t dual_watch_delay_noaa_10ms = 70 / 10; // 70ms +const uint16_t dual_watch_delay_toggle_10ms = 100 / 10; // 100ms between VFO toggles -const uint16_t scan_pause_1_10ms = 5000 / 10; // 5 seconds -const uint16_t scan_pause_2_10ms = 500 / 10; // 500ms -const uint16_t scan_pause_3_10ms = 200 / 10; // 200ms -const uint16_t scan_pause_4_10ms = 300 / 10; // 300ms -const uint16_t scan_pause_5_10ms = 1000 / 10; // 1 sec -const uint16_t scan_pause_6_10ms = 100 / 10; // 100ms -const uint16_t scan_pause_7_10ms = 3600 / 10; // 3.6 seconds +const uint16_t scan_pause_code_10ms = 1000 / 10; // 1 sec +const uint16_t scan_pause_css_10ms = 500 / 10; // 500ms +const uint16_t scan_pause_ctcss_10ms = 200 / 10; // 200ms +const uint16_t scan_pause_cdcss_10ms = 300 / 10; // 300ms +const uint16_t scan_pause_freq_10ms = 100 / 10; // 100ms +const uint16_t scan_pause_chan_10ms = 200 / 10; // 200ms const uint16_t battery_save_count_10ms = 10000 / 10; // 10 seconds @@ -80,9 +76,9 @@ const uint16_t power_save2_10ms = 200 / 10; // 200ms const uint16_t vox_stop_count_down_10ms = 1000 / 10; // 1 second #endif -const uint16_t noaa_count_down_10ms = 5000 / 10; // 5 seconds -const uint16_t noaa_count_down_2_10ms = 500 / 10; // 500ms -const uint16_t noaa_count_down_3_10ms = 200 / 10; // 200ms +const uint16_t noaa_count_down_10ms = 5000 / 10; // 5 seconds +const uint16_t noaa_count_down_2_10ms = 500 / 10; // 500ms +const uint16_t noaa_count_down_3_10ms = 200 / 10; // 200ms // *********************************************** @@ -141,10 +137,8 @@ volatile uint16_t g_battery_save_count_down_10ms = battery_save_count_10ms; volatile bool g_power_save_expired; volatile bool g_schedule_power_save; -volatile bool g_schedule_dual_watch = true; - -volatile uint16_t g_dual_watch_count_down_10ms; -volatile bool g_dual_watch_count_down_expired = true; +volatile uint16_t g_dual_watch_delay_10ms; +volatile bool g_dual_watch_delay_down_expired = true; volatile uint8_t g_serial_config_count_down_500ms; @@ -221,10 +215,10 @@ uint16_t g_low_batteryCountdown; reception_mode_t g_rx_reception_mode; uint8_t g_scan_next_channel; -uint8_t g_scan_restore_channel; scan_next_chan_t g_scan_current_scan_list; +uint8_t g_scan_restore_channel; uint32_t g_scan_restore_frequency; -bool g_scan_keep_frequency; +//bool g_scan_keep_frequency; bool g_scan_pause_mode; volatile uint16_t g_scan_pause_10ms; scan_state_dir_t g_scan_state_dir; diff --git a/misc.h b/misc.h index 4ad665f..799ef3d 100644 --- a/misc.h +++ b/misc.h @@ -151,23 +151,19 @@ extern const uint16_t noaa_count_down_10ms; extern const uint16_t noaa_count_down_2_10ms; extern const uint16_t noaa_count_down_3_10ms; -extern const uint16_t dual_watch_count_after_tx_10ms; -extern const uint16_t dual_watch_count_after_rx_10ms; -extern const uint16_t dual_watch_count_after_1_10ms; -extern const uint16_t dual_watch_count_after_2_10ms; -extern const uint16_t dual_watch_count_toggle_10ms; -extern const uint16_t dual_watch_count_noaa_10ms; #ifdef ENABLE_VOX - extern const uint16_t dual_watch_count_after_vox_10ms; + extern const uint16_t dual_watch_delay_after_vox_10ms; #endif +extern const uint16_t dual_watch_delay_after_tx_10ms; +extern const uint16_t dual_watch_delay_toggle_10ms; +extern const uint16_t dual_watch_delay_noaa_10ms; -extern const uint16_t scan_pause_1_10ms; -extern const uint16_t scan_pause_2_10ms; -extern const uint16_t scan_pause_3_10ms; -extern const uint16_t scan_pause_4_10ms; -extern const uint16_t scan_pause_5_10ms; -extern const uint16_t scan_pause_6_10ms; -extern const uint16_t scan_pause_7_10ms; +extern const uint16_t scan_pause_code_10ms; +extern const uint16_t scan_pause_css_10ms; +extern const uint16_t scan_pause_ctcss_10ms; +extern const uint16_t scan_pause_cdcss_10ms; +extern const uint16_t scan_pause_freq_10ms; +extern const uint16_t scan_pause_chan_10ms; extern const uint8_t g_mic_gain_dB_2[5]; @@ -224,10 +220,8 @@ extern volatile uint16_t g_battery_save_count_down_10ms; extern volatile bool g_power_save_expired; extern volatile bool g_schedule_power_save; -extern volatile bool g_schedule_dual_watch; - -extern volatile uint16_t g_dual_watch_count_down_10ms; -extern volatile bool g_dual_watch_count_down_expired; +extern volatile uint16_t g_dual_watch_delay_10ms; +extern volatile bool g_dual_watch_delay_down_expired; extern volatile uint8_t g_serial_config_count_down_500ms; @@ -300,14 +294,14 @@ extern bool g_flag_end_tx; extern uint16_t g_low_batteryCountdown; extern reception_mode_t g_rx_reception_mode; -extern uint8_t g_scan_next_channel; -extern uint8_t g_scan_restore_channel; -extern scan_next_chan_t g_scan_current_scan_list; -extern uint32_t g_scan_restore_frequency; -extern bool g_scan_keep_frequency; -extern bool g_scan_pause_mode; -extern volatile uint16_t g_scan_pause_10ms; -extern scan_state_dir_t g_scan_state_dir; +extern uint8_t g_scan_next_channel; // +extern scan_next_chan_t g_scan_current_scan_list; // +extern uint8_t g_scan_restore_channel; // the channel we were on before starting the RF scan +extern uint32_t g_scan_restore_frequency; // the frequency we were on before starting the RF scan +//extern bool g_scan_keep_frequency; +extern bool g_scan_pause_mode; // set if we're paused on a channel or frequency ? +extern volatile uint16_t g_scan_pause_10ms; // ticks till we move to next channel/frequency +extern scan_state_dir_t g_scan_state_dir; // the direction we're scanning in extern bool g_rx_vfo_is_active; diff --git a/radio.c b/radio.c index 7e8a1c3..451a38c 100644 --- a/radio.c +++ b/radio.c @@ -16,6 +16,7 @@ #include +#include "app/app.h" #include "app/dtmf.h" #ifdef ENABLE_FMRADIO #include "app/fm.h" @@ -138,7 +139,7 @@ void RADIO_InitInfo(vfo_info_t *pInfo, const uint8_t ChannelSave, const uint32_t RADIO_ConfigureSquelchAndOutputPower(pInfo); } -void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure) +void RADIO_configure_channel(const unsigned int VFO, const unsigned int configure) { uint8_t Channel; uint8_t Attributes; @@ -621,7 +622,7 @@ void RADIO_select_vfos(void) RADIO_SelectCurrentVfo(); } -void RADIO_setup_registers(bool switch_to_function_0) +void RADIO_setup_registers(bool switch_to_function_foreground) { BK4819_filter_bandwidth_t Bandwidth = g_rx_vfo->channel_bandwidth; uint16_t interrupt_mask; @@ -653,9 +654,9 @@ void RADIO_setup_registers(bool switch_to_function_0) #pragma GCC diagnostic pop - BK4819_set_GPIO_pin(BK4819_GPIO1_PIN29_RED, false); // LED off + BK4819_set_GPIO_pin(BK4819_GPIO1_PIN29_RED, false); // LED off BK4819_SetupPowerAmplifier(0, 0); - BK4819_set_GPIO_pin(BK4819_GPIO5_PIN1_UNKNOWN, false); // ??? + BK4819_set_GPIO_pin(BK4819_GPIO5_PIN1_UNKNOWN, false); // ??? while (1) { // wait for the interrupt to clear ? @@ -822,8 +823,13 @@ void RADIO_setup_registers(bool switch_to_function_0) FUNCTION_Init(); - if (switch_to_function_0) - FUNCTION_Select(FUNCTION_FOREGROUND); + if (switch_to_function_foreground) + { + if (g_monitor_enabled) + APP_start_listening(FUNCTION_MONITOR, false); + else + FUNCTION_Select(FUNCTION_FOREGROUND); + } } #ifdef ENABLE_NOAA @@ -975,10 +981,6 @@ void RADIO_PrepareTX(void) if (g_eeprom.dual_watch != DUAL_WATCH_OFF) { // dual-RX is enabled - - g_dual_watch_count_down_10ms = dual_watch_count_after_tx_10ms; - g_schedule_dual_watch = false; - #if 0 if (g_rx_vfo_is_active) { // use the TX vfo diff --git a/radio.h b/radio.h index c40b4a8..22b71af 100644 --- a/radio.h +++ b/radio.h @@ -129,11 +129,11 @@ extern vfo_state_t g_vfo_state[2]; bool RADIO_CheckValidChannel(uint16_t ChNum, bool bCheckScanList, uint8_t RadioNum); uint8_t RADIO_FindNextChannel(uint8_t ChNum, scan_state_dir_t Direction, bool bCheckScanList, uint8_t RadioNum); void RADIO_InitInfo(vfo_info_t *pInfo, const uint8_t ChannelSave, const uint32_t Frequency); -void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure); +void RADIO_configure_channel(const unsigned int VFO, const unsigned int configure); void RADIO_ConfigureSquelchAndOutputPower(vfo_info_t *pInfo); void RADIO_ApplyOffset(vfo_info_t *pInfo); void RADIO_select_vfos(void); -void RADIO_setup_registers(bool switch_to_function_0); +void RADIO_setup_registers(bool switch_to_function_foreground); #ifdef ENABLE_NOAA void RADIO_ConfigureNOAA(void); #endif diff --git a/scheduler.c b/scheduler.c index c59bb49..349f0ae 100644 --- a/scheduler.c +++ b/scheduler.c @@ -78,9 +78,10 @@ void SystickHandler(void) if (g_current_function == FUNCTION_POWER_SAVE) DECREMENT_AND_TRIGGER(g_power_save_10ms, g_power_save_expired); - if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF && g_eeprom.dual_watch != DUAL_WATCH_OFF) - if (g_current_function != FUNCTION_MONITOR && g_current_function != FUNCTION_TRANSMIT && g_current_function != FUNCTION_RECEIVE) - DECREMENT_AND_TRIGGER(g_dual_watch_count_down_10ms, g_schedule_dual_watch); + if (g_eeprom.dual_watch != DUAL_WATCH_OFF) + if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF) + if (g_current_function == FUNCTION_FOREGROUND || g_current_function == FUNCTION_POWER_SAVE) + DECREMENT(g_dual_watch_delay_10ms); #ifdef ENABLE_NOAA if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF && g_eeprom.dual_watch == DUAL_WATCH_OFF) diff --git a/settings.c b/settings.c index 6be4627..973508c 100644 --- a/settings.c +++ b/settings.c @@ -329,8 +329,11 @@ void SETTINGS_SaveSettings(void) if (!g_setting_am_fix) State[7] &= ~(1u << 5); #endif State[7] = (State[7] & ~(3u << 6)) | ((g_setting_backlight_on_tx_rx & 3u) << 6); - EEPROM_WriteBuffer(0x0F40, State); + + memset(State, 0xFF, sizeof(State)); + State[0] = g_eeprom.scan_hold_time_500ms; + EEPROM_WriteBuffer(0x0F48, State); } void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const vfo_info_t *pVFO, uint8_t Mode) diff --git a/settings.h b/settings.h index b714b37..f274c91 100644 --- a/settings.h +++ b/settings.h @@ -404,7 +404,9 @@ typedef struct { uint8_t am_fix:1; // 1 = RX AM fix uint8_t backlight_on_tx_rx:2; // 0 = no backlight when TX/RX, 1 = when TX, 2 = when RX, 3 = both RX/TX - uint8_t unused12[8]; // 0xff's + uint8_t scan_hold_time; // + + uint8_t unused12[7]; // 0xff's #endif // 0x0F50 @@ -526,6 +528,8 @@ typedef struct { uint16_t vox1_threshold; uint16_t vox0_threshold; + uint8_t scan_hold_time_500ms; + // uint8_t field29_0x26; // uint8_t field30_0x27; diff --git a/ui/menu.c b/ui/menu.c index 981f66e..1408241 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -59,6 +59,7 @@ const t_menu_item g_menu_list[] = {"Tx TO", VOICE_ID_TRANSMIT_OVER_TIME, MENU_TOT }, // was "TOT" {"Tx VFO", VOICE_ID_INVALID, MENU_XB }, // was "WX" {"Dual W", VOICE_ID_DUAL_STANDBY, MENU_TDR }, // was "TDR" + {"S HOLD", VOICE_ID_INVALID, MENU_SCAN_HOLD }, {"SCRAM", VOICE_ID_SCRAMBLER_ON, MENU_SCR }, // was "SCR" {"BCL", VOICE_ID_BUSY_LOCKOUT, MENU_BCL }, {"CH SAV", VOICE_ID_MEMORY_CHANNEL, MENU_MEM_CH }, // was "MEM-CH" @@ -853,6 +854,11 @@ void UI_DisplayMenu(void) strcpy(String, g_sub_menu_off_on[g_sub_menu_selection]); break; + case MENU_SCAN_HOLD: + strcpy(String, "SCAN HOLD\n"); + sprintf(String + strlen(String), "%d.%d sec", g_sub_menu_selection / 2, 5 * (g_sub_menu_selection % 2)); + break; + case MENU_XB: strcpy(String, g_sub_menu_xb[g_sub_menu_selection]); break; diff --git a/ui/menu.h b/ui/menu.h index 7f9dd99..9c592cf 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -53,6 +53,7 @@ enum MENU_TOT, MENU_XB, MENU_TDR, + MENU_SCAN_HOLD, MENU_SCR, MENU_BCL, MENU_MEM_CH, diff --git a/ui/status.c b/ui/status.c index 760453e..5252907 100644 --- a/ui/status.c +++ b/ui/status.c @@ -23,6 +23,7 @@ #include "bitmaps.h" #include "driver/keyboard.h" #include "driver/st7565.h" +#include "app/dtmf.h" #include "external/printf/printf.h" #include "functions.h" #include "helper/battery.h" @@ -135,19 +136,29 @@ void UI_DisplayStatus(const bool test_display) // DUAL-WATCH indicator if (g_eeprom.dual_watch != DUAL_WATCH_OFF || test_display) { - if (g_scan_state_dir == SCAN_STATE_DIR_OFF || - g_squelch_lost || - g_current_function == FUNCTION_INCOMING || - g_current_function == FUNCTION_MONITOR || - g_screen_to_display == DISPLAY_SEARCH || - test_display) + if (g_dual_watch_delay_10ms > dual_watch_delay_toggle_10ms || + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + g_scan_state_dir != SCAN_STATE_DIR_OFF || + g_css_scan_mode != CSS_SCAN_MODE_OFF || + (g_current_function != FUNCTION_FOREGROUND && g_current_function != FUNCTION_POWER_SAVE) || + g_screen_to_display == DISPLAY_SEARCH) { - memmove(line + x, BITMAP_TDR1, sizeof(BITMAP_TDR1)); // dual-watch is paused + memmove(line + x, BITMAP_TDR_HOLDING, sizeof(BITMAP_TDR_HOLDING)); } else - memmove(line + x, BITMAP_TDR2, sizeof(BITMAP_TDR2)); // dual-watch is running + { + memmove(line + x, BITMAP_TDR_RUNNING, sizeof(BITMAP_TDR_RUNNING)); + } + x1 = x + sizeof(BITMAP_TDR_RUNNING); } - x += sizeof(BITMAP_TDR1); + x += sizeof(BITMAP_TDR_RUNNING); + + if (g_current_function == FUNCTION_MONITOR) + { + memmove(line + x, BITMAP_MONITOR, sizeof(BITMAP_MONITOR)); + x1 = x + sizeof(BITMAP_MONITOR); + } + x += sizeof(BITMAP_MONITOR); // CROSS-VFO indicator if (g_eeprom.cross_vfo_rx_tx != CROSS_BAND_OFF || test_display)