0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 14:21:25 +03:00

Fixed F+4 and F+* freq/ctcss/cdcss search functions

This commit is contained in:
OneOfEleven 2023-10-13 07:49:59 +01:00
parent 75d4f13d7b
commit bc416c7433
13 changed files with 255 additions and 204 deletions

View File

@ -31,8 +31,8 @@ ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1
ENABLE_BOOT_BEEPS := 0
ENABLE_SHOW_CHARGE_LEVEL := 0
ENABLE_REVERSE_BAT_SYMBOL := 1
ENABLE_CODE_SCAN_TIMEOUT := 0
ENABLE_FREQ_CODE_SCAN_TIMEOUT := 1
ENABLE_FREQ_SEARCH_TIMEOUT := 0
ENABLE_CODE_SEARCH_TIMEOUT := 1
ENABLE_AM_FIX := 1
ENABLE_AM_FIX_SHOW_DATA := 1
ENABLE_SQUELCH_MORE_SENSITIVE := 1
@ -312,11 +312,11 @@ endif
ifeq ($(ENABLE_REVERSE_BAT_SYMBOL),1)
CFLAGS += -DENABLE_REVERSE_BAT_SYMBOL
endif
ifeq ($(ENABLE_CODE_SCAN_TIMEOUT),1)
CFLAGS += -DENABLE_CODE_SCAN_TIMEOUT
ifeq ($(ENABLE_CODE_SEARCH_TIMEOUT),1)
CFLAGS += -DENABLE_CODE_SEARCH_TIMEOUT
endif
ifeq ($(ENABLE_FREQ_CODE_SCAN_TIMEOUT),1)
CFLAGS += -DENABLE_FREQ_CODE_SCAN_TIMEOUT
ifeq ($(ENABLE_FREQ_SEARCH_TIMEOUT),1)
CFLAGS += -DENABLE_FREQ_SEARCH_TIMEOUT
endif
ifeq ($(ENABLE_AM_FIX),1)
CFLAGS += -DENABLE_AM_FIX

View File

