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

fix RF scanning

This commit is contained in:
OneOfEleven 2023-10-24 18:16:16 +01:00
parent fa1cbeb049
commit 0b0cf75db6
7 changed files with 54 additions and 66 deletions

View File

@ -12,7 +12,7 @@ ENABLE_OVERLAY := 0
ENABLE_LTO := 1 ENABLE_LTO := 1
# UART Programming 2.9 kB # UART Programming 2.9 kB
ENABLE_UART := 1 ENABLE_UART := 1
ENABLE_UART_DEBUG := 0 ENABLE_UART_DEBUG := 1
# AirCopy 2.5 kB # AirCopy 2.5 kB
ENABLE_AIRCOPY := 1 ENABLE_AIRCOPY := 1
ENABLE_AIRCOPY_REMEMBER_FREQ := 1 ENABLE_AIRCOPY_REMEMBER_FREQ := 1

View File

@ -244,16 +244,15 @@ static void APP_process_rx(void)
goto Skip; goto Skip;
} }
// why does being a VFO make a difference ??? .. 1of11 if (g_scan_state_dir != SCAN_STATE_DIR_OFF) // && IS_FREQ_CHANNEL(g_scan_next_channel))
//
/* if (g_scan_state_dir != SCAN_STATE_DIR_OFF && IS_FREQ_CHANNEL(g_scan_next_channel))
{ {
// return; if (g_squelch_open)
return;
Mode = END_OF_RX_MODE_END; Mode = END_OF_RX_MODE_END;
goto Skip; goto Skip;
} }
*/
switch (g_current_code_type) switch (g_current_code_type)
{ {
default: default:
@ -284,6 +283,9 @@ static void APP_process_rx(void)
if (g_squelch_open) if (g_squelch_open)
{ {
if (g_setting_backlight_on_tx_rx >= 2)
backlight_turn_on(backlight_tx_rx_time_500ms);
if (!g_end_of_rx_detected_maybe && IS_NOT_NOAA_CHANNEL(g_rx_vfo->channel_save)) if (!g_end_of_rx_detected_maybe && IS_NOT_NOAA_CHANNEL(g_rx_vfo->channel_save))
{ {
switch (g_current_code_type) switch (g_current_code_type)
@ -1161,18 +1163,15 @@ void APP_process(void)
g_current_function == FUNCTION_RECEIVE) && g_current_function == FUNCTION_RECEIVE) &&
g_screen_to_display != DISPLAY_SEARCH && g_screen_to_display != DISPLAY_SEARCH &&
g_scan_state_dir != SCAN_STATE_DIR_OFF && g_scan_state_dir != SCAN_STATE_DIR_OFF &&
g_scan_pause_10ms == 0 &&
!g_ptt_is_pressed) !g_ptt_is_pressed)
{ // RF scanning { // RF scanning
if (g_current_code_type == CODE_TYPE_NONE && g_current_function == FUNCTION_NEW_RECEIVE) // && !g_scan_pause_time_mode)
// TODO: check to see if signal stays present for minimum time before pausing (debounce)
if (g_current_code_type == CODE_TYPE_NONE && g_current_function == FUNCTION_NEW_RECEIVE && !g_scan_pause_time_mode)
{ {
APP_start_listening(g_monitor_enabled ? FUNCTION_MONITOR : FUNCTION_RECEIVE, true); APP_start_listening(g_monitor_enabled ? FUNCTION_MONITOR : FUNCTION_RECEIVE, true);
} }
else else
if (g_scan_pause_10ms == 0)
{ // switch to next channel { // switch to next channel
g_scan_pause_time_mode = false; g_scan_pause_time_mode = false;
g_rx_reception_mode = RX_MODE_NONE; g_rx_reception_mode = RX_MODE_NONE;

View File

@ -397,20 +397,20 @@ const uint8_t BITMAP_VFO_NOT_DEFAULT[8] =
const uint8_t BITMAP_SCANLIST1[6] = const uint8_t BITMAP_SCANLIST1[6] =
{ // 'I' symbol { // 'I' symbol
__extension__ 0b00000000, __extension__ 0b00000000,
__extension__ 0b00111110, __extension__ 0b00111111,
__extension__ 0b01111111, __extension__ 0b00111111,
__extension__ 0b01111111, __extension__ 0b00000000,
__extension__ 0b00111110, __extension__ 0b00000000,
__extension__ 0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_SCANLIST2[6] = const uint8_t BITMAP_SCANLIST2[6] =
{ // 'II' symbol { // 'II' symbol
__extension__ 0b00000000, __extension__ 0b00000000,
__extension__ 0b00111111,
__extension__ 0b00111111,
__extension__ 0b00000000, __extension__ 0b00000000,
__extension__ 0b00110110, __extension__ 0b00111111,
__extension__ 0b01110111, __extension__ 0b00111111
__extension__ 0b01110111,
__extension__ 0b00110110
}; };
#endif #endif

View File

@ -22,48 +22,33 @@
// this is decremented once every 500ms // this is decremented once every 500ms
uint16_t g_backlight_count_down = 0; uint16_t g_backlight_count_down = 0;
uint16_t backlight_ticks(void)
{
switch (g_eeprom.backlight)
{
case 1: return 2 * 5; // 5 sec
case 2: return 2 * 10; // 10 sec
case 3: return 2 * 20; // 20 sec
case 4: return 2 * 60; // 1 min
case 5: return 2 * 60 * 2; // 2 min
case 6: return 2 * 60 * 4; // 4 min
default:
case 7: return 0; // always on
}
}
void backlight_turn_on(const uint16_t min_ticks) void backlight_turn_on(const uint16_t min_ticks)
{ {
if (min_ticks > 0) if (min_ticks > 0)
{ {
if (g_backlight_count_down < min_ticks) if (g_backlight_count_down < min_ticks)
g_backlight_count_down = min_ticks; g_backlight_count_down = min_ticks;
// turn the backlight ON
GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
} }
else else
if (g_eeprom.backlight > 0) if (g_eeprom.backlight > 0)
{ {
// turn the backlight ON
GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
g_backlight_count_down = backlight_ticks();
switch (g_eeprom.backlight)
{
default:
case 1: // 5 sec
g_backlight_count_down = 5;
break;
case 2: // 10 sec
g_backlight_count_down = 10;
break;
case 3: // 20 sec
g_backlight_count_down = 20;
break;
case 4: // 1 min
g_backlight_count_down = 60;
break;
case 5: // 2 min
g_backlight_count_down = 60 * 2;
break;
case 6: // 4 min
g_backlight_count_down = 60 * 4;
break;
case 7: // always on
g_backlight_count_down = 0;
break;
}
g_backlight_count_down *= 2;
} }
} }

View File

@ -21,7 +21,8 @@
extern uint16_t g_backlight_count_down; extern uint16_t g_backlight_count_down;
void backlight_turn_on(const uint16_t min_ticks); uint16_t backlight_ticks(void);
void backlight_turn_on(const uint16_t min_ticks);
#endif #endif

View File

@ -61,6 +61,7 @@ const t_menu_item g_menu_list[] =
{"Tx TO", VOICE_ID_TRANSMIT_OVER_TIME, MENU_TX_TO }, // was "TOT" {"Tx TO", VOICE_ID_TRANSMIT_OVER_TIME, MENU_TX_TO }, // was "TOT"
{"Tx VFO", VOICE_ID_INVALID, MENU_CROSS_VFO }, // was "WX" {"Tx VFO", VOICE_ID_INVALID, MENU_CROSS_VFO }, // was "WX"
{"Dual W", VOICE_ID_DUAL_STANDBY, MENU_DUAL_WATCH }, // was "TDR" {"Dual W", VOICE_ID_DUAL_STANDBY, MENU_DUAL_WATCH }, // was "TDR"
{"SC REV", VOICE_ID_INVALID, MENU_SCAN_CAR_RESUME }, // was "SC_REV"
{"S HOLD", VOICE_ID_INVALID, MENU_SCAN_HOLD }, {"S HOLD", VOICE_ID_INVALID, MENU_SCAN_HOLD },
{"SCRAM", VOICE_ID_SCRAMBLER_ON, MENU_SCRAMBLER }, // was "SCR" {"SCRAM", VOICE_ID_SCRAMBLER_ON, MENU_SCRAMBLER }, // was "SCR"
{"BCL", VOICE_ID_BUSY_LOCKOUT, MENU_BUSY_CHAN_LOCK }, {"BCL", VOICE_ID_BUSY_LOCKOUT, MENU_BUSY_CHAN_LOCK },
@ -81,7 +82,6 @@ const t_menu_item g_menu_list[] =
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
{"VOICE", VOICE_ID_VOICE_PROMPT, MENU_VOICE }, {"VOICE", VOICE_ID_VOICE_PROMPT, MENU_VOICE },
#endif #endif
{"SC REV", VOICE_ID_INVALID, MENU_SCAN_CAR_RESUME }, // was "SC_REV"
#ifdef ENABLE_KEYLOCK #ifdef ENABLE_KEYLOCK
{"KeyLOC", VOICE_ID_INVALID, MENU_AUTO_KEY_LOCK }, // was "AUTOLk" {"KeyLOC", VOICE_ID_INVALID, MENU_AUTO_KEY_LOCK }, // was "AUTOLk"
#endif #endif
@ -241,11 +241,12 @@ const char g_sub_menu_cross_vfo[3][10] =
}; };
#endif #endif
const char g_sub_menu_scan_car_resume[3][13] = const char g_sub_menu_scan_car_resume[3][8] =
{ {
"TIME", "TIME ",
"CARRIER", "CARRIER",
"SEARCH" // "SEARCH"
"NO"
}; };
const char g_sub_menu_mem_disp[4][15] = const char g_sub_menu_mem_disp[4][15] =
@ -881,16 +882,6 @@ void UI_DisplayMenu(void)
strcpy(str, g_sub_menu_bat_save[g_sub_menu_selection]); strcpy(str, g_sub_menu_bat_save[g_sub_menu_selection]);
break; break;
case MENU_DUAL_WATCH:
// strcpy(String, g_sub_menu_dual_watch[g_sub_menu_selection]);
strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]);
break;
case MENU_SCAN_HOLD:
strcpy(str, "SCAN HOLD\n");
sprintf(str + strlen(str), "%d.%d sec", g_sub_menu_selection / 2, 5 * (g_sub_menu_selection % 2));
break;
case MENU_CROSS_VFO: case MENU_CROSS_VFO:
strcpy(str, g_sub_menu_cross_vfo[g_sub_menu_selection]); strcpy(str, g_sub_menu_cross_vfo[g_sub_menu_selection]);
break; break;
@ -905,9 +896,21 @@ void UI_DisplayMenu(void)
break; break;
#endif #endif
case MENU_DUAL_WATCH:
// strcpy(String, g_sub_menu_dual_watch[g_sub_menu_selection]);
strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]);
break;
case MENU_SCAN_CAR_RESUME: case MENU_SCAN_CAR_RESUME:
strcpy(str, "SCAN\nRESUME\n"); strcpy(str, "SCAN\nRESUME\n");
strcat(str, g_sub_menu_scan_car_resume[g_sub_menu_selection]); strcat(str, g_sub_menu_scan_car_resume[g_sub_menu_selection]);
if (g_sub_menu_selection == SCAN_RESUME_TIME)
sprintf(str + strlen(str), "%d.%ds", g_eeprom.scan_hold_time_500ms / 2, 5 * (g_eeprom.scan_hold_time_500ms % 2));
break;
case MENU_SCAN_HOLD:
strcpy(str, "SCAN HOLD\n");
sprintf(str + strlen(str), "%d.%d sec", g_sub_menu_selection / 2, 5 * (g_sub_menu_selection % 2));
break; break;
case MENU_MEM_DISP: case MENU_MEM_DISP:

View File

@ -169,7 +169,7 @@ extern const char g_sub_menu_cross_vfo[3][10];
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
extern const char g_sub_menu_voice[3][4]; extern const char g_sub_menu_voice[3][4];
#endif #endif
extern const char g_sub_menu_scan_car_resume[3][13]; extern const char g_sub_menu_scan_car_resume[3][8];
extern const char g_sub_menu_mem_disp[4][15]; extern const char g_sub_menu_mem_disp[4][15];
#ifdef ENABLE_ALARM #ifdef ENABLE_ALARM
extern const char g_sub_menu_alarm_mode[2][5]; extern const char g_sub_menu_alarm_mode[2][5];