mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-28 22:31:25 +03:00
Channel/Frequency scanning updates
This commit is contained in:
parent
9c7d6a38e5
commit
16c908f0bf
2
Makefile
2
Makefile
@ -29,7 +29,7 @@ ENABLE_CODE_SCAN_TIMEOUT := 0
|
|||||||
ENABLE_AM_FIX := 1
|
ENABLE_AM_FIX := 1
|
||||||
ENABLE_AM_FIX_SHOW_DATA := 1
|
ENABLE_AM_FIX_SHOW_DATA := 1
|
||||||
ENABLE_SQUELCH_MORE_SENSITIVE := 1
|
ENABLE_SQUELCH_MORE_SENSITIVE := 1
|
||||||
ENABLE_FASTER_CHANNEL_SCAN := 0
|
ENABLE_FASTER_CHANNEL_SCAN := 1
|
||||||
ENABLE_RSSI_BAR := 1
|
ENABLE_RSSI_BAR := 1
|
||||||
ENABLE_AUDIO_BAR := 0
|
ENABLE_AUDIO_BAR := 0
|
||||||
ENABLE_COPY_CHAN_TO_VFO := 1
|
ENABLE_COPY_CHAN_TO_VFO := 1
|
||||||
|
42
app/action.c
42
app/action.c
@ -84,9 +84,9 @@ void ACTION_Monitor(void)
|
|||||||
|
|
||||||
gMonitor = false;
|
gMonitor = false;
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF)
|
||||||
{
|
{
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
gScanPauseMode = true;
|
gScanPauseMode = true;
|
||||||
}
|
}
|
||||||
@ -182,23 +182,36 @@ void ACTION_Scan(bool bRestart)
|
|||||||
{
|
{
|
||||||
GUI_SelectNextDisplay(DISPLAY_MAIN);
|
GUI_SelectNextDisplay(DISPLAY_MAIN);
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF)
|
||||||
{
|
{ // already scanning
|
||||||
#if 1
|
|
||||||
|
if (gNextMrChannel <= MR_CHANNEL_LAST)
|
||||||
|
{ // channel mode
|
||||||
|
|
||||||
// keep scanning but toggle between scan lists
|
// keep scanning but toggle between scan lists
|
||||||
gEeprom.SCAN_LIST_DEFAULT = (gEeprom.SCAN_LIST_DEFAULT + 1) % 3;
|
gEeprom.SCAN_LIST_DEFAULT = (gEeprom.SCAN_LIST_DEFAULT + 1) % 3;
|
||||||
|
|
||||||
|
// jump to the next channel
|
||||||
|
CHANNEL_Next(true, gScanStateDir);
|
||||||
|
gScanPauseDelayIn_10ms = 1;
|
||||||
|
gScheduleScanListen = false;
|
||||||
|
|
||||||
gUpdateStatus = true;
|
gUpdateStatus = true;
|
||||||
#else
|
}
|
||||||
|
else
|
||||||
|
{ // stop scanning
|
||||||
|
|
||||||
SCANNER_Stop();
|
SCANNER_Stop();
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
gAnotherVoiceID = VOICE_ID_SCANNING_STOP;
|
gAnotherVoiceID = VOICE_ID_SCANNING_STOP;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{ // start scanning
|
||||||
CHANNEL_Next(true, 1);
|
|
||||||
|
CHANNEL_Next(true, SCAN_FWD);
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
AUDIO_SetVoiceID(0, VOICE_ID_SCANNING_BEGIN);
|
AUDIO_SetVoiceID(0, VOICE_ID_SCANNING_BEGIN);
|
||||||
@ -215,9 +228,16 @@ void ACTION_Scan(bool bRestart)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!bRestart)
|
// if (!bRestart)
|
||||||
{ // keep scanning but toggle between scan lists
|
if (!bRestart && gNextMrChannel <= MR_CHANNEL_LAST)
|
||||||
|
{ // channel mode, keep scanning but toggle between scan lists
|
||||||
gEeprom.SCAN_LIST_DEFAULT = (gEeprom.SCAN_LIST_DEFAULT + 1) % 3;
|
gEeprom.SCAN_LIST_DEFAULT = (gEeprom.SCAN_LIST_DEFAULT + 1) % 3;
|
||||||
|
|
||||||
|
// jump to the next channel
|
||||||
|
CHANNEL_Next(true, gScanStateDir);
|
||||||
|
gScanPauseDelayIn_10ms = 1;
|
||||||
|
gScheduleScanListen = false;
|
||||||
|
|
||||||
gUpdateStatus = true;
|
gUpdateStatus = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
71
app/app.c
71
app/app.c
@ -95,13 +95,13 @@ static void APP_CheckForIncoming(void)
|
|||||||
|
|
||||||
// squelch is open
|
// squelch is open
|
||||||
|
|
||||||
if (gScanState == SCAN_OFF)
|
if (gScanStateDir == SCAN_OFF)
|
||||||
{ // not RF scanning
|
{ // not RF scanning
|
||||||
|
|
||||||
if (gCssScanMode != CSS_SCAN_MODE_OFF && gRxReceptionMode == RX_MODE_NONE)
|
if (gCssScanMode != CSS_SCAN_MODE_OFF && gRxReceptionMode == RX_MODE_NONE)
|
||||||
{ // CTCSS/DTS scanning
|
{ // CTCSS/DTS scanning
|
||||||
|
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_5_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_5_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
gRxReceptionMode = RX_MODE_DETECTED;
|
gRxReceptionMode = RX_MODE_DETECTED;
|
||||||
}
|
}
|
||||||
@ -166,7 +166,7 @@ static void APP_CheckForIncoming(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_3_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_3_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,7 +200,7 @@ static void APP_HandleIncoming(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bFlag = (gScanState == SCAN_OFF && gCurrentCodeType == CODE_TYPE_OFF);
|
bFlag = (gScanStateDir == SCAN_OFF && gCurrentCodeType == CODE_TYPE_OFF);
|
||||||
|
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE) && gNOAACountdown_10ms > 0)
|
if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE) && gNOAACountdown_10ms > 0)
|
||||||
@ -224,7 +224,7 @@ static void APP_HandleIncoming(void)
|
|||||||
if (!bFlag)
|
if (!bFlag)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF)
|
if (gScanStateDir == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF)
|
||||||
{ // not scanning
|
{ // not scanning
|
||||||
if (gRxVfo->DTMF_DECODING_ENABLE || gSetting_KILLED)
|
if (gRxVfo->DTMF_DECODING_ENABLE || gSetting_KILLED)
|
||||||
{ // DTMF DCD is enabled
|
{ // DTMF DCD is enabled
|
||||||
@ -268,7 +268,7 @@ static void APP_HandleReceive(void)
|
|||||||
goto Skip;
|
goto Skip;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF && IS_FREQ_CHANNEL(gNextMrChannel))
|
if (gScanStateDir != SCAN_OFF && IS_FREQ_CHANNEL(gNextMrChannel))
|
||||||
{
|
{
|
||||||
if (g_SquelchLost)
|
if (g_SquelchLost)
|
||||||
return;
|
return;
|
||||||
@ -399,7 +399,7 @@ Skip:
|
|||||||
|
|
||||||
gUpdateDisplay = true;
|
gUpdateDisplay = true;
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF)
|
||||||
{
|
{
|
||||||
switch (gEeprom.SCAN_RESUME_MODE)
|
switch (gEeprom.SCAN_RESUME_MODE)
|
||||||
{
|
{
|
||||||
@ -407,7 +407,7 @@ Skip:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case SCAN_RESUME_CO:
|
case SCAN_RESUME_CO:
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_7_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_7_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -488,14 +488,14 @@ void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix)
|
|||||||
if (gSetting_backlight_on_tx_rx >= 2)
|
if (gSetting_backlight_on_tx_rx >= 2)
|
||||||
BACKLIGHT_TurnOn();
|
BACKLIGHT_TurnOn();
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF)
|
||||||
{
|
{
|
||||||
switch (gEeprom.SCAN_RESUME_MODE)
|
switch (gEeprom.SCAN_RESUME_MODE)
|
||||||
{
|
{
|
||||||
case SCAN_RESUME_TO:
|
case SCAN_RESUME_TO:
|
||||||
if (!gScanPauseMode)
|
if (!gScanPauseMode)
|
||||||
{
|
{
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_1_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
gScanPauseMode = true;
|
gScanPauseMode = true;
|
||||||
}
|
}
|
||||||
@ -503,7 +503,7 @@ void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix)
|
|||||||
|
|
||||||
case SCAN_RESUME_CO:
|
case SCAN_RESUME_CO:
|
||||||
case SCAN_RESUME_SE:
|
case SCAN_RESUME_SE:
|
||||||
ScanPauseDelayIn_10ms = 0;
|
gScanPauseDelayIn_10ms = 0;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -527,7 +527,7 @@ void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix)
|
|||||||
if (gCssScanMode != CSS_SCAN_MODE_OFF)
|
if (gCssScanMode != CSS_SCAN_MODE_OFF)
|
||||||
gCssScanMode = CSS_SCAN_MODE_FOUND;
|
gCssScanMode = CSS_SCAN_MODE_FOUND;
|
||||||
|
|
||||||
if (gScanState == SCAN_OFF &&
|
if (gScanStateDir == SCAN_OFF &&
|
||||||
gCssScanMode == CSS_SCAN_MODE_OFF &&
|
gCssScanMode == CSS_SCAN_MODE_OFF &&
|
||||||
gEeprom.DUAL_WATCH != DUAL_WATCH_OFF)
|
gEeprom.DUAL_WATCH != DUAL_WATCH_OFF)
|
||||||
{ // not scanning, dual watch is enabled
|
{ // not scanning, dual watch is enabled
|
||||||
@ -623,14 +623,17 @@ uint32_t APP_SetFrequencyByStep(VFO_Info_t *pInfo, int8_t Step)
|
|||||||
|
|
||||||
static void FREQ_NextChannel(void)
|
static void FREQ_NextChannel(void)
|
||||||
{
|
{
|
||||||
gRxVfo->freq_config_RX.Frequency = APP_SetFrequencyByStep(gRxVfo, gScanState);
|
gRxVfo->freq_config_RX.Frequency = APP_SetFrequencyByStep(gRxVfo, gScanStateDir);
|
||||||
|
|
||||||
RADIO_ApplyOffset(gRxVfo);
|
RADIO_ApplyOffset(gRxVfo);
|
||||||
RADIO_ConfigureSquelchAndOutputPower(gRxVfo);
|
RADIO_ConfigureSquelchAndOutputPower(gRxVfo);
|
||||||
RADIO_SetupRegisters(true);
|
RADIO_SetupRegisters(true);
|
||||||
|
|
||||||
// ScanPauseDelayIn_10ms = scan_pause_delay_in_6_10ms;
|
#ifdef ENABLE_FASTER_CHANNEL_SCAN
|
||||||
ScanPauseDelayIn_10ms = 10; // 100ms .. it don't like any faster :(
|
gScanPauseDelayIn_10ms = 9; // 90ms
|
||||||
|
#else
|
||||||
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_6_10ms;
|
||||||
|
#endif
|
||||||
|
|
||||||
bScanKeepFrequency = false;
|
bScanKeepFrequency = false;
|
||||||
gUpdateDisplay = true;
|
gUpdateDisplay = true;
|
||||||
@ -704,7 +707,7 @@ static void MR_NextChannel(void)
|
|||||||
|
|
||||||
if (!enabled || chan == 0xff)
|
if (!enabled || chan == 0xff)
|
||||||
{
|
{
|
||||||
chan = RADIO_FindNextChannel(gNextMrChannel + gScanState, gScanState, (gEeprom.SCAN_LIST_DEFAULT < 2) ? true : false, gEeprom.SCAN_LIST_DEFAULT);
|
chan = RADIO_FindNextChannel(gNextMrChannel + gScanStateDir, gScanStateDir, (gEeprom.SCAN_LIST_DEFAULT < 2) ? true : false, gEeprom.SCAN_LIST_DEFAULT);
|
||||||
if (chan == 0xFF)
|
if (chan == 0xFF)
|
||||||
{ // no valid channel found
|
{ // no valid channel found
|
||||||
|
|
||||||
@ -727,9 +730,9 @@ static void MR_NextChannel(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_FASTER_CHANNEL_SCAN
|
#ifdef ENABLE_FASTER_CHANNEL_SCAN
|
||||||
ScanPauseDelayIn_10ms = 10; // 100ms .. <= ~60ms it misses signals (squelch response and/or PLL lock time) ?
|
gScanPauseDelayIn_10ms = 9; // 90ms .. <= ~60ms it misses signals (squelch response and/or PLL lock time) ?
|
||||||
#else
|
#else
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_3_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_3_10ms;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bScanKeepFrequency = false;
|
bScanKeepFrequency = false;
|
||||||
@ -976,7 +979,7 @@ void APP_EndTransmission(void)
|
|||||||
if (gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR)
|
if (gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF)
|
if (gScanStateDir != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (gVOX_NoiseDetected)
|
if (gVOX_NoiseDetected)
|
||||||
@ -1068,9 +1071,9 @@ void APP_Update(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
if (gScreenToDisplay != DISPLAY_SCANNER && gScanState != SCAN_OFF && gScheduleScanListen && !gPttIsPressed && gVoiceWriteIndex == 0)
|
if (gScreenToDisplay != DISPLAY_SCANNER && gScanStateDir != SCAN_OFF && gScheduleScanListen && !gPttIsPressed && gVoiceWriteIndex == 0)
|
||||||
#else
|
#else
|
||||||
if (gScreenToDisplay != DISPLAY_SCANNER && gScanState != SCAN_OFF && gScheduleScanListen && !gPttIsPressed)
|
if (gScreenToDisplay != DISPLAY_SCANNER && gScanStateDir != SCAN_OFF && gScheduleScanListen && !gPttIsPressed)
|
||||||
#endif
|
#endif
|
||||||
{ // scanning
|
{ // scanning
|
||||||
|
|
||||||
@ -1129,7 +1132,7 @@ void APP_Update(void)
|
|||||||
if (gScheduleDualWatch)
|
if (gScheduleDualWatch)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF)
|
if (gScanStateDir == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF)
|
||||||
{
|
{
|
||||||
if (!gPttIsPressed &&
|
if (!gPttIsPressed &&
|
||||||
#ifdef ENABLE_FMRADIO
|
#ifdef ENABLE_FMRADIO
|
||||||
@ -1179,7 +1182,7 @@ void APP_Update(void)
|
|||||||
gPttIsPressed ||
|
gPttIsPressed ||
|
||||||
gKeyBeingHeld ||
|
gKeyBeingHeld ||
|
||||||
gEeprom.BATTERY_SAVE == 0 ||
|
gEeprom.BATTERY_SAVE == 0 ||
|
||||||
gScanState != SCAN_OFF ||
|
gScanStateDir != SCAN_OFF ||
|
||||||
gCssScanMode != CSS_SCAN_MODE_OFF ||
|
gCssScanMode != CSS_SCAN_MODE_OFF ||
|
||||||
gScreenToDisplay != DISPLAY_MAIN ||
|
gScreenToDisplay != DISPLAY_MAIN ||
|
||||||
gDTMF_CallState != DTMF_CALL_STATE_NONE)
|
gDTMF_CallState != DTMF_CALL_STATE_NONE)
|
||||||
@ -1204,7 +1207,7 @@ void APP_Update(void)
|
|||||||
gPttIsPressed ||
|
gPttIsPressed ||
|
||||||
gKeyBeingHeld ||
|
gKeyBeingHeld ||
|
||||||
gEeprom.BATTERY_SAVE == 0 ||
|
gEeprom.BATTERY_SAVE == 0 ||
|
||||||
gScanState != SCAN_OFF ||
|
gScanStateDir != SCAN_OFF ||
|
||||||
gCssScanMode != CSS_SCAN_MODE_OFF ||
|
gCssScanMode != CSS_SCAN_MODE_OFF ||
|
||||||
gScreenToDisplay != DISPLAY_MAIN ||
|
gScreenToDisplay != DISPLAY_MAIN ||
|
||||||
gDTMF_CallState != DTMF_CALL_STATE_NONE)
|
gDTMF_CallState != DTMF_CALL_STATE_NONE)
|
||||||
@ -1238,7 +1241,7 @@ void APP_Update(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF &&
|
if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF &&
|
||||||
gScanState == SCAN_OFF &&
|
gScanStateDir == SCAN_OFF &&
|
||||||
gCssScanMode == CSS_SCAN_MODE_OFF)
|
gCssScanMode == CSS_SCAN_MODE_OFF)
|
||||||
{ // dual watch mode, toggle between the two VFO's
|
{ // dual watch mode, toggle between the two VFO's
|
||||||
DUALWATCH_Alternate();
|
DUALWATCH_Alternate();
|
||||||
@ -1252,7 +1255,7 @@ void APP_Update(void)
|
|||||||
gRxIdleMode = false; // RX is awake
|
gRxIdleMode = false; // RX is awake
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF || gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF || gUpdateRSSI)
|
if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF || gScanStateDir != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF || gUpdateRSSI)
|
||||||
{ // dual watch mode, go back to sleep
|
{ // dual watch mode, go back to sleep
|
||||||
|
|
||||||
updateRSSI(gEeprom.RX_VFO);
|
updateRSSI(gEeprom.RX_VFO);
|
||||||
@ -1817,9 +1820,9 @@ void APP_TimeSlice500ms(void)
|
|||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn backlight off
|
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn backlight off
|
||||||
|
|
||||||
#ifdef ENABLE_AIRCOPY
|
#ifdef ENABLE_AIRCOPY
|
||||||
if (gScanState == SCAN_OFF && gScreenToDisplay != DISPLAY_AIRCOPY && (gScreenToDisplay != DISPLAY_SCANNER || gScanCssState >= SCAN_CSS_STATE_FOUND))
|
if (gScanStateDir == SCAN_OFF && gScreenToDisplay != DISPLAY_AIRCOPY && (gScreenToDisplay != DISPLAY_SCANNER || gScanCssState >= SCAN_CSS_STATE_FOUND))
|
||||||
#else
|
#else
|
||||||
if (gScanState == SCAN_OFF && (gScreenToDisplay != DISPLAY_SCANNER || gScanCssState >= SCAN_CSS_STATE_FOUND))
|
if (gScanStateDir == SCAN_OFF && (gScreenToDisplay != DISPLAY_SCANNER || gScanCssState >= SCAN_CSS_STATE_FOUND))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
bool exit_menu = false;
|
bool exit_menu = false;
|
||||||
@ -2039,28 +2042,28 @@ void APP_TimeSlice500ms(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void CHANNEL_Next(bool bFlag, int8_t Direction)
|
void CHANNEL_Next(const bool bFlag, const int8_t scan_direction)
|
||||||
{
|
{
|
||||||
RADIO_SelectVfos();
|
RADIO_SelectVfos();
|
||||||
|
|
||||||
gNextMrChannel = gRxVfo->CHANNEL_SAVE;
|
gNextMrChannel = gRxVfo->CHANNEL_SAVE;
|
||||||
gCurrentScanList = SCAN_NEXT_CHAN_SCANLIST1;
|
gCurrentScanList = SCAN_NEXT_CHAN_SCANLIST1;
|
||||||
gScanState = Direction;
|
gScanStateDir = scan_direction;
|
||||||
|
|
||||||
if (gNextMrChannel <= MR_CHANNEL_LAST)
|
if (gNextMrChannel <= MR_CHANNEL_LAST)
|
||||||
{
|
{ // channel mode
|
||||||
if (bFlag)
|
if (bFlag)
|
||||||
gRestoreMrChannel = gNextMrChannel;
|
gRestoreMrChannel = gNextMrChannel;
|
||||||
MR_NextChannel();
|
MR_NextChannel();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{ // frequency mode
|
||||||
if (bFlag)
|
if (bFlag)
|
||||||
gRestoreFrequency = gRxVfo->freq_config_RX.Frequency;
|
gRestoreFrequency = gRxVfo->freq_config_RX.Frequency;
|
||||||
FREQ_NextChannel();
|
FREQ_NextChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_2_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_2_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
gRxReceptionMode = RX_MODE_NONE;
|
gRxReceptionMode = RX_MODE_NONE;
|
||||||
gScanPauseMode = false;
|
gScanPauseMode = false;
|
||||||
@ -2195,7 +2198,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
Key != KEY_STAR &&
|
Key != KEY_STAR &&
|
||||||
Key != KEY_MENU)
|
Key != KEY_MENU)
|
||||||
{
|
{
|
||||||
if (gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF)
|
if (gScanStateDir != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF)
|
||||||
{ // FREQ/CTCSS/DCS scanning
|
{ // FREQ/CTCSS/DCS scanning
|
||||||
if (bKeyPressed && !bKeyHeld)
|
if (bKeyPressed && !bKeyHeld)
|
||||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||||
|
@ -29,7 +29,7 @@ extern const uint8_t orig_mixer;
|
|||||||
extern const uint8_t orig_pga;
|
extern const uint8_t orig_pga;
|
||||||
|
|
||||||
void APP_EndTransmission(void);
|
void APP_EndTransmission(void);
|
||||||
void CHANNEL_Next(bool bFlag, int8_t Direction);
|
void CHANNEL_Next(const bool bFlag, const int8_t scan_direction);
|
||||||
void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix);
|
void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix);
|
||||||
uint32_t APP_SetFrequencyByStep(VFO_Info_t *pInfo, int8_t Step);
|
uint32_t APP_SetFrequencyByStep(VFO_Info_t *pInfo, int8_t Step);
|
||||||
void APP_Update(void);
|
void APP_Update(void);
|
||||||
|
@ -184,7 +184,7 @@ void DTMF_HandleRequest(void)
|
|||||||
if (!gDTMF_RX_pending)
|
if (!gDTMF_RX_pending)
|
||||||
return; // nothing new received
|
return; // nothing new received
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF)
|
if (gScanStateDir != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF)
|
||||||
{ // we're busy scanning
|
{ // we're busy scanning
|
||||||
DTMF_clear_RX();
|
DTMF_clear_RX();
|
||||||
return;
|
return;
|
||||||
|
@ -154,7 +154,7 @@ void GENERIC_Key_PTT(bool bKeyPressed)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF)
|
||||||
{
|
{
|
||||||
SCANNER_Stop();
|
SCANNER_Stop();
|
||||||
|
|
||||||
|
18
app/main.c
18
app/main.c
@ -487,7 +487,7 @@ static void MAIN_Key_EXIT(bool bKeyPressed, bool bKeyHeld)
|
|||||||
if (!gFmRadioMode)
|
if (!gFmRadioMode)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if (gScanState == SCAN_OFF)
|
if (gScanStateDir == SCAN_OFF)
|
||||||
{
|
{
|
||||||
if (gInputBoxIndex == 0)
|
if (gInputBoxIndex == 0)
|
||||||
return;
|
return;
|
||||||
@ -563,11 +563,11 @@ static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
|
|||||||
if (gEeprom.VFO_OPEN && gCssScanMode == CSS_SCAN_MODE_OFF)
|
if (gEeprom.VFO_OPEN && gCssScanMode == CSS_SCAN_MODE_OFF)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF)
|
if (gScanStateDir != SCAN_OFF)
|
||||||
{
|
{
|
||||||
if (gCurrentFunction != FUNCTION_INCOMING ||
|
if (gCurrentFunction != FUNCTION_INCOMING ||
|
||||||
gRxReceptionMode == RX_MODE_NONE ||
|
gRxReceptionMode == RX_MODE_NONE ||
|
||||||
ScanPauseDelayIn_10ms == 0)
|
gScanPauseDelayIn_10ms == 0)
|
||||||
{ // scan is running (not paused)
|
{ // scan is running (not paused)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -639,7 +639,8 @@ static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bKeyHeld || !bKeyPressed)
|
if (bKeyHeld || !bKeyPressed)
|
||||||
{
|
{ // long press
|
||||||
|
|
||||||
if (bKeyHeld || bKeyPressed)
|
if (bKeyHeld || bKeyPressed)
|
||||||
{
|
{
|
||||||
if (!bKeyHeld)
|
if (!bKeyHeld)
|
||||||
@ -654,9 +655,9 @@ static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
if (gScanState == SCAN_OFF && IS_NOT_NOAA_CHANNEL(gTxVfo->CHANNEL_SAVE))
|
if (gScanStateDir == SCAN_OFF && IS_NOT_NOAA_CHANNEL(gTxVfo->CHANNEL_SAVE))
|
||||||
#else
|
#else
|
||||||
if (gScanState == SCAN_OFF)
|
if (gScanStateDir == SCAN_OFF)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
gKeyInputCountdown = key_input_timeout_500ms;
|
gKeyInputCountdown = key_input_timeout_500ms;
|
||||||
@ -739,7 +740,7 @@ static void MAIN_Key_UP_DOWN(bool bKeyPressed, bool bKeyHeld, int8_t Direction)
|
|||||||
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gScanState == SCAN_OFF)
|
if (gScanStateDir == SCAN_OFF)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
if (IS_NOT_NOAA_CHANNEL(Channel))
|
if (IS_NOT_NOAA_CHANNEL(Channel))
|
||||||
@ -795,7 +796,10 @@ static void MAIN_Key_UP_DOWN(bool bKeyPressed, bool bKeyHeld, int8_t Direction)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// jump to the next channel
|
||||||
CHANNEL_Next(false, Direction);
|
CHANNEL_Next(false, Direction);
|
||||||
|
gScanPauseDelayIn_10ms = 1;
|
||||||
|
gScheduleScanListen = false;
|
||||||
|
|
||||||
gPttWasReleased = true;
|
gPttWasReleased = true;
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ void MENU_StartCssScan(int8_t Direction)
|
|||||||
|
|
||||||
MENU_SelectNextCode();
|
MENU_SelectNextCode();
|
||||||
|
|
||||||
ScanPauseDelayIn_10ms = scan_pause_delay_in_2_10ms;
|
gScanPauseDelayIn_10ms = scan_pause_delay_in_2_10ms;
|
||||||
gScheduleScanListen = false;
|
gScheduleScanListen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -824,7 +824,7 @@ void MENU_SelectNextCode(void)
|
|||||||
|
|
||||||
RADIO_SetupRegisters(true);
|
RADIO_SetupRegisters(true);
|
||||||
|
|
||||||
ScanPauseDelayIn_10ms = (gSelectedCodeType == CODE_TYPE_CONTINUOUS_TONE) ? scan_pause_delay_in_3_10ms : scan_pause_delay_in_4_10ms;
|
gScanPauseDelayIn_10ms = (gSelectedCodeType == CODE_TYPE_CONTINUOUS_TONE) ? scan_pause_delay_in_3_10ms : scan_pause_delay_in_4_10ms;
|
||||||
|
|
||||||
gUpdateDisplay = true;
|
gUpdateDisplay = true;
|
||||||
}
|
}
|
||||||
|
@ -37,11 +37,11 @@ uint32_t gScanFrequency;
|
|||||||
bool gScanPauseMode;
|
bool gScanPauseMode;
|
||||||
SCAN_CssState_t gScanCssState;
|
SCAN_CssState_t gScanCssState;
|
||||||
volatile bool gScheduleScanListen = true;
|
volatile bool gScheduleScanListen = true;
|
||||||
volatile uint16_t ScanPauseDelayIn_10ms;
|
volatile uint16_t gScanPauseDelayIn_10ms;
|
||||||
uint8_t gScanProgressIndicator;
|
uint8_t gScanProgressIndicator;
|
||||||
uint8_t gScanHitCount;
|
uint8_t gScanHitCount;
|
||||||
bool gScanUseCssResult;
|
bool gScanUseCssResult;
|
||||||
int8_t gScanState;
|
int8_t gScanStateDir;
|
||||||
bool bScanKeepFrequency;
|
bool bScanKeepFrequency;
|
||||||
|
|
||||||
static void SCANNER_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
static void SCANNER_Key_DIGITS(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||||
@ -426,7 +426,7 @@ void SCANNER_Stop(void)
|
|||||||
{
|
{
|
||||||
const uint8_t Previous = gRestoreMrChannel;
|
const uint8_t Previous = gRestoreMrChannel;
|
||||||
|
|
||||||
gScanState = SCAN_OFF;
|
gScanStateDir = SCAN_OFF;
|
||||||
|
|
||||||
if (!bScanKeepFrequency)
|
if (!bScanKeepFrequency)
|
||||||
{
|
{
|
||||||
|
@ -32,7 +32,9 @@ typedef enum SCAN_CssState_t SCAN_CssState_t;
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
SCAN_REV = -1,
|
||||||
SCAN_OFF = 0,
|
SCAN_OFF = 0,
|
||||||
|
SCAN_FWD = +1
|
||||||
};
|
};
|
||||||
|
|
||||||
extern DCS_CodeType_t gScanCssResultType;
|
extern DCS_CodeType_t gScanCssResultType;
|
||||||
@ -46,11 +48,11 @@ extern uint32_t gScanFrequency;
|
|||||||
extern bool gScanPauseMode;
|
extern bool gScanPauseMode;
|
||||||
extern SCAN_CssState_t gScanCssState;
|
extern SCAN_CssState_t gScanCssState;
|
||||||
extern volatile bool gScheduleScanListen;
|
extern volatile bool gScheduleScanListen;
|
||||||
extern volatile uint16_t ScanPauseDelayIn_10ms;
|
extern volatile uint16_t gScanPauseDelayIn_10ms;
|
||||||
extern uint8_t gScanProgressIndicator;
|
extern uint8_t gScanProgressIndicator;
|
||||||
extern uint8_t gScanHitCount;
|
extern uint8_t gScanHitCount;
|
||||||
extern bool gScanUseCssResult;
|
extern bool gScanUseCssResult;
|
||||||
extern int8_t gScanState;
|
extern int8_t gScanStateDir;
|
||||||
extern bool bScanKeepFrequency;
|
extern bool bScanKeepFrequency;
|
||||||
|
|
||||||
void SCANNER_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld);
|
void SCANNER_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld);
|
||||||
|
47
bitmaps.c
47
bitmaps.c
@ -281,54 +281,7 @@ const uint8_t BITMAP_TDR2[12] =
|
|||||||
0b00110001
|
0b00110001
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
/*
|
|
||||||
const uint8_t BITMAP_SC1[8] =
|
|
||||||
{ // "I"
|
|
||||||
0b01000001,
|
|
||||||
0b01000001,
|
|
||||||
0b01111111,
|
|
||||||
0b01111111,
|
|
||||||
0b01111111,
|
|
||||||
0b01000001,
|
|
||||||
0b01000001,
|
|
||||||
0b00000000
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint8_t BITMAP_SC2[8] =
|
|
||||||
{ // "II"
|
|
||||||
0b01000001,
|
|
||||||
0b01111111,
|
|
||||||
0b01111111,
|
|
||||||
0b01000001,
|
|
||||||
0b01111111,
|
|
||||||
0b01111111,
|
|
||||||
0b01000001,
|
|
||||||
0b00000000
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
const uint8_t BITMAP_SC1[7] =
|
|
||||||
{ // "1"
|
|
||||||
0b01000000,
|
|
||||||
0b01000000,
|
|
||||||
0b01000110,
|
|
||||||
0b01111111,
|
|
||||||
0b01000000,
|
|
||||||
0b01000000,
|
|
||||||
0b00000000
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint8_t BITMAP_SC2[7] =
|
|
||||||
{ // "2"
|
|
||||||
0b01000010,
|
|
||||||
0b01100001,
|
|
||||||
0b01010001,
|
|
||||||
0b01001001,
|
|
||||||
0b01001001,
|
|
||||||
0b01000110,
|
|
||||||
0b00000000
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
const uint8_t BITMAP_Antenna[5] =
|
const uint8_t BITMAP_Antenna[5] =
|
||||||
{
|
{
|
||||||
0b00000011,
|
0b00000011,
|
||||||
|
@ -46,11 +46,6 @@ extern const uint8_t BITMAP_TDR2[12];
|
|||||||
extern const uint8_t BITMAP_NOAA[12];
|
extern const uint8_t BITMAP_NOAA[12];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//extern const uint8_t BITMAP_SC1[8];
|
|
||||||
//extern const uint8_t BITMAP_SC2[8];
|
|
||||||
//extern const uint8_t BITMAP_SC1[7];
|
|
||||||
//extern const uint8_t BITMAP_SC2[7];
|
|
||||||
|
|
||||||
extern const uint8_t BITMAP_Antenna[5];
|
extern const uint8_t BITMAP_Antenna[5];
|
||||||
extern const uint8_t BITMAP_AntennaLevel1[3];
|
extern const uint8_t BITMAP_AntennaLevel1[3];
|
||||||
extern const uint8_t BITMAP_AntennaLevel2[3];
|
extern const uint8_t BITMAP_AntennaLevel2[3];
|
||||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
10
font.c
10
font.c
@ -334,10 +334,10 @@ const uint8_t gFontSmall[95][6] =
|
|||||||
{0x00, 0x03, 0x07, 0x06, 0x00, 0x00},
|
{0x00, 0x03, 0x07, 0x06, 0x00, 0x00},
|
||||||
{0x20, 0x76, 0x56, 0x56, 0x7E, 0x3C},
|
{0x20, 0x76, 0x56, 0x56, 0x7E, 0x3C},
|
||||||
{0x7F, 0x7F, 0x6C, 0x6C, 0x7C, 0x38},
|
{0x7F, 0x7F, 0x6C, 0x6C, 0x7C, 0x38},
|
||||||
{0x3C, 0x7E, 0x66, 0x66, 0x66, 0x24},
|
{0x38, 0x7C, 0x6C, 0x6C, 0x6C, 0x00},
|
||||||
{0x38, 0x7C, 0x6C, 0x6C, 0x7F, 0x7F},
|
{0x38, 0x7C, 0x6C, 0x6C, 0x7F, 0x7F},
|
||||||
{0x3C, 0x7E, 0x56, 0x56, 0x5E, 0x0C},
|
{0x3C, 0x7E, 0x56, 0x56, 0x5E, 0x0C},
|
||||||
{0x7C, 0x7E, 0x36, 0x36, 0x06, 0x00},
|
{0x7E, 0x7F, 0x1B, 0x1B, 0x02, 0x00},
|
||||||
{0x0C, 0x5E, 0x56, 0x56, 0x7E, 0x3C},
|
{0x0C, 0x5E, 0x56, 0x56, 0x7E, 0x3C},
|
||||||
{0x7F, 0x7F, 0x0C, 0x0C, 0x7C, 0x78},
|
{0x7F, 0x7F, 0x0C, 0x0C, 0x7C, 0x78},
|
||||||
{0x00, 0x00, 0x7A, 0x7A, 0x00, 0x00},
|
{0x00, 0x00, 0x7A, 0x7A, 0x00, 0x00},
|
||||||
@ -348,7 +348,7 @@ const uint8_t gFontSmall[95][6] =
|
|||||||
{0x7C, 0x7C, 0x0C, 0x0C, 0x7C, 0x78},
|
{0x7C, 0x7C, 0x0C, 0x0C, 0x7C, 0x78},
|
||||||
{0x3C, 0x7E, 0x66, 0x66, 0x7E, 0x3C},
|
{0x3C, 0x7E, 0x66, 0x66, 0x7E, 0x3C},
|
||||||
{0x7E, 0x7E, 0x36, 0x36, 0x3E, 0x1C},
|
{0x7E, 0x7E, 0x36, 0x36, 0x3E, 0x1C},
|
||||||
{0x1C, 0x3E, 0x36, 0x3E, 0x7E, 0x40},
|
{0x1C, 0x3E, 0x36, 0x7E, 0x7E, 0x60},
|
||||||
{0x7C, 0x7C, 0x0C, 0x0C, 0x18, 0x00},
|
{0x7C, 0x7C, 0x0C, 0x0C, 0x18, 0x00},
|
||||||
{0x4C, 0x5E, 0x56, 0x56, 0x76, 0x20},
|
{0x4C, 0x5E, 0x56, 0x56, 0x76, 0x20},
|
||||||
{0x3F, 0x7F, 0x6C, 0x6C, 0x60, 0x00},
|
{0x3F, 0x7F, 0x6C, 0x6C, 0x60, 0x00},
|
||||||
@ -356,11 +356,11 @@ const uint8_t gFontSmall[95][6] =
|
|||||||
{0x0C, 0x3C, 0x70, 0x70, 0x3C, 0x0C},
|
{0x0C, 0x3C, 0x70, 0x70, 0x3C, 0x0C},
|
||||||
{0x3C, 0x7C, 0x30, 0x30, 0x7C, 0x3C},
|
{0x3C, 0x7C, 0x30, 0x30, 0x7C, 0x3C},
|
||||||
{0x44, 0x6C, 0x38, 0x38, 0x6C, 0x44},
|
{0x44, 0x6C, 0x38, 0x38, 0x6C, 0x44},
|
||||||
{0x06, 0x6E, 0x6C, 0x6C, 0x7E, 0x3E},
|
{0x06, 0x6E, 0x68, 0x68, 0x7E, 0x3E},
|
||||||
{0x66, 0x76, 0x7E, 0x6E, 0x66, 0x00},
|
{0x66, 0x76, 0x7E, 0x6E, 0x66, 0x00},
|
||||||
{0x08, 0x3E, 0x77, 0x41, 0x00, 0x00},
|
{0x08, 0x3E, 0x77, 0x41, 0x00, 0x00},
|
||||||
{0x00, 0x00, 0x7F, 0x00, 0x00, 0x00},
|
{0x00, 0x00, 0x7F, 0x00, 0x00, 0x00},
|
||||||
{0x00, 0x41, 0x77, 0x3E, 0x08, 0x00},
|
{0x00, 0x41, 0x77, 0x3E, 0x08, 0x00},
|
||||||
{0x0C, 0x06, 0x0C, 0x18, 0x0C, 0x00},
|
{0x0C, 0x06, 0x0C, 0x18, 0x0C, 0x00}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
@ -77,20 +77,20 @@ void SystickHandler(void)
|
|||||||
if (gCurrentFunction == FUNCTION_POWER_SAVE)
|
if (gCurrentFunction == FUNCTION_POWER_SAVE)
|
||||||
DECREMENT_AND_TRIGGER(gPowerSave_10ms, gPowerSaveCountdownExpired);
|
DECREMENT_AND_TRIGGER(gPowerSave_10ms, gPowerSaveCountdownExpired);
|
||||||
|
|
||||||
if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF)
|
if (gScanStateDir == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF)
|
||||||
if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_RECEIVE)
|
if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_RECEIVE)
|
||||||
DECREMENT_AND_TRIGGER(gDualWatchCountdown_10ms, gScheduleDualWatch);
|
DECREMENT_AND_TRIGGER(gDualWatchCountdown_10ms, gScheduleDualWatch);
|
||||||
|
|
||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH == DUAL_WATCH_OFF)
|
if (gScanStateDir == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH == DUAL_WATCH_OFF)
|
||||||
if (gIsNoaaMode && gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT)
|
if (gIsNoaaMode && gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT)
|
||||||
if (gCurrentFunction != FUNCTION_RECEIVE)
|
if (gCurrentFunction != FUNCTION_RECEIVE)
|
||||||
DECREMENT_AND_TRIGGER(gNOAA_Countdown_10ms, gScheduleNOAA);
|
DECREMENT_AND_TRIGGER(gNOAA_Countdown_10ms, gScheduleNOAA);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gScanState != SCAN_OFF || gCssScanMode == CSS_SCAN_MODE_SCANNING)
|
if (gScanStateDir != SCAN_OFF || gCssScanMode == CSS_SCAN_MODE_SCANNING)
|
||||||
if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT)
|
if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT)
|
||||||
DECREMENT_AND_TRIGGER(ScanPauseDelayIn_10ms, gScheduleScanListen);
|
DECREMENT_AND_TRIGGER(gScanPauseDelayIn_10ms, gScheduleScanListen);
|
||||||
|
|
||||||
DECREMENT_AND_TRIGGER(gTailNoteEliminationCountdown_10ms, gFlagTailNoteEliminationComplete);
|
DECREMENT_AND_TRIGGER(gTailNoteEliminationCountdown_10ms, gFlagTailNoteEliminationComplete);
|
||||||
|
|
||||||
|
14
ui/status.c
14
ui/status.c
@ -94,23 +94,25 @@ void UI_DisplayStatus(const bool test_display)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
// SCAN indicator
|
// SCAN indicator
|
||||||
if (gScanState != SCAN_OFF || gScreenToDisplay == DISPLAY_SCANNER || test_display)
|
if (gScanStateDir != SCAN_OFF || gScreenToDisplay == DISPLAY_SCANNER || test_display)
|
||||||
{
|
{
|
||||||
|
if (gNextMrChannel <= MR_CHANNEL_LAST)
|
||||||
|
{ // channel mode
|
||||||
if (gEeprom.SCAN_LIST_DEFAULT == 0)
|
if (gEeprom.SCAN_LIST_DEFAULT == 0)
|
||||||
// memmove(line + x, BITMAP_SC1, sizeof(BITMAP_SC1));
|
|
||||||
UI_PrintStringSmallBuffer("1", line + x);
|
UI_PrintStringSmallBuffer("1", line + x);
|
||||||
else
|
else
|
||||||
if (gEeprom.SCAN_LIST_DEFAULT == 1)
|
if (gEeprom.SCAN_LIST_DEFAULT == 1)
|
||||||
// memmove(line + x, BITMAP_SC2, sizeof(BITMAP_SC2));
|
|
||||||
UI_PrintStringSmallBuffer("2", line + x);
|
UI_PrintStringSmallBuffer("2", line + x);
|
||||||
else
|
else
|
||||||
if (gEeprom.SCAN_LIST_DEFAULT == 2)
|
if (gEeprom.SCAN_LIST_DEFAULT == 2)
|
||||||
// memmove(line + x, BITMAP_SCA, sizeof(BITMAP_SCA));
|
|
||||||
UI_PrintStringSmallBuffer("*", line + x);
|
UI_PrintStringSmallBuffer("*", line + x);
|
||||||
// x1 = x + sizeof(BITMAP_SC1);
|
}
|
||||||
|
else
|
||||||
|
{ // frequency mode
|
||||||
|
UI_PrintStringSmallBuffer("S", line + x);
|
||||||
|
}
|
||||||
x1 = x + 7;
|
x1 = x + 7;
|
||||||
}
|
}
|
||||||
// x += sizeof(BITMAP_SC1);
|
|
||||||
x += 7; // font character width
|
x += 7; // font character width
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
|
2
ui/ui.c
2
ui/ui.c
@ -84,7 +84,7 @@ void GUI_SelectNextDisplay(GUI_DisplayType_t Display)
|
|||||||
gInputBoxIndex = 0;
|
gInputBoxIndex = 0;
|
||||||
gIsInSubMenu = false;
|
gIsInSubMenu = false;
|
||||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||||
gScanState = SCAN_OFF;
|
gScanStateDir = SCAN_OFF;
|
||||||
#ifdef ENABLE_FMRADIO
|
#ifdef ENABLE_FMRADIO
|
||||||
gFM_ScanState = FM_SCAN_OFF;
|
gFM_ScanState = FM_SCAN_OFF;
|
||||||
#endif
|
#endif
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user