@ -50,7 +50,7 @@ ENABLE_VOX := 1 voice operated transmission
ENABLE_ALARM := 1 TX alarms
ENABLE_1750HZ := 1 side key 1750Hz TX tone (older style repeater access)
ENABLE_PWRON_PASSWORD := 0 '1' = allow power-on password
ENABLE_RESET_AES_KEY := 1 '1' = reset/clear the AES key stored in the eeprom
ENABLE_RESET_AES_KEY := 1 '1' = reset/clear the AES key stored in the eeprom (only if it's set)
ENABLE_BIG_FREQ := 0 big font frequencies (like original QS firmware)
ENABLE_SMALL_BOLD := 1 bold channel name/no. (when name + freq channel display mode)
ENABLE_KEEP_MEM_NAME := 1 maintain channel name when (re)saving memory channel
@ -62,9 +62,8 @@ ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather
ENABLE_BOOT_BEEPS := 0 gives user audio feedback on volume knob position at boot-up
ENABLE_SHOW_CHARGE_LEVEL := 0 show the charge level when the radio is on charge
ENABLE_REVERSE_BAT_SYMBOL := 1 mirror the battery symbol on the status bar (+ pole on the right)
ENABLE_CODE_SCAN_TIMEOUT := 0 timeout if CTCSS/CDCSS is not found
ENABLE_FREQ_CODE_SCAN_TIMEOUT := 1 timeout if CTCSS/CDCSS is not found after a successful frequency scan
ENABLE_FREQ_CODE_ROUNDING := 0 rounds the detected RF frequency to the nearest step size in use - F+4 scan mode
ENABLE_FREQ_SEARCH_TIMEOUT := 1 timeout if FREQ not found
ENABLE_CODE_SEARCH_TIMEOUT := 0 timeout if CTCSS/CDCSS not found
ENABLE_AM_FIX := 1 dynamically adjust the front end gains when in AM mode to helo prevent AM demodulator saturation, ignore the on-screen RSSI level (for now)
ENABLE_AM_FIX_SHOW_DATA := 1 show debug data for the AM fix (still tweaking it)
ENABLE_SQUELCH_MORE_SENSITIVE := 1 make squelch levels a little bit more sensitive - I plan to let user adjust the values themselves

View File

@ -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
@ -1755,15 +1755,35 @@ 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
{ // 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))
break; // still scanning
@ -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,6 +1865,8 @@ 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;
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
g_update_status = true;
g_update_display = true;
}
@ -1855,6 +1884,8 @@ void APP_TimeSlice10ms(void)
{
g_scan_css_state = SCAN_CSS_STATE_FOUND;
g_scan_use_css_result = true;
AUDIO_PlayBeep(BEEP_880HZ_60MS_TRIPLE_BEEP);
g_update_status = true;
g_update_display = true;
}
@ -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 :(

View File

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

View File

@ -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;
#ifdef ENABLE_VOICE
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:
case SCAN_EDIT_STATE_SAVE_CONFIRM:
g_scanner_edit_state = SCAN_EDIT_STATE_NONE;
#ifdef ENABLE_VOICE
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:
if (g_input_box_index == 0)
{
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
g_request_display_screen = DISPLAY_SCANNER;
g_scanner_edit_state = SCAN_EDIT_STATE_DONE;
}
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;
case SCAN_EDIT_STATE_DONE:
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;
}
// break;
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
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_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;

View File

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

2
dcs.h
View File

@ -21,7 +21,7 @@
enum dcs_code_type_e
{
CODE_TYPE_OFF = 0,
CODE_TYPE_NONE = 0,
CODE_TYPE_CONTINUOUS_TONE,
CODE_TYPE_DIGITAL,
CODE_TYPE_REVERSE_DIGITAL

Binary file not shown.

Binary file not shown.

View File

@ -49,7 +49,7 @@ void FUNCTION_Init(void)
{
g_current_code_type = g_selected_code_type;
if (g_css_scan_mode == CSS_SCAN_MODE_OFF)
g_current_code_type = g_rx_vfo->am_mode ? CODE_TYPE_OFF : g_rx_vfo->pRX->code_type;
g_current_code_type = g_rx_vfo->am_mode ? CODE_TYPE_NONE : g_rx_vfo->pRX->code_type;
}
#ifdef ENABLE_NOAA
else

18
radio.c
View File

@ -273,8 +273,8 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure
switch (g_eeprom.vfo_info[VFO].freq_config_rx.code_type)
{
default:
case CODE_TYPE_OFF:
g_eeprom.vfo_info[VFO].freq_config_rx.code_type = CODE_TYPE_OFF;
case CODE_TYPE_NONE:
g_eeprom.vfo_info[VFO].freq_config_rx.code_type = CODE_TYPE_NONE;
Tmp = 0;
break;
@ -295,8 +295,8 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure
switch (g_eeprom.vfo_info[VFO].freq_config_tx.code_type)
{
default:
case CODE_TYPE_OFF:
g_eeprom.vfo_info[VFO].freq_config_tx.code_type = CODE_TYPE_OFF;
case CODE_TYPE_NONE:
g_eeprom.vfo_info[VFO].freq_config_tx.code_type = CODE_TYPE_NONE;
Tmp = 0;
break;
@ -414,8 +414,8 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure
{ // freq/chan is in AM mode
g_eeprom.vfo_info[VFO].scrambling_type = 0;
// g_eeprom.vfo_info[VFO].dtmf_decoding_enable = false; // no reason to disable DTMF decoding, aircraft use it on SSB
g_eeprom.vfo_info[VFO].freq_config_rx.code_type = CODE_TYPE_OFF;
g_eeprom.vfo_info[VFO].freq_config_tx.code_type = CODE_TYPE_OFF;
g_eeprom.vfo_info[VFO].freq_config_rx.code_type = CODE_TYPE_NONE;
g_eeprom.vfo_info[VFO].freq_config_tx.code_type = CODE_TYPE_NONE;
}
g_eeprom.vfo_info[VFO].compander = (Attributes & USER_CH_COMPAND) >> 4;
@ -673,7 +673,7 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0)
switch (code_type)
{
default:
case CODE_TYPE_OFF:
case CODE_TYPE_NONE:
BK4819_SetCTCSSFrequency(670);
//#ifndef ENABLE_CTCSS_TAIL_PHASE_SHIFT
@ -887,7 +887,7 @@ void RADIO_SetTxParameters(void)
switch (g_current_vfo->pTX->code_type)
{
default:
case CODE_TYPE_OFF:
case CODE_TYPE_NONE:
BK4819_ExitSubAu();
break;
@ -1055,7 +1055,7 @@ void RADIO_EnableCxCSS(void)
switch (g_current_vfo->pTX->code_type)
{
default:
case CODE_TYPE_OFF:
case CODE_TYPE_NONE:
break;
case CODE_TYPE_CONTINUOUS_TONE:

View File

@ -577,7 +577,7 @@ void UI_DisplayMenu(void)
break;
Code = 0;
pConfig->code_type = CODE_TYPE_OFF;
pConfig->code_type = CODE_TYPE_NONE;
pConfig->code = Code;
BK4819_ExitSubAu();

View File

@ -59,6 +59,7 @@ void UI_DisplayScanner(void)
case SCAN_CSS_STATE_SCANNING:
case SCAN_CSS_STATE_FOUND:
case SCAN_CSS_STATE_FAILED:
case SCAN_CSS_STATE_REPEAT:
{
const uint32_t freq = g_scan_frequency;
sprintf(String, "FREQ %u.%05u", freq / 100000, freq % 100000);
@ -66,7 +67,7 @@ void UI_DisplayScanner(void)
break;
case SCAN_CSS_STATE_FREQ_FAILED:
strcpy(String, "FREQ not found");
strcpy(String, "FREQ none found");
break;
}
@ -83,7 +84,6 @@ void UI_DisplayScanner(void)
{
default:
case SCAN_CSS_STATE_OFF:
case SCAN_CSS_STATE_FREQ_FAILED:
strcpy(String, "CODE");
break;
@ -92,12 +92,13 @@ void UI_DisplayScanner(void)
break;
case SCAN_CSS_STATE_FOUND:
case SCAN_CSS_STATE_REPEAT:
switch (g_scan_css_result_type)
{
default:
case CODE_TYPE_OFF:
strcpy(String, "CODE none");
case CODE_TYPE_NONE:
strcpy(String, "CODE none found");
break;
case CODE_TYPE_CONTINUOUS_TONE:
sprintf(String, "CTCSS %u.%uHz", CTCSS_OPTIONS[g_scan_css_result_code] / 10, CTCSS_OPTIONS[g_scan_css_result_code] % 10);
@ -110,7 +111,7 @@ void UI_DisplayScanner(void)
break;
case SCAN_CSS_STATE_FAILED:
strcpy(String, "CODE none");
strcpy(String, "CODE none found");
break;
}
@ -121,14 +122,14 @@ void UI_DisplayScanner(void)
memset(String, 0, sizeof(String));
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough="
switch (g_scanner_edit_state)
{
default:
case SCAN_EDIT_STATE_NONE:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough="
switch (g_scan_css_state)
{
default:
@ -153,16 +154,15 @@ void UI_DisplayScanner(void)
}
case SCAN_CSS_STATE_FREQ_FAILED:
case SCAN_CSS_STATE_REPEAT:
strcpy(String, "* repeat");
text_centered = true;
break;
}
#pragma GCC diagnostic pop
break;
case SCAN_EDIT_STATE_SAVE:
case SCAN_EDIT_STATE_SAVE_CHAN:
strcpy(String, "SAVE ");
{
char s[11];
@ -173,13 +173,14 @@ void UI_DisplayScanner(void)
}
break;
case SCAN_EDIT_STATE_DONE:
// strcpy(String, "* repeat M save");
strcpy(String, "* repeat");
case SCAN_EDIT_STATE_SAVE_CONFIRM:
strcpy(String, "* repeat Save ?");
text_centered = true;
break;
}
#pragma GCC diagnostic pop
UI_PrintString(String, text_centered ? 0 : 2, text_centered ? 127 : 0, 5, 8);
// ***********************************