mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-08-03 09:36:32 +03:00
Added scan indicator (if NOAA disabled)
This commit is contained in:
@@ -80,6 +80,7 @@ static void ACTION_Monitor(void)
|
||||
RADIO_SetupRegisters(true);
|
||||
|
||||
APP_StartListening(FUNCTION_MONITOR);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -184,6 +185,10 @@ void ACTION_Scan(bool bRestart)
|
||||
AUDIO_SetVoiceID(0, VOICE_ID_SCANNING_BEGIN);
|
||||
AUDIO_PlaySingleVoice(true);
|
||||
#endif
|
||||
|
||||
// let the user see DW is not active
|
||||
gDualWatchActive = false;
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -195,6 +195,7 @@ static void AIRCOPY_Key_MENU(bool bKeyPressed, bool bKeyHeld)
|
||||
g_FSK_Buffer[35] = 0xDCBA;
|
||||
|
||||
AIRCOPY_SendMessage();
|
||||
|
||||
GUI_DisplayScreen();
|
||||
|
||||
gAircopyState = AIRCOPY_TRANSFER;
|
||||
|
89
app/app.c
89
app/app.c
@@ -638,6 +638,12 @@ static void DUALWATCH_Alternate(void)
|
||||
{ // toggle between VFO's
|
||||
gEeprom.RX_CHANNEL = (1 - gEeprom.RX_CHANNEL) & 1;
|
||||
gRxVfo = &gEeprom.VfoInfo[gEeprom.RX_CHANNEL];
|
||||
|
||||
if (!gDualWatchActive)
|
||||
{ // let the user see DW is active
|
||||
gDualWatchActive = true;
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
}
|
||||
|
||||
RADIO_SetupRegisters(false);
|
||||
@@ -647,12 +653,6 @@ static void DUALWATCH_Alternate(void)
|
||||
#else
|
||||
gDualWatchCountdown_10ms = dual_watch_count_toggle_10ms;
|
||||
#endif
|
||||
|
||||
if (!gDualWatchActive)
|
||||
{ // let the user see DW is active
|
||||
gDualWatchActive = true;
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
}
|
||||
|
||||
void APP_CheckRadioInterrupts(void)
|
||||
@@ -1200,8 +1200,10 @@ void APP_CheckKeys(void)
|
||||
// scan the hardware keys
|
||||
Key = KEYBOARD_Poll();
|
||||
|
||||
if (Key != KEY_INVALID)
|
||||
boot_counter_10ms = 0;
|
||||
#ifdef ENABLE_BOOT_BEEPS
|
||||
if (Key != KEY_INVALID)
|
||||
boot_counter_10ms = 0; // cancel bbot beeps if any key pressed
|
||||
#endif
|
||||
|
||||
if (gKeyReading0 != Key)
|
||||
{ // new key pressed
|
||||
@@ -1300,10 +1302,7 @@ void APP_TimeSlice10ms(void)
|
||||
if (gCurrentFunction != FUNCTION_TRANSMIT)
|
||||
{
|
||||
if (gUpdateStatus)
|
||||
{
|
||||
UI_DisplayStatus(false);
|
||||
gUpdateStatus = false;
|
||||
}
|
||||
|
||||
if (gUpdateDisplay)
|
||||
{
|
||||
@@ -1406,9 +1405,9 @@ void APP_TimeSlice10ms(void)
|
||||
BK4819_CssScanResult_t ScanResult;
|
||||
uint16_t CtcssFreq;
|
||||
|
||||
if (gScanDelay > 0)
|
||||
if (gScanDelay_10ms > 0)
|
||||
{
|
||||
gScanDelay--;
|
||||
gScanDelay_10ms--;
|
||||
APP_CheckKeys();
|
||||
return;
|
||||
}
|
||||
@@ -1451,9 +1450,11 @@ void APP_TimeSlice10ms(void)
|
||||
gScanProgressIndicator = 0;
|
||||
gScanCssState = SCAN_CSS_STATE_SCANNING;
|
||||
GUI_SelectNextDisplay(DISPLAY_SCANNER);
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
|
||||
gScanDelay = scan_delay_10ms;
|
||||
//gScanDelay_10ms = scan_delay_10ms;
|
||||
gScanDelay_10ms = 20 / 10; // 20ms
|
||||
break;
|
||||
|
||||
case SCAN_CSS_STATE_SCANNING:
|
||||
@@ -1472,6 +1473,7 @@ void APP_TimeSlice10ms(void)
|
||||
gScanCssResultType = CODE_TYPE_DIGITAL;
|
||||
gScanCssState = SCAN_CSS_STATE_FOUND;
|
||||
gScanUseCssResult = true;
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1486,6 +1488,7 @@ void APP_TimeSlice10ms(void)
|
||||
{
|
||||
gScanCssState = SCAN_CSS_STATE_FOUND;
|
||||
gScanUseCssResult = true;
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1499,7 +1502,7 @@ void APP_TimeSlice10ms(void)
|
||||
if (gScanCssState < SCAN_CSS_STATE_FOUND)
|
||||
{
|
||||
BK4819_SetScanFrequency(gScanFrequency);
|
||||
gScanDelay = scan_delay_10ms;
|
||||
gScanDelay_10ms = scan_delay_10ms;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1730,7 +1733,10 @@ void APP_TimeSlice500ms(void)
|
||||
gScanCssState = SCAN_CSS_STATE_FOUND;
|
||||
else
|
||||
gScanCssState = SCAN_CSS_STATE_FAILED;
|
||||
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
|
||||
gUpdateDisplay = true;
|
||||
}
|
||||
|
||||
@@ -1840,6 +1846,20 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||
{
|
||||
bool bFlag = false;
|
||||
|
||||
// const bool backlight_was_on = (gBacklightCountdown > 0 || gEeprom.BACKLIGHT >= 5);
|
||||
const bool backlight_was_on = GPIO_CheckBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
||||
|
||||
// if (Key == KEY_EXIT && bKeyPressed && !bKeyHeld && !backlight_was_on)
|
||||
if (bKeyPressed && !bKeyHeld && !backlight_was_on)
|
||||
{ // just turn the light on for now
|
||||
BACKLIGHT_TurnOn();
|
||||
// gKeyReading0 = KEY_INVALID;
|
||||
// gKeyReading1 = KEY_INVALID;
|
||||
gDebounceCounter = 0;
|
||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||
return;
|
||||
}
|
||||
|
||||
if (gCurrentFunction == FUNCTION_POWER_SAVE)
|
||||
FUNCTION_Select(FUNCTION_FOREGROUND);
|
||||
|
||||
@@ -1939,25 +1959,28 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||
}
|
||||
}
|
||||
|
||||
if ((gScanState != SCAN_OFF &&
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_STAR)
|
||||
||
|
||||
(gCssScanMode != CSS_SCAN_MODE_OFF &&
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_STAR &&
|
||||
Key != KEY_MENU))
|
||||
{
|
||||
if (!bKeyPressed || bKeyHeld)
|
||||
return;
|
||||
if (gScanState != SCAN_OFF &&
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_STAR)
|
||||
{ // scanning
|
||||
if (bKeyPressed && !bKeyHeld)
|
||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||
return;
|
||||
}
|
||||
|
||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||
if (gCssScanMode != CSS_SCAN_MODE_OFF &&
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_STAR &&
|
||||
Key != KEY_MENU)
|
||||
{ // code scanning
|
||||
if (bKeyPressed && !bKeyHeld)
|
||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -149,11 +149,11 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep)
|
||||
|
||||
case KEY_4:
|
||||
gWasFKeyPressed = false;
|
||||
gUpdateStatus = true;
|
||||
gFlagStartScan = true;
|
||||
gScanSingleFrequency = false;
|
||||
gBackupCROSS_BAND_RX_TX = gEeprom.CROSS_BAND_RX_TX;
|
||||
gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_OFF;
|
||||
gUpdateStatus = true;
|
||||
|
||||
if (beep)
|
||||
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
||||
|
10
app/menu.c
10
app/menu.c
@@ -124,7 +124,9 @@
|
||||
|
||||
void MENU_StartCssScan(int8_t Direction)
|
||||
{
|
||||
gCssScanMode = CSS_SCAN_MODE_SCANNING;
|
||||
gCssScanMode = CSS_SCAN_MODE_SCANNING;
|
||||
gUpdateStatus = true;
|
||||
|
||||
gMenuScrollDirection = Direction;
|
||||
|
||||
RADIO_SelectVfos();
|
||||
@@ -137,7 +139,8 @@ void MENU_StartCssScan(int8_t Direction)
|
||||
|
||||
void MENU_StopCssScan(void)
|
||||
{
|
||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||
gUpdateStatus = true;
|
||||
|
||||
RADIO_SetupRegisters(true);
|
||||
}
|
||||
@@ -1262,7 +1265,8 @@ static void MENU_Key_MENU(bool bKeyPressed, bool bKeyHeld)
|
||||
gIsInSubMenu = false;
|
||||
}
|
||||
|
||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||
gUpdateStatus = true;
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
if (gMenuCursor == MENU_SCR)
|
||||
|
@@ -207,6 +207,8 @@ static void SCANNER_Key_MENU(bool bKeyPressed, bool bKeyHeld)
|
||||
gAnotherVoiceID = VOICE_ID_MEMORY_CHANNEL;
|
||||
#endif
|
||||
gRequestDisplayScreen = DISPLAY_SCANNER;
|
||||
|
||||
gUpdateStatus = true;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@@ -380,18 +382,24 @@ void SCANNER_Start(void)
|
||||
gScanCssState = SCAN_CSS_STATE_SCANNING;
|
||||
gScanFrequency = gRxVfo->pRX->Frequency;
|
||||
gStepSetting = gRxVfo->STEP_SETTING;
|
||||
|
||||
BK4819_PickRXFilterPathBasedOnFrequency(gScanFrequency);
|
||||
BK4819_SetScanFrequency(gScanFrequency);
|
||||
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
gScanCssState = SCAN_CSS_STATE_OFF;
|
||||
gScanFrequency = 0xFFFFFFFF;
|
||||
|
||||
BK4819_PickRXFilterPathBasedOnFrequency(0xFFFFFFFF);
|
||||
BK4819_EnableFrequencyScan();
|
||||
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
|
||||
gScanDelay = scan_delay_10ms;
|
||||
gScanDelay_10ms = scan_delay_10ms;
|
||||
gScanCssResultCode = 0xFF;
|
||||
gScanCssResultType = 0xFF;
|
||||
gScanHitCount = 0;
|
||||
@@ -441,4 +449,6 @@ void SCANNER_Stop(void)
|
||||
}
|
||||
|
||||
SETTINGS_SaveVfoIndices();
|
||||
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user