From 135244852829c905621e2a80bcfad270cb7bcbfd Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sun, 19 Nov 2023 18:57:43 +0000 Subject: [PATCH] panadapter update --- firmware.bin | Bin 61188 -> 61316 bytes firmware.packed.bin | Bin 61206 -> 61334 bytes panadapter.c | 54 ++++++++++++++++++++++++-------------------- ui/main.c | 13 +++++++++-- 4 files changed, 40 insertions(+), 27 deletions(-) diff --git a/firmware.bin b/firmware.bin index 50c397e0c4fa8de00e6b37668f51ae3e75635d58..7795a009bfce249c296ac3df4ebd54da43e0e4ec 100644 GIT binary patch delta 10899 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 39d82aea51b9eb4403931d56a13cc3469328fbfc..423c338f80cbb65d8cad72c023eb648d246213af 100644 GIT binary patch delta 16334 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 delta 16205 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 B(dz&J diff --git a/panadapter.c b/panadapter.c index 292bf38..e4ee46b 100644 --- a/panadapter.c +++ b/panadapter.c @@ -2,6 +2,7 @@ #ifdef ENABLE_AM_FIX #include "am_fix.h" #endif +#include "app/dtmf.h" #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) #include "driver/uart.h" #endif @@ -14,6 +15,7 @@ #include "misc.h" #include "radio.h" #include "settings.h" +#include "ui/inputbox.h" #include "ui/main.h" #include "ui/ui.h" @@ -35,18 +37,14 @@ bool PAN_scanning(void) void PAN_set_freq(void) { // set the frequency - uint32_t freq = g_tx_vfo->p_rx->frequency; + int32_t freq = g_tx_vfo->p_rx->frequency; - uint32_t step_size = g_tx_vfo->step_freq; + int32_t step_size = g_tx_vfo->step_freq; step_size = (step_size < PANADAPTER_MIN_STEP) ? PANADAPTER_MIN_STEP : (step_size > PANADAPTER_MAX_STEP) ? PANADAPTER_MAX_STEP : step_size; if (g_panadapter_enabled && g_panadapter_vfo_mode <= 0) { // panadapter mode .. add the bin offset - if (panadapter_rssi_index < PANADAPTER_BINS) - freq -= step_size * (PANADAPTER_BINS - panadapter_rssi_index); - else - if (panadapter_rssi_index > PANADAPTER_BINS) - freq += step_size * (panadapter_rssi_index - PANADAPTER_BINS); + freq += step_size * ((int)panadapter_rssi_index - PANADAPTER_BINS); } BK4819_set_rf_frequency(freq, true); // set the VCO/PLL @@ -67,13 +65,18 @@ void PAN_process_10ms(void) #ifdef ENABLE_FMRADIO g_fm_radio_mode || #endif +// g_single_vfo < 0 || g_reduced_service || g_monitor_enabled || g_current_function == FUNCTION_TRANSMIT || g_current_function == FUNCTION_POWER_SAVE || g_current_display_screen == DISPLAY_SEARCH || g_css_scan_mode != CSS_SCAN_MODE_OFF || - g_scan_state_dir != SCAN_STATE_DIR_OFF) + g_scan_state_dir != SCAN_STATE_DIR_OFF || + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + g_dtmf_is_tx || + g_dtmf_input_mode || + g_input_box_index > 0) { if (g_panadapter_enabled) { // disable the panadapter @@ -81,8 +84,8 @@ void PAN_process_10ms(void) #ifdef ENABLE_PANADAPTER_PEAK_FREQ g_panadapter_peak_freq = 0; #endif - g_panadapter_vfo_mode = 1; - g_panadapter_enabled = false; + g_panadapter_vfo_mode = 1; + g_panadapter_enabled = false; PAN_set_freq(); g_update_display = true; @@ -97,12 +100,12 @@ void PAN_process_10ms(void) #ifdef ENABLE_PANADAPTER_PEAK_FREQ g_panadapter_peak_freq = 0; #endif - g_panadapter_vfo_mode = 0; -// g_panadapter_max_rssi = 0; -// g_panadapter_min_rssi = 0; - panadapter_rssi_index = 0; + g_panadapter_vfo_mode = 0; +// g_panadapter_max_rssi = 0; +// g_panadapter_min_rssi = 0; + panadapter_rssi_index = 0; // memset(g_panadapter_rssi, 0, sizeof(g_panadapter_rssi)); - g_panadapter_enabled = true; + g_panadapter_enabled = true; PAN_set_freq(); g_update_display = true; @@ -116,7 +119,7 @@ void PAN_process_10ms(void) const int16_t rssi = g_current_rssi[g_eeprom.config.setting.tx_vfo_num]; g_panadapter_rssi[PANADAPTER_BINS] = (rssi > 255) ? 255 : (rssi < 0) ? 0 : rssi; - g_panadapter_vfo_mode = 50; // pause scanning for at least another 500ms + g_panadapter_vfo_mode = 40; // pause scanning for at least another 400ms return; } @@ -132,16 +135,16 @@ void PAN_process_10ms(void) panadapter_rssi_index = 0; if (g_tx_vfo->channel.mod_mode == MOD_MODE_FM) - { // switch back to the VFO frequency for 90ms once every 250ms - g_panadapter_vfo_mode = ((panadapter_rssi_index % 25) == 0) ? 9 : 0; + { // switch back to the VFO frequency for 100ms once every 500ms + g_panadapter_vfo_mode = ((panadapter_rssi_index % 50) == 0) ? 10 : 0; } else - { // switch back to the VFO frequency for 90ms once each scan cycle - g_panadapter_vfo_mode = (panadapter_rssi_index == 0) ? 9 : 0; + { // switch back to the VFO frequency for 100ms once each scan cycle + g_panadapter_vfo_mode = (panadapter_rssi_index == 0) ? 10 : 0; } } else - { // checking the VFO frequency for a signal .. we periodically do this + { // checking the VFO frequency for a signal g_panadapter_vfo_mode--; } @@ -152,6 +155,7 @@ void PAN_process_10ms(void) { int i; + // compute the min/max RSSI values g_panadapter_max_rssi = g_panadapter_rssi[0]; g_panadapter_min_rssi = g_panadapter_rssi[0]; for (i = 1; i < (int)ARRAY_SIZE(g_panadapter_rssi); i++) @@ -165,20 +169,20 @@ void PAN_process_10ms(void) #ifdef ENABLE_PANADAPTER_PEAK_FREQ { // find the peak freq + const int32_t center_freq = g_tx_vfo->p_rx->frequency; int32_t step_size = g_tx_vfo->step_freq; uint8_t peak_rssi = 0; uint8_t threshold_rssi; - uint8_t span_rssi = g_panadapter_max_rssi - g_panadapter_min_rssi; if (span_rssi < 80) span_rssi = 80; - - step_size = (step_size < PANADAPTER_MIN_STEP) ? PANADAPTER_MIN_STEP : (step_size > PANADAPTER_MAX_STEP) ? PANADAPTER_MAX_STEP : step_size; - threshold_rssi = g_panadapter_min_rssi + (span_rssi / 4); + // limit the step size + step_size = (step_size < PANADAPTER_MIN_STEP) ? PANADAPTER_MIN_STEP : (step_size > PANADAPTER_MAX_STEP) ? PANADAPTER_MAX_STEP : step_size; + g_panadapter_peak_freq = 0; for (i = 0; i < (int)ARRAY_SIZE(g_panadapter_rssi); i++) diff --git a/ui/main.c b/ui/main.c index 558e1a2..39408da 100644 --- a/ui/main.c +++ b/ui/main.c @@ -428,6 +428,13 @@ void big_freq(const uint32_t frequency, const unsigned int x, const unsigned int return; } + if (g_dtmf_call_state != DTMF_CALL_STATE_NONE || g_dtmf_is_tx || g_dtmf_input_mode) + return; // DTMF call + +// if (g_input_box_index > 0 && IS_FREQ_CHANNEL(scrn_chan)) + if (g_input_box_index > 0) + return; // user is entering a frequency + // auto vertical scale max_rssi = g_panadapter_max_rssi; min_rssi = g_panadapter_min_rssi; @@ -476,7 +483,7 @@ void big_freq(const uint32_t frequency, const unsigned int x, const unsigned int rssi = (rssi < ((-129 + 160) * 2)) ? 0 : rssi - ((-129 + 160) * 2); // min of -129dBm (S3) rssi = rssi >> 2; #else - rssi = ((uint16_t)(rssi - min_rssi) * 20) / span_rssi; // 0 ~ 20 + rssi = ((uint16_t)(rssi - min_rssi) * 21) / span_rssi; // 0 ~ 21 #endif rssi += 2; // offset from the bottom @@ -545,7 +552,9 @@ void UI_DisplayMain(void) if (g_eeprom.config.setting.panadapter && g_panadapter_enabled) //if (!g_squelch_open && !g_monitor_enabled) if (!g_monitor_enabled) - single_vfo = g_eeprom.config.setting.tx_vfo_num; + if (g_dtmf_call_state == DTMF_CALL_STATE_NONE && !g_dtmf_is_tx && !g_dtmf_input_mode) + if (g_input_box_index == 0) + single_vfo = g_eeprom.config.setting.tx_vfo_num; #endif for (vfo_num = 0; vfo_num < 2; vfo_num++)