mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-28 22:31:25 +03:00
ALARM option now removable
This commit is contained in:
parent
43e61bf0a1
commit
5b260e2ee0
2
Makefile
2
Makefile
@ -95,7 +95,7 @@ CFLAGS += -DDISABLE_NOAA
|
|||||||
CFLAGS += -DDISABLE_VOICE
|
CFLAGS += -DDISABLE_VOICE
|
||||||
CFLAGS += -DDISABLE_AIRCOPY
|
CFLAGS += -DDISABLE_AIRCOPY
|
||||||
CFLAGS += -DKEEP_MEM_NAME
|
CFLAGS += -DKEEP_MEM_NAME
|
||||||
#CFLAGS += -DDISABLE_ALARM
|
CFLAGS += -DDISABLE_ALARM
|
||||||
#CFLAGS += -DBAND_SCOPE
|
#CFLAGS += -DBAND_SCOPE
|
||||||
|
|
||||||
ifeq ($(DEBUG),1)
|
ifeq ($(DEBUG),1)
|
||||||
|
@ -16,13 +16,14 @@ You can edit those changes by (currently) editing the MakeFile, look for these l
|
|||||||
* CFLAGS += -DDISABLE_VOICE .. remove spoken VOICES option from the firmware
|
* CFLAGS += -DDISABLE_VOICE .. remove spoken VOICES option from the firmware
|
||||||
* CFLAGS += -DDISABLE_AIRCOPY .. remove AIRCOPY option
|
* CFLAGS += -DDISABLE_AIRCOPY .. remove AIRCOPY option
|
||||||
* CFLAGS += -DKEEP_MEM_NAME .. don't wipe out the memory channel's name when saving a memory channel
|
* CFLAGS += -DKEEP_MEM_NAME .. don't wipe out the memory channel's name when saving a memory channel
|
||||||
* CFLAGS += -DDISABLE_ALARM .. remove ALARM option from the firmware
|
* CFLAGS += -DDISABLE_ALARM .. remove the ALARM transmit option from the firmware
|
||||||
* #CFLAGS += -DBAND_SCOPE .. not yet implemented
|
* #CFLAGS += -DBAND_SCOPE .. not yet implemented
|
||||||
|
|
||||||
To enable the custom option just uncomment the line by removing the starting '#'.
|
To enable the custom option just uncomment the line by removing the starting '#'.
|
||||||
|
|
||||||
# Other changes made
|
# Other changes made
|
||||||
|
|
||||||
|
* "STEP" menu option added 1.25kHz option, removed 5kHz option
|
||||||
* "ABR" menu option now shows extended backlight times
|
* "ABR" menu option now shows extended backlight times
|
||||||
* "MIC" menu option shows actual mic gain in dB's, which now includes the max mic gain setting possible (+15.5dB)
|
* "MIC" menu option shows actual mic gain in dB's, which now includes the max mic gain setting possible (+15.5dB)
|
||||||
|
|
||||||
|
26
app/action.c
26
app/action.c
@ -182,14 +182,16 @@ void ACTION_Vox(void)
|
|||||||
gUpdateStatus = true;
|
gUpdateStatus = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ACTION_AlarmOr1750(bool b1750)
|
#ifndef DISABLE_ALARM
|
||||||
{
|
static void ACTION_AlarmOr1750(bool b1750)
|
||||||
gInputBoxIndex = 0;
|
{
|
||||||
gAlarmState = b1750 ? ALARM_STATE_TX1750 : ALARM_STATE_TXALARM;
|
gInputBoxIndex = 0;
|
||||||
gAlarmRunningCounter = 0;
|
gAlarmState = b1750 ? ALARM_STATE_TX1750 : ALARM_STATE_TXALARM;
|
||||||
gFlagPrepareTX = true;
|
gAlarmRunningCounter = 0;
|
||||||
gRequestDisplayScreen = DISPLAY_MAIN;
|
gFlagPrepareTX = true;
|
||||||
}
|
gRequestDisplayScreen = DISPLAY_MAIN;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void ACTION_FM(void)
|
void ACTION_FM(void)
|
||||||
{
|
{
|
||||||
@ -290,13 +292,17 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
ACTION_Vox();
|
ACTION_Vox();
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
ACTION_AlarmOr1750(false);
|
#ifndef DISABLE_ALARM
|
||||||
|
ACTION_AlarmOr1750(false);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
ACTION_FM();
|
ACTION_FM();
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
ACTION_AlarmOr1750(true);
|
#ifndef DISABLE_ALARM
|
||||||
|
ACTION_AlarmOr1750(true);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,9 @@ void ACTION_Power(void);
|
|||||||
//static void ACTION_Monitor(void)
|
//static void ACTION_Monitor(void)
|
||||||
void ACTION_Scan(bool bFlag);
|
void ACTION_Scan(bool bFlag);
|
||||||
void ACTION_Vox(void);
|
void ACTION_Vox(void);
|
||||||
//static void ACTION_AlarmOr1750(bool b1750)
|
#ifndef DISABLE_ALARM
|
||||||
|
//static void ACTION_AlarmOr1750(bool b1750)
|
||||||
|
#endif
|
||||||
void ACTION_FM(void);
|
void ACTION_FM(void);
|
||||||
|
|
||||||
void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld);
|
void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld);
|
||||||
|
144
app/app.c
144
app/app.c
@ -1055,50 +1055,52 @@ void APP_TimeSlice10ms(void)
|
|||||||
|
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
||||||
{
|
{
|
||||||
if (gAlarmState == ALARM_STATE_TXALARM || gAlarmState == ALARM_STATE_ALARM)
|
#ifndef DISABLE_ALARM
|
||||||
{
|
if (gAlarmState == ALARM_STATE_TXALARM || gAlarmState == ALARM_STATE_ALARM)
|
||||||
uint16_t Tone;
|
|
||||||
|
|
||||||
gAlarmRunningCounter++;
|
|
||||||
gAlarmToneCounter++;
|
|
||||||
|
|
||||||
Tone = 500 + (gAlarmToneCounter * 25);
|
|
||||||
if (Tone > 1500)
|
|
||||||
{
|
{
|
||||||
Tone = 500;
|
uint16_t Tone;
|
||||||
gAlarmToneCounter = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
BK4819_SetScrambleFrequencyControlWord(Tone);
|
gAlarmRunningCounter++;
|
||||||
|
gAlarmToneCounter++;
|
||||||
|
|
||||||
if (gEeprom.ALARM_MODE == ALARM_MODE_TONE && gAlarmRunningCounter == 512)
|
Tone = 500 + (gAlarmToneCounter * 25);
|
||||||
{
|
if (Tone > 1500)
|
||||||
gAlarmRunningCounter = 0;
|
|
||||||
|
|
||||||
if (gAlarmState == ALARM_STATE_TXALARM)
|
|
||||||
{
|
{
|
||||||
gAlarmState = ALARM_STATE_ALARM;
|
Tone = 500;
|
||||||
RADIO_EnableCxCSS();
|
|
||||||
BK4819_SetupPowerAmplifier(0, 0);
|
|
||||||
BK4819_ToggleGpioOut(BK4819_GPIO5_PIN1, false);
|
|
||||||
BK4819_Enable_AfDac_DiscMode_TxDsp();
|
|
||||||
BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, false);
|
|
||||||
GUI_DisplayScreen();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gAlarmState = ALARM_STATE_TXALARM;
|
|
||||||
GUI_DisplayScreen();
|
|
||||||
BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true);
|
|
||||||
RADIO_SetTxParameters();
|
|
||||||
BK4819_TransmitTone(true, 500);
|
|
||||||
SYSTEM_DelayMs(2);
|
|
||||||
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
|
||||||
gEnableSpeaker = true;
|
|
||||||
gAlarmToneCounter = 0;
|
gAlarmToneCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BK4819_SetScrambleFrequencyControlWord(Tone);
|
||||||
|
|
||||||
|
if (gEeprom.ALARM_MODE == ALARM_MODE_TONE && gAlarmRunningCounter == 512)
|
||||||
|
{
|
||||||
|
gAlarmRunningCounter = 0;
|
||||||
|
|
||||||
|
if (gAlarmState == ALARM_STATE_TXALARM)
|
||||||
|
{
|
||||||
|
gAlarmState = ALARM_STATE_ALARM;
|
||||||
|
RADIO_EnableCxCSS();
|
||||||
|
BK4819_SetupPowerAmplifier(0, 0);
|
||||||
|
BK4819_ToggleGpioOut(BK4819_GPIO5_PIN1, false);
|
||||||
|
BK4819_Enable_AfDac_DiscMode_TxDsp();
|
||||||
|
BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, false);
|
||||||
|
GUI_DisplayScreen();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gAlarmState = ALARM_STATE_TXALARM;
|
||||||
|
GUI_DisplayScreen();
|
||||||
|
BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true);
|
||||||
|
RADIO_SetTxParameters();
|
||||||
|
BK4819_TransmitTone(true, 500);
|
||||||
|
SYSTEM_DelayMs(2);
|
||||||
|
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
||||||
|
gEnableSpeaker = true;
|
||||||
|
gAlarmToneCounter = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
#endif
|
||||||
|
|
||||||
if (gRTTECountdown)
|
if (gRTTECountdown)
|
||||||
{
|
{
|
||||||
@ -1458,25 +1460,27 @@ void APP_TimeSlice500ms(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ALARM_Off(void)
|
#ifndef DISABLE_ALARM
|
||||||
{
|
static void ALARM_Off(void)
|
||||||
gAlarmState = ALARM_STATE_OFF;
|
|
||||||
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
|
||||||
gEnableSpeaker = false;
|
|
||||||
|
|
||||||
if (gEeprom.ALARM_MODE == ALARM_MODE_TONE)
|
|
||||||
{
|
{
|
||||||
RADIO_SendEndOfTransmission();
|
gAlarmState = ALARM_STATE_OFF;
|
||||||
RADIO_EnableCxCSS();
|
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
||||||
|
gEnableSpeaker = false;
|
||||||
|
|
||||||
|
if (gEeprom.ALARM_MODE == ALARM_MODE_TONE)
|
||||||
|
{
|
||||||
|
RADIO_SendEndOfTransmission();
|
||||||
|
RADIO_EnableCxCSS();
|
||||||
|
}
|
||||||
|
|
||||||
|
gVoxResumeCountdown = 80;
|
||||||
|
|
||||||
|
SYSTEM_DelayMs(5);
|
||||||
|
|
||||||
|
RADIO_SetupRegisters(true);
|
||||||
|
gRequestDisplayScreen = DISPLAY_MAIN;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
gVoxResumeCountdown = 80;
|
|
||||||
|
|
||||||
SYSTEM_DelayMs(5);
|
|
||||||
|
|
||||||
RADIO_SetupRegisters(true);
|
|
||||||
gRequestDisplayScreen = DISPLAY_MAIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CHANNEL_Next(bool bFlag, int8_t Direction)
|
void CHANNEL_Next(bool bFlag, int8_t Direction)
|
||||||
{
|
{
|
||||||
@ -1665,7 +1669,9 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
{
|
{
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
||||||
{
|
{
|
||||||
if (gAlarmState == ALARM_STATE_OFF)
|
#ifndef DISABLE_ALARM
|
||||||
|
if (gAlarmState == ALARM_STATE_OFF)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (Key == KEY_PTT)
|
if (Key == KEY_PTT)
|
||||||
{
|
{
|
||||||
@ -1719,21 +1725,23 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
#ifndef DISABLE_ALARM
|
||||||
if (!bKeyHeld && bKeyPressed)
|
|
||||||
{
|
|
||||||
ALARM_Off();
|
|
||||||
|
|
||||||
if (gEeprom.REPEATER_TAIL_TONE_ELIMINATION == 0)
|
|
||||||
FUNCTION_Select(FUNCTION_FOREGROUND);
|
|
||||||
else
|
else
|
||||||
gRTTECountdown = gEeprom.REPEATER_TAIL_TONE_ELIMINATION * 10;
|
if (!bKeyHeld && bKeyPressed)
|
||||||
|
{
|
||||||
|
ALARM_Off();
|
||||||
|
|
||||||
if (Key == KEY_PTT)
|
if (gEeprom.REPEATER_TAIL_TONE_ELIMINATION == 0)
|
||||||
gPttWasPressed = true;
|
FUNCTION_Select(FUNCTION_FOREGROUND);
|
||||||
else
|
else
|
||||||
gPttWasReleased = true;
|
gRTTECountdown = gEeprom.REPEATER_TAIL_TONE_ELIMINATION * 10;
|
||||||
}
|
|
||||||
|
if (Key == KEY_PTT)
|
||||||
|
gPttWasPressed = true;
|
||||||
|
else
|
||||||
|
gPttWasReleased = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (Key != KEY_SIDE1 && Key != KEY_SIDE2)
|
if (Key != KEY_SIDE1 && Key != KEY_SIDE2)
|
||||||
|
20
app/menu.c
20
app/menu.c
@ -171,7 +171,9 @@ int MENU_GetLimits(uint8_t Cursor, uint8_t *pMin, uint8_t *pMax)
|
|||||||
case MENU_S_ADD1:
|
case MENU_S_ADD1:
|
||||||
case MENU_S_ADD2:
|
case MENU_S_ADD2:
|
||||||
case MENU_STE:
|
case MENU_STE:
|
||||||
case MENU_AL_MOD:
|
#ifndef DISABLE_ALARM
|
||||||
|
case MENU_AL_MOD:
|
||||||
|
#endif
|
||||||
case MENU_D_ST:
|
case MENU_D_ST:
|
||||||
case MENU_D_DCD:
|
case MENU_D_DCD:
|
||||||
case MENU_AM:
|
case MENU_AM:
|
||||||
@ -469,9 +471,11 @@ void MENU_AcceptSetting(void)
|
|||||||
gEeprom.SCAN_LIST_DEFAULT = gSubMenuSelection - 1;
|
gEeprom.SCAN_LIST_DEFAULT = gSubMenuSelection - 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_AL_MOD:
|
#ifndef DISABLE_ALARM
|
||||||
gEeprom.ALARM_MODE = gSubMenuSelection;
|
case MENU_AL_MOD:
|
||||||
break;
|
gEeprom.ALARM_MODE = gSubMenuSelection;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case MENU_D_ST:
|
case MENU_D_ST:
|
||||||
gEeprom.DTMF_SIDE_TONE = gSubMenuSelection;
|
gEeprom.DTMF_SIDE_TONE = gSubMenuSelection;
|
||||||
@ -809,9 +813,11 @@ void MENU_ShowCurrentSetting(void)
|
|||||||
gSubMenuSelection = RADIO_FindNextChannel(0, 1, true, 1);
|
gSubMenuSelection = RADIO_FindNextChannel(0, 1, true, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_AL_MOD:
|
#ifndef DISABLE_ALARM
|
||||||
gSubMenuSelection = gEeprom.ALARM_MODE;
|
case MENU_AL_MOD:
|
||||||
break;
|
gSubMenuSelection = gEeprom.ALARM_MODE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case MENU_D_ST:
|
case MENU_D_ST:
|
||||||
gSubMenuSelection = gEeprom.DTMF_SIDE_TONE;
|
gSubMenuSelection = gEeprom.DTMF_SIDE_TONE;
|
||||||
|
4
board.c
4
board.c
@ -431,7 +431,9 @@ void BOARD_EEPROM_Init(void)
|
|||||||
|
|
||||||
// 0EA8..0EAF
|
// 0EA8..0EAF
|
||||||
EEPROM_ReadBuffer(0x0EA8, Data, 8);
|
EEPROM_ReadBuffer(0x0EA8, Data, 8);
|
||||||
gEeprom.ALARM_MODE = (Data[0] < 2) ? Data[0] : true;
|
#ifndef DISABLE_ALARM
|
||||||
|
gEeprom.ALARM_MODE = (Data[0] < 2) ? Data[0] : true;
|
||||||
|
#endif
|
||||||
gEeprom.ROGER = (Data[1] < 3) ? Data[1] : ROGER_MODE_OFF;
|
gEeprom.ROGER = (Data[1] < 3) ? Data[1] : ROGER_MODE_OFF;
|
||||||
gEeprom.REPEATER_TAIL_TONE_ELIMINATION = (Data[2] < 11) ? Data[2] : 0;
|
gEeprom.REPEATER_TAIL_TONE_ELIMINATION = (Data[2] < 11) ? Data[2] : 0;
|
||||||
gEeprom.TX_CHANNEL = (Data[3] < 2) ? Data[3] : 0;
|
gEeprom.TX_CHANNEL = (Data[3] < 2) ? Data[3] : 0;
|
||||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
BIN
firmware.packed.bin
Normal file
BIN
firmware.packed.bin
Normal file
Binary file not shown.
66
functions.c
66
functions.c
@ -127,24 +127,26 @@ void FUNCTION_Select(FUNCTION_Type_t Function)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case FUNCTION_TRANSMIT:
|
case FUNCTION_TRANSMIT:
|
||||||
if (gFmRadioMode) {
|
if (gFmRadioMode)
|
||||||
BK1080_Init(0, false);
|
BK1080_Init(0, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (gAlarmState == ALARM_STATE_TXALARM && gEeprom.ALARM_MODE != ALARM_MODE_TONE) {
|
#ifndef DISABLE_ALARM
|
||||||
gAlarmState = ALARM_STATE_ALARM;
|
if (gAlarmState == ALARM_STATE_TXALARM && gEeprom.ALARM_MODE != ALARM_MODE_TONE)
|
||||||
GUI_DisplayScreen();
|
{
|
||||||
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
gAlarmState = ALARM_STATE_ALARM;
|
||||||
SYSTEM_DelayMs(20);
|
GUI_DisplayScreen();
|
||||||
BK4819_PlayTone(500, 0);
|
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
||||||
SYSTEM_DelayMs(2);
|
SYSTEM_DelayMs(20);
|
||||||
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
BK4819_PlayTone(500, 0);
|
||||||
gEnableSpeaker = true;
|
SYSTEM_DelayMs(2);
|
||||||
SYSTEM_DelayMs(60);
|
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
||||||
BK4819_ExitTxMute();
|
gEnableSpeaker = true;
|
||||||
gAlarmToneCounter = 0;
|
SYSTEM_DelayMs(60);
|
||||||
break;
|
BK4819_ExitTxMute();
|
||||||
}
|
gAlarmToneCounter = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
GUI_DisplayScreen();
|
GUI_DisplayScreen();
|
||||||
RADIO_SetTxParameters();
|
RADIO_SetTxParameters();
|
||||||
@ -152,23 +154,27 @@ void FUNCTION_Select(FUNCTION_Type_t Function)
|
|||||||
|
|
||||||
DTMF_Reply();
|
DTMF_Reply();
|
||||||
|
|
||||||
if (gAlarmState != ALARM_STATE_OFF) {
|
#ifndef DISABLE_ALARM
|
||||||
if (gAlarmState == ALARM_STATE_TX1750) {
|
if (gAlarmState != ALARM_STATE_OFF)
|
||||||
BK4819_TransmitTone(true, 1750);
|
{
|
||||||
} else {
|
if (gAlarmState == ALARM_STATE_TX1750)
|
||||||
BK4819_TransmitTone(true, 500);
|
BK4819_TransmitTone(true, 1750);
|
||||||
|
else
|
||||||
|
BK4819_TransmitTone(true, 500);
|
||||||
|
|
||||||
|
SYSTEM_DelayMs(2);
|
||||||
|
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
||||||
|
gAlarmToneCounter = 0;
|
||||||
|
gEnableSpeaker = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
SYSTEM_DelayMs(2);
|
#endif
|
||||||
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
|
|
||||||
gAlarmToneCounter = 0;
|
if (gCurrentVfo->SCRAMBLING_TYPE && gSetting_ScrambleEnable)
|
||||||
gEnableSpeaker = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (gCurrentVfo->SCRAMBLING_TYPE && gSetting_ScrambleEnable) {
|
|
||||||
BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1U);
|
BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1U);
|
||||||
} else {
|
else
|
||||||
BK4819_DisableScramble();
|
BK4819_DisableScramble();
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gBatterySaveCountdown = 1000;
|
gBatterySaveCountdown = 1000;
|
||||||
|
3
main.c
3
main.c
@ -109,6 +109,9 @@ void Main(void)
|
|||||||
SYSTEM_DelayMs(2000);
|
SYSTEM_DelayMs(2000);
|
||||||
|
|
||||||
gMenuListCount = 51;
|
gMenuListCount = 51;
|
||||||
|
#ifdef DISABLE_ALARM
|
||||||
|
gMenuListCount--;
|
||||||
|
#endif
|
||||||
#ifdef DISABLE_VOICE
|
#ifdef DISABLE_VOICE
|
||||||
gMenuListCount--;
|
gMenuListCount--;
|
||||||
#endif
|
#endif
|
||||||
|
10
misc.c
10
misc.c
@ -77,7 +77,9 @@ uint8_t gReducedService;
|
|||||||
uint8_t gBatteryVoltageIndex;
|
uint8_t gBatteryVoltageIndex;
|
||||||
CssScanMode_t gCssScanMode;
|
CssScanMode_t gCssScanMode;
|
||||||
bool gUpdateRSSI;
|
bool gUpdateRSSI;
|
||||||
AlarmState_t gAlarmState;
|
#ifndef DISABLE_ALARM
|
||||||
|
AlarmState_t gAlarmState;
|
||||||
|
#endif
|
||||||
uint8_t gVoltageMenuCountdown;
|
uint8_t gVoltageMenuCountdown;
|
||||||
bool gPttWasReleased;
|
bool gPttWasReleased;
|
||||||
bool gPttWasPressed;
|
bool gPttWasPressed;
|
||||||
@ -117,8 +119,10 @@ uint8_t gCurrentScanList;
|
|||||||
uint8_t gPreviousMrChannel;
|
uint8_t gPreviousMrChannel;
|
||||||
uint32_t gRestoreFrequency;
|
uint32_t gRestoreFrequency;
|
||||||
uint8_t gRxVfoIsActive;
|
uint8_t gRxVfoIsActive;
|
||||||
uint8_t gAlarmToneCounter;
|
#ifndef DISABLE_ALARM
|
||||||
uint16_t gAlarmRunningCounter;
|
uint8_t gAlarmToneCounter;
|
||||||
|
uint16_t gAlarmRunningCounter;
|
||||||
|
#endif
|
||||||
bool gKeyBeingHeld;
|
bool gKeyBeingHeld;
|
||||||
bool gPttIsPressed;
|
bool gPttIsPressed;
|
||||||
uint8_t gPttDebounceCounter;
|
uint8_t gPttDebounceCounter;
|
||||||
|
14
radio.c
14
radio.c
@ -802,7 +802,9 @@ void RADIO_PrepareTX(void)
|
|||||||
|
|
||||||
RADIO_SelectCurrentVfo();
|
RADIO_SelectCurrentVfo();
|
||||||
|
|
||||||
if (gAlarmState == ALARM_STATE_OFF || gAlarmState == ALARM_STATE_TX1750 || (gAlarmState == ALARM_STATE_ALARM && gEeprom.ALARM_MODE == ALARM_MODE_TONE))
|
#ifndef DISABLE_ALARM
|
||||||
|
if (gAlarmState == ALARM_STATE_OFF || gAlarmState == ALARM_STATE_TX1750 || (gAlarmState == ALARM_STATE_ALARM && gEeprom.ALARM_MODE == ALARM_MODE_TONE))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
VfoState_t State;
|
VfoState_t State;
|
||||||
|
|
||||||
@ -824,7 +826,9 @@ void RADIO_PrepareTX(void)
|
|||||||
|
|
||||||
RADIO_SetVfoState(State);
|
RADIO_SetVfoState(State);
|
||||||
|
|
||||||
gAlarmState = ALARM_STATE_OFF;
|
#ifndef DISABLE_ALARM
|
||||||
|
gAlarmState = ALARM_STATE_OFF;
|
||||||
|
#endif
|
||||||
|
|
||||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||||
|
|
||||||
@ -851,7 +855,11 @@ Skip:
|
|||||||
|
|
||||||
FUNCTION_Select(FUNCTION_TRANSMIT);
|
FUNCTION_Select(FUNCTION_TRANSMIT);
|
||||||
|
|
||||||
gTxTimerCountdown = (gAlarmState == ALARM_STATE_OFF) ? gEeprom.TX_TIMEOUT_TIMER * 120 : 0;
|
#ifndef DISABLE_ALARM
|
||||||
|
gTxTimerCountdown = (gAlarmState == ALARM_STATE_OFF) ? gEeprom.TX_TIMEOUT_TIMER * 120 : 0;
|
||||||
|
#else
|
||||||
|
gTxTimerCountdown = gEeprom.TX_TIMEOUT_TIMER * 120;
|
||||||
|
#endif
|
||||||
|
|
||||||
gTxTimeoutReached = false;
|
gTxTimeoutReached = false;
|
||||||
gFlagEndTransmission = false;
|
gFlagEndTransmission = false;
|
||||||
|
87
radio.h
87
radio.h
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "dcs.h"
|
#include "dcs.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -28,44 +29,56 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
RADIO_CHANNEL_UP = 0x01U,
|
RADIO_CHANNEL_UP = 0x01U,
|
||||||
RADIO_CHANNEL_DOWN = 0xFFU,
|
RADIO_CHANNEL_DOWN = 0xFFU,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
BANDWIDTH_WIDE = 0U,
|
BANDWIDTH_WIDE = 0,
|
||||||
BANDWIDTH_NARROW = 1U,
|
BANDWIDTH_NARROW
|
||||||
};
|
};
|
||||||
|
|
||||||
enum PTT_ID_t {
|
enum PTT_ID_t {
|
||||||
PTT_ID_OFF = 0U,
|
PTT_ID_OFF = 0,
|
||||||
PTT_ID_BOT = 1U,
|
PTT_ID_BOT,
|
||||||
PTT_ID_EOT = 2U,
|
PTT_ID_EOT,
|
||||||
PTT_ID_BOTH = 3U,
|
PTT_ID_BOTH
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum PTT_ID_t PTT_ID_t;
|
typedef enum PTT_ID_t PTT_ID_t;
|
||||||
|
|
||||||
enum STEP_Setting_t {
|
#if 0
|
||||||
STEP_2_5kHz,
|
enum STEP_Setting_t {
|
||||||
STEP_5_0kHz,
|
STEP_2_5kHz,
|
||||||
STEP_6_25kHz,
|
STEP_5_0kHz,
|
||||||
STEP_10_0kHz,
|
STEP_6_25kHz,
|
||||||
STEP_12_5kHz,
|
STEP_10_0kHz,
|
||||||
STEP_25_0kHz,
|
STEP_12_5kHz,
|
||||||
STEP_8_33kHz,
|
STEP_25_0kHz,
|
||||||
};
|
STEP_8_33kHz,
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
enum STEP_Setting_t {
|
||||||
|
STEP_1_25kHz,
|
||||||
|
STEP_2_5kHz,
|
||||||
|
STEP_6_25kHz,
|
||||||
|
STEP_10_0kHz,
|
||||||
|
STEP_12_5kHz,
|
||||||
|
STEP_25_0kHz,
|
||||||
|
STEP_8_33kHz,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef enum STEP_Setting_t STEP_Setting_t;
|
typedef enum STEP_Setting_t STEP_Setting_t;
|
||||||
|
|
||||||
enum VfoState_t {
|
enum VfoState_t {
|
||||||
VFO_STATE_NORMAL = 0U,
|
VFO_STATE_NORMAL = 0,
|
||||||
VFO_STATE_BUSY = 1U,
|
VFO_STATE_BUSY,
|
||||||
VFO_STATE_BAT_LOW = 2U,
|
VFO_STATE_BAT_LOW,
|
||||||
VFO_STATE_TX_DISABLE = 3U,
|
VFO_STATE_TX_DISABLE,
|
||||||
VFO_STATE_TIMEOUT = 4U,
|
VFO_STATE_TIMEOUT,
|
||||||
VFO_STATE_ALARM = 5U,
|
VFO_STATE_ALARM,
|
||||||
VFO_STATE_VOL_HIGH = 6U,
|
VFO_STATE_VOL_HIGH
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum VfoState_t VfoState_t;
|
typedef enum VfoState_t VfoState_t;
|
||||||
@ -123,24 +136,24 @@ extern STEP_Setting_t gStepSetting;
|
|||||||
|
|
||||||
extern VfoState_t VfoState[2];
|
extern VfoState_t VfoState[2];
|
||||||
|
|
||||||
bool RADIO_CheckValidChannel(uint16_t ChNum, bool bCheckScanList, uint8_t RadioNum);
|
bool RADIO_CheckValidChannel(uint16_t ChNum, bool bCheckScanList, uint8_t RadioNum);
|
||||||
uint8_t RADIO_FindNextChannel(uint8_t ChNum, int8_t Direction, bool bCheckScanList, uint8_t RadioNum);
|
uint8_t RADIO_FindNextChannel(uint8_t ChNum, int8_t Direction, bool bCheckScanList, uint8_t RadioNum);
|
||||||
void RADIO_InitInfo(VFO_Info_t *pInfo, uint8_t ChannelSave, uint8_t ChIndex, uint32_t Frequency);
|
void RADIO_InitInfo(VFO_Info_t *pInfo, uint8_t ChannelSave, uint8_t ChIndex, uint32_t Frequency);
|
||||||
void RADIO_ConfigureChannel(uint8_t RadioNum, uint32_t Arg);
|
void RADIO_ConfigureChannel(uint8_t RadioNum, uint32_t Arg);
|
||||||
void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo);
|
void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo);
|
||||||
void RADIO_ApplyOffset(VFO_Info_t *pInfo);
|
void RADIO_ApplyOffset(VFO_Info_t *pInfo);
|
||||||
void RADIO_SelectVfos(void);
|
void RADIO_SelectVfos(void);
|
||||||
void RADIO_SetupRegisters(bool bSwitchToFunction0);
|
void RADIO_SetupRegisters(bool bSwitchToFunction0);
|
||||||
#ifndef DISABLE_NOAA
|
#ifndef DISABLE_NOAA
|
||||||
void RADIO_ConfigureNOAA(void);
|
void RADIO_ConfigureNOAA(void);
|
||||||
#endif
|
#endif
|
||||||
void RADIO_SetTxParameters(void);
|
void RADIO_SetTxParameters(void);
|
||||||
|
|
||||||
void RADIO_SetVfoState(VfoState_t State);
|
void RADIO_SetVfoState(VfoState_t State);
|
||||||
void RADIO_PrepareTX(void);
|
void RADIO_PrepareTX(void);
|
||||||
void RADIO_EnableCxCSS(void);
|
void RADIO_EnableCxCSS(void);
|
||||||
void RADIO_PrepareCssTX(void);
|
void RADIO_PrepareCssTX(void);
|
||||||
void RADIO_SendEndOfTransmission(void);
|
void RADIO_SendEndOfTransmission(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -122,7 +122,11 @@ void SETTINGS_SaveSettings(void)
|
|||||||
EEPROM_WriteBuffer(0x0EA0, State);
|
EEPROM_WriteBuffer(0x0EA0, State);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
State[0] = gEeprom.ALARM_MODE;
|
#ifndef DISABLE_ALARM
|
||||||
|
State[0] = gEeprom.ALARM_MODE;
|
||||||
|
#else
|
||||||
|
State[0] = false;
|
||||||
|
#endif
|
||||||
State[1] = gEeprom.ROGER;
|
State[1] = gEeprom.ROGER;
|
||||||
State[2] = gEeprom.REPEATER_TAIL_TONE_ELIMINATION;
|
State[2] = gEeprom.REPEATER_TAIL_TONE_ELIMINATION;
|
||||||
State[3] = gEeprom.TX_CHANNEL;
|
State[3] = gEeprom.TX_CHANNEL;
|
||||||
|
75
settings.h
75
settings.h
@ -19,85 +19,86 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "radio.h"
|
#include "radio.h"
|
||||||
|
|
||||||
enum POWER_OnDisplayMode_t {
|
enum POWER_OnDisplayMode_t {
|
||||||
POWER_ON_DISPLAY_MODE_FULL_SCREEN = 0U,
|
POWER_ON_DISPLAY_MODE_FULL_SCREEN = 0,
|
||||||
POWER_ON_DISPLAY_MODE_MESSAGE = 1U,
|
POWER_ON_DISPLAY_MODE_MESSAGE,
|
||||||
POWER_ON_DISPLAY_MODE_VOLTAGE = 2U,
|
POWER_ON_DISPLAY_MODE_VOLTAGE
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum POWER_OnDisplayMode_t POWER_OnDisplayMode_t;
|
typedef enum POWER_OnDisplayMode_t POWER_OnDisplayMode_t;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
F_LOCK_OFF = 0U,
|
F_LOCK_OFF = 0,
|
||||||
F_LOCK_FCC = 1U,
|
F_LOCK_FCC,
|
||||||
F_LOCK_CE = 2U,
|
F_LOCK_CE,
|
||||||
F_LOCK_GB = 3U,
|
F_LOCK_GB,
|
||||||
F_LOCK_430 = 4U,
|
F_LOCK_430,
|
||||||
F_LOCK_438 = 5U,
|
F_LOCK_438
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
SCAN_RESUME_TO = 0U,
|
SCAN_RESUME_TO = 0,
|
||||||
SCAN_RESUME_CO = 1U,
|
SCAN_RESUME_CO,
|
||||||
SCAN_RESUME_SE = 2U,
|
SCAN_RESUME_SE
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
CROSS_BAND_OFF = 0U,
|
CROSS_BAND_OFF = 0,
|
||||||
CROSS_BAND_CHAN_A = 1U,
|
CROSS_BAND_CHAN_A,
|
||||||
CROSS_BAND_CHAN_B = 2U,
|
CROSS_BAND_CHAN_B
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
DUAL_WATCH_OFF = 0U,
|
DUAL_WATCH_OFF = 0,
|
||||||
DUAL_WATCH_CHAN_A = 1U,
|
DUAL_WATCH_CHAN_A,
|
||||||
DUAL_WATCH_CHAN_B = 2U,
|
DUAL_WATCH_CHAN_B
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
FREQUENCY_DEVIATION_OFF = 0U,
|
FREQUENCY_DEVIATION_OFF = 0,
|
||||||
FREQUENCY_DEVIATION_ADD = 1U,
|
FREQUENCY_DEVIATION_ADD,
|
||||||
FREQUENCY_DEVIATION_SUB = 2U,
|
FREQUENCY_DEVIATION_SUB
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
OUTPUT_POWER_LOW = 0U,
|
OUTPUT_POWER_LOW = 0,
|
||||||
OUTPUT_POWER_MID = 1U,
|
OUTPUT_POWER_MID,
|
||||||
OUTPUT_POWER_HIGH = 2U,
|
OUTPUT_POWER_HIGH
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef DISABLE_VOICE
|
#ifndef DISABLE_VOICE
|
||||||
enum VOICE_Prompt_t
|
enum VOICE_Prompt_t
|
||||||
{
|
{
|
||||||
VOICE_PROMPT_OFF = 0U,
|
VOICE_PROMPT_OFF = 0,
|
||||||
VOICE_PROMPT_CHINESE = 1U,
|
VOICE_PROMPT_CHINESE,
|
||||||
VOICE_PROMPT_ENGLISH = 2U,
|
VOICE_PROMPT_ENGLISH
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum VOICE_Prompt_t VOICE_Prompt_t;
|
typedef enum VOICE_Prompt_t VOICE_Prompt_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum ALARM_Mode_t {
|
enum ALARM_Mode_t {
|
||||||
ALARM_MODE_SITE = 0U,
|
ALARM_MODE_SITE = 0,
|
||||||
ALARM_MODE_TONE = 1U,
|
ALARM_MODE_TONE
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum ALARM_Mode_t ALARM_Mode_t;
|
typedef enum ALARM_Mode_t ALARM_Mode_t;
|
||||||
|
|
||||||
enum ROGER_Mode_t {
|
enum ROGER_Mode_t {
|
||||||
ROGER_MODE_OFF = 0U,
|
ROGER_MODE_OFF = 0,
|
||||||
ROGER_MODE_ROGER = 1U,
|
ROGER_MODE_ROGER,
|
||||||
ROGER_MODE_MDC = 2U,
|
ROGER_MODE_MDC
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum ROGER_Mode_t ROGER_Mode_t;
|
typedef enum ROGER_Mode_t ROGER_Mode_t;
|
||||||
|
|
||||||
enum CHANNEL_DisplayMode_t {
|
enum CHANNEL_DisplayMode_t {
|
||||||
MDF_FREQUENCY = 0U,
|
MDF_FREQUENCY = 0,
|
||||||
MDF_CHANNEL = 1U,
|
MDF_CHANNEL,
|
||||||
MDF_NAME = 2U,
|
MDF_NAME
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum CHANNEL_DisplayMode_t CHANNEL_DisplayMode_t;
|
typedef enum CHANNEL_DisplayMode_t CHANNEL_DisplayMode_t;
|
||||||
@ -154,7 +155,9 @@ typedef struct {
|
|||||||
uint16_t FM_LowerLimit;
|
uint16_t FM_LowerLimit;
|
||||||
uint16_t FM_UpperLimit;
|
uint16_t FM_UpperLimit;
|
||||||
bool AUTO_KEYPAD_LOCK;
|
bool AUTO_KEYPAD_LOCK;
|
||||||
ALARM_Mode_t ALARM_MODE;
|
#ifndef DISABLE_ALARM
|
||||||
|
ALARM_Mode_t ALARM_MODE;
|
||||||
|
#endif
|
||||||
POWER_OnDisplayMode_t POWER_ON_DISPLAY_MODE;
|
POWER_OnDisplayMode_t POWER_ON_DISPLAY_MODE;
|
||||||
ROGER_Mode_t ROGER;
|
ROGER_Mode_t ROGER;
|
||||||
uint8_t REPEATER_TAIL_TONE_ELIMINATION;
|
uint8_t REPEATER_TAIL_TONE_ELIMINATION;
|
||||||
|
33
ui/main.c
33
ui/main.c
@ -153,11 +153,13 @@ void UI_DisplayMain(void)
|
|||||||
|
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
||||||
{
|
{
|
||||||
if (gAlarmState == ALARM_STATE_ALARM)
|
#ifndef DISABLE_ALARM
|
||||||
{
|
if (gAlarmState == ALARM_STATE_ALARM)
|
||||||
SomeValue = 2;
|
{
|
||||||
}
|
SomeValue = 2;
|
||||||
else
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF)
|
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF)
|
||||||
Channel = gEeprom.RX_CHANNEL;
|
Channel = gEeprom.RX_CHANNEL;
|
||||||
@ -214,15 +216,18 @@ void UI_DisplayMain(void)
|
|||||||
// 0x8FEC
|
// 0x8FEC
|
||||||
|
|
||||||
uint8_t State = VfoState[i];
|
uint8_t State = VfoState[i];
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT && gAlarmState == ALARM_STATE_ALARM)
|
|
||||||
{
|
#ifndef DISABLE_ALARM
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF)
|
if (gCurrentFunction == FUNCTION_TRANSMIT && gAlarmState == ALARM_STATE_ALARM)
|
||||||
Channel = gEeprom.RX_CHANNEL;
|
{
|
||||||
else
|
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF)
|
||||||
Channel = gEeprom.TX_CHANNEL;
|
Channel = gEeprom.RX_CHANNEL;
|
||||||
if (Channel == i)
|
else
|
||||||
State = VFO_STATE_ALARM;
|
Channel = gEeprom.TX_CHANNEL;
|
||||||
}
|
if (Channel == i)
|
||||||
|
State = VFO_STATE_ALARM;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (State)
|
if (State)
|
||||||
{
|
{
|
||||||
|
24
ui/menu.c
24
ui/menu.c
@ -72,7 +72,9 @@ static const char MenuList[][7] =
|
|||||||
"SLIST1",
|
"SLIST1",
|
||||||
// 32
|
// 32
|
||||||
"SLIST2",
|
"SLIST2",
|
||||||
"AL-MOD",
|
#ifndef DISABLE_ALARM
|
||||||
|
"AL-MOD",
|
||||||
|
#endif
|
||||||
"ANI-ID",
|
"ANI-ID",
|
||||||
"UPCODE",
|
"UPCODE",
|
||||||
"DWCODE",
|
"DWCODE",
|
||||||
@ -195,11 +197,13 @@ static const char gSubMenu_MDF[3][5] =
|
|||||||
"NAME",
|
"NAME",
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char gSubMenu_AL_MOD[2][5] =
|
#ifndef DISABLE_ALARM
|
||||||
{
|
static const char gSubMenu_AL_MOD[2][5] =
|
||||||
"SITE",
|
{
|
||||||
"TONE",
|
"SITE",
|
||||||
};
|
"TONE",
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const char gSubMenu_D_RSP[4][6] =
|
static const char gSubMenu_D_RSP[4][6] =
|
||||||
{
|
{
|
||||||
@ -441,9 +445,11 @@ void UI_DisplayMenu(void)
|
|||||||
sprintf(String, "LIST%d", gSubMenuSelection);
|
sprintf(String, "LIST%d", gSubMenuSelection);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_AL_MOD:
|
#ifndef DISABLE_ALARM
|
||||||
sprintf(String, gSubMenu_AL_MOD[gSubMenuSelection]);
|
case MENU_AL_MOD:
|
||||||
break;
|
sprintf(String, gSubMenu_AL_MOD[gSubMenuSelection]);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case MENU_ANI_ID:
|
case MENU_ANI_ID:
|
||||||
strcpy(String, gEeprom.ANI_DTMF_ID);
|
strcpy(String, gEeprom.ANI_DTMF_ID);
|
||||||
|
@ -57,7 +57,9 @@ enum
|
|||||||
MENU_S_LIST,
|
MENU_S_LIST,
|
||||||
MENU_SLIST1,
|
MENU_SLIST1,
|
||||||
MENU_SLIST2,
|
MENU_SLIST2,
|
||||||
MENU_AL_MOD,
|
#ifndef DISABLE_ALARM
|
||||||
|
MENU_AL_MOD,
|
||||||
|
#endif
|
||||||
MENU_ANI_ID,
|
MENU_ANI_ID,
|
||||||
MENU_UPCODE,
|
MENU_UPCODE,
|
||||||
MENU_DWCODE,
|
MENU_DWCODE,
|
||||||
|
@ -13,7 +13,7 @@ del /S /Q *.o >nul 2>nul
|
|||||||
del /S /Q *.d >nul 2>nul
|
del /S /Q *.d >nul 2>nul
|
||||||
|
|
||||||
::python -m pip install --upgrade pip crcmod
|
::python -m pip install --upgrade pip crcmod
|
||||||
::fw-pack.py firmware.bin 20230609-1 firmware.packed.bin
|
fw-pack.py firmware.bin 230909 firmware.packed.bin
|
||||||
|
|
||||||
::arm-none-eabi-size firmware
|
::arm-none-eabi-size firmware
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user