Ability to disable ALARM and TX1750.

This commit is contained in:
Dual Tachyon 2023-09-14 16:32:21 +01:00
parent 65d7e517af
commit 6c81075980
15 changed files with 108 additions and 6 deletions

View File

@ -1,10 +1,12 @@
TARGET = firmware
ENABLE_AIRCOPY := 1
ENABLE_ALARM := 1
ENABLE_FMRADIO := 1
ENABLE_NOAA := 1
ENABLE_OVERLAY := 1
ENABLE_SWD := 0
ENABLE_TX1750 := 1
ENABLE_UART := 1
BSP_DEFINITIONS := $(wildcard hardware/*/*.def)
@ -123,6 +125,9 @@ CFLAGS += -DGIT_HASH=\"$(GIT_HASH)\"
ifeq ($(ENABLE_AIRCOPY),1)
CFLAGS += -DENABLE_AIRCOPY
endif
ifeq ($(ENABLE_ALARM),1)
CFLAGS += -DENABLE_ALARM
endif
ifeq ($(ENABLE_FMRADIO),1)
CFLAGS += -DENABLE_FMRADIO
endif
@ -135,6 +140,9 @@ endif
ifeq ($(ENABLE_SWD),1)
CFLAGS += -DENABLE_SWD
endif
ifeq ($(ENABLE_TX1750),1)
CFLAGS += -DENABLE_TX1750
endif
ifeq ($(ENABLE_UART),1)
CFLAGS += -DENABLE_UART
endif

View File

@ -150,18 +150,27 @@ void ACTION_Vox(void)
gUpdateStatus = true;
}
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
static void ACTION_AlarmOr1750(bool b1750)
{
gInputBoxIndex = 0;
#if defined(ENABLE_ALARM) && defined(ENABLE_TX1750)
if (b1750) {
gAlarmState = ALARM_STATE_TX1750;
} else {
gAlarmState = ALARM_STATE_TXALARM;
}
gAlarmRunningCounter = 0;
#elif defined(ENABLE_ALARM)
gAlarmState = ALARM_STATE_TXALARM;
gAlarmRunningCounter = 0;
#else
gAlarmState = ALARM_STATE_TX1750;
#endif
gFlagPrepareTX = true;
gRequestDisplayScreen = DISPLAY_MAIN;
}
#endif
#if defined(ENABLE_FMRADIO)
void ACTION_FM(void)
@ -246,7 +255,9 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
ACTION_Vox();
break;
case 6:
#if defined(ENABLE_ALARM)
ACTION_AlarmOr1750(false);
#endif
break;
case 7:
#if defined(ENABLE_FMRADIO)
@ -254,7 +265,9 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
#endif
break;
case 8:
#if defined(ENABLE_TX1750)
ACTION_AlarmOr1750(true);
#endif
break;
}
}

View File

@ -909,6 +909,7 @@ void APP_TimeSlice10ms(void)
gVoxPauseCountdown--;
}
if (gCurrentFunction == FUNCTION_TRANSMIT) {
#if defined(ENABLE_ALARM)
if (gAlarmState == ALARM_STATE_TXALARM || gAlarmState == ALARM_STATE_ALARM) {
uint16_t Tone;
@ -944,6 +945,7 @@ void APP_TimeSlice10ms(void)
}
}
}
#endif
if (gRTTECountdown) {
gRTTECountdown--;
if (gRTTECountdown == 0) {
@ -1263,6 +1265,7 @@ void APP_TimeSlice500ms(void)
}
}
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
static void ALARM_Off(void)
{
gAlarmState = ALARM_STATE_OFF;
@ -1277,6 +1280,7 @@ static void ALARM_Off(void)
RADIO_SetupRegisters(true);
gRequestDisplayScreen = DISPLAY_MAIN;
}
#endif
void CHANNEL_Next(bool bBackup, int8_t Direction)
{
@ -1433,7 +1437,11 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
if (!bFlag) {
if (gCurrentFunction == FUNCTION_TRANSMIT) {
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
if (gAlarmState == ALARM_STATE_OFF) {
#else
if (1) {
#endif
if (Key == KEY_PTT) {
GENERIC_Key_PTT(bKeyPressed);
} else {
@ -1473,6 +1481,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
}
}
} else if (!bKeyHeld && bKeyPressed) {
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
ALARM_Off();
if (gEeprom.REPEATER_TAIL_TONE_ELIMINATION == 0) {
FUNCTION_Select(FUNCTION_FOREGROUND);
@ -1484,6 +1493,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
} else {
gPttWasReleased = true;
}
#endif
}
} else if (Key != KEY_SIDE1 && Key != KEY_SIDE2) {
switch (gScreenToDisplay) {

View File

@ -151,7 +151,10 @@ int MENU_GetLimits(uint8_t Cursor, uint8_t *pMin, uint8_t *pMax)
case MENU_W_N: case MENU_BCL:
case MENU_BEEP: case MENU_AUTOLK:
case MENU_S_ADD1: case MENU_S_ADD2:
case MENU_STE: case MENU_AL_MOD:
case MENU_STE:
#if defined(ENABLE_ALARM)
case MENU_AL_MOD:
#endif
case MENU_D_ST: case MENU_D_DCD:
case MENU_AM:
#if defined(ENABLE_NOAA)
@ -420,9 +423,11 @@ void MENU_AcceptSetting(void)
gEeprom.SCAN_LIST_DEFAULT = gSubMenuSelection - 1;
break;
#if defined(ENABLE_ALARM)
case MENU_AL_MOD:
gEeprom.ALARM_MODE = gSubMenuSelection;
break;
#endif
case MENU_D_ST:
gEeprom.DTMF_SIDE_TONE = gSubMenuSelection;
@ -753,9 +758,11 @@ void MENU_ShowCurrentSetting(void)
gSubMenuSelection = RADIO_FindNextChannel(0, 1, true, 1);
break;
#if defined(ENABLE_ALARM)
case MENU_AL_MOD:
gSubMenuSelection = gEeprom.ALARM_MODE;
break;
#endif
case MENU_D_ST:
gSubMenuSelection = gEeprom.DTMF_SIDE_TONE;

View File

@ -592,7 +592,9 @@ void BOARD_EEPROM_Init(void)
// 0EA8..0EAF
EEPROM_ReadBuffer(0x0EA8, Data, 8);
#if defined(ENABLE_ALARM)
gEeprom.ALARM_MODE = (Data[0] < 2) ? Data[0] : true;
#endif
gEeprom.ROGER = (Data[1] < 3) ? Data[1] : ROGER_MODE_OFF;
gEeprom.REPEATER_TAIL_TONE_ELIMINATION = (Data[2] < 11) ? Data[2] : 0;
gEeprom.TX_CHANNEL = (Data[3] < 2) ? Data[3] : 0;

View File

@ -130,6 +130,7 @@ void FUNCTION_Select(FUNCTION_Type_t Function)
}
#endif
#if defined(ENABLE_ALARM)
if (gAlarmState == ALARM_STATE_TXALARM && gEeprom.ALARM_MODE != ALARM_MODE_TONE) {
gAlarmState = ALARM_STATE_ALARM;
GUI_DisplayScreen();
@ -144,6 +145,7 @@ void FUNCTION_Select(FUNCTION_Type_t Function)
gAlarmToneCounter = 0;
break;
}
#endif
GUI_DisplayScreen();
RADIO_SetTxParameters();
@ -151,18 +153,27 @@ void FUNCTION_Select(FUNCTION_Type_t Function)
DTMF_Reply();
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
if (gAlarmState != ALARM_STATE_OFF) {
#if defined(ENABLE_TX1750)
if (gAlarmState == ALARM_STATE_TX1750) {
BK4819_TransmitTone(true, 1750);
} else {
}
#endif
#if defined(ENABLE_ALARM)
if (gAlarmState == ALARM_STATE_TXALARM) {
BK4819_TransmitTone(true, 500);
}
#endif
SYSTEM_DelayMs(2);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH);
#if defined(ENABLE_ALARM)
gAlarmToneCounter = 0;
#endif
gEnableSpeaker = true;
break;
}
#endif
if (gCurrentVfo->SCRAMBLING_TYPE && gSetting_ScrambleEnable) {
BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1U);
} else {

View File

@ -62,7 +62,10 @@ void BOOT_ProcessMode(BOOT_Mode_t Mode)
gMenuCursor = MENU_350TX;
gSubMenuSelection = gSetting_350TX;
GUI_SelectNextDisplay(DISPLAY_MENU);
gMenuListCount = 56;
gMenuListCount = 55;
#if defined(ENABLE_ALARM)
gMenuListCount++;
#endif
#if defined(ENABLE_NOAA)
gMenuListCount++;
#endif

5
main.c
View File

@ -104,7 +104,10 @@ void Main(void)
UI_DisplayWelcome();
BACKLIGHT_TurnOn();
SYSTEM_DelayMs(1000);
gMenuListCount = 50;
gMenuListCount = 49;
#if defined(ENABLE_ALARM)
gMenuListCount++;
#endif
#if defined(ENABLE_NOAA)
gMenuListCount++;
#endif

4
misc.c
View File

@ -73,7 +73,9 @@ uint8_t gReducedService;
uint8_t gBatteryVoltageIndex;
CssScanMode_t gCssScanMode;
bool gUpdateRSSI;
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
AlarmState_t gAlarmState;
#endif
uint8_t gVoltageMenuCountdown;
bool gPttWasReleased;
bool gPttWasPressed;
@ -117,8 +119,10 @@ uint8_t gCurrentScanList;
uint8_t gPreviousMrChannel;
uint32_t gRestoreFrequency;
uint8_t gRxVfoIsActive;
#if defined(ENABLE_ALARM)
uint8_t gAlarmToneCounter;
uint16_t gAlarmRunningCounter;
#endif
bool gKeyBeingHeld;
bool gPttIsPressed;
uint8_t gPttDebounceCounter;

2
misc.h
View File

@ -168,8 +168,10 @@ extern uint8_t gCurrentScanList;
extern uint8_t gPreviousMrChannel;
extern uint32_t gRestoreFrequency;
extern uint8_t gRxVfoIsActive;
#if defined(ENABLE_ALARM)
extern uint8_t gAlarmToneCounter;
extern uint16_t gAlarmRunningCounter;
#endif
extern bool gKeyBeingHeld;
extern bool gPttIsPressed;
extern uint8_t gPttDebounceCounter;

19
radio.c
View File

@ -739,7 +739,18 @@ void RADIO_PrepareTX(void)
gRxVfoIsActive = true;
}
RADIO_SelectCurrentVfo();
if (gAlarmState == ALARM_STATE_OFF || gAlarmState == ALARM_STATE_TX1750 || (gAlarmState == ALARM_STATE_ALARM && gEeprom.ALARM_MODE == ALARM_MODE_TONE)) {
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
if (gAlarmState == ALARM_STATE_OFF
#if defined(ENABLE_TX1750)
|| gAlarmState == ALARM_STATE_TX1750
#endif
#if defined(ENABLE_ALARM)
|| (gAlarmState == ALARM_STATE_ALARM && gEeprom.ALARM_MODE == ALARM_MODE_TONE)
#endif
) {
#else
if (1) {
#endif
VfoState_t State;
if (!FREQUENCY_Check(gCurrentVfo)) {
@ -756,7 +767,9 @@ void RADIO_PrepareTX(void)
State = VFO_STATE_TX_DISABLE;
}
RADIO_SetVfoState(State);
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
gAlarmState = ALARM_STATE_OFF;
#endif
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
gDTMF_ReplyState = DTMF_REPLY_NONE;
return;
@ -774,11 +787,15 @@ Skip:
}
}
FUNCTION_Select(FUNCTION_TRANSMIT);
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
if (gAlarmState == ALARM_STATE_OFF) {
gTxTimerCountdown = gEeprom.TX_TIMEOUT_TIMER * 120;
} else {
gTxTimerCountdown = 0;
}
#else
gTxTimerCountdown = gEeprom.TX_TIMEOUT_TIMER * 120;
#endif
gTxTimeoutReached = false;
gFlagEndTransmission = false;
gRTTECountdown = 0;

View File

@ -128,7 +128,11 @@ void SETTINGS_SaveSettings(void)
EEPROM_WriteBuffer(0x0EA0, State);
#if defined(ENABLE_ALARM)
State[0] = gEeprom.ALARM_MODE;
#else
State[0] = 0xFF;
#endif
State[1] = gEeprom.ROGER;
State[2] = gEeprom.REPEATER_TAIL_TONE_ELIMINATION;
State[3] = gEeprom.TX_CHANNEL;

View File

@ -130,9 +130,13 @@ void UI_DisplayMain(void)
uint32_t SomeValue = 0;
if (gCurrentFunction == FUNCTION_TRANSMIT) {
#if defined(ENABLE_ALARM)
if (gAlarmState == ALARM_STATE_ALARM) {
SomeValue = 2;
} else {
#else
if (1) {
#endif
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) {
Channel = gEeprom.RX_CHANNEL;
} else {
@ -181,6 +185,7 @@ void UI_DisplayMain(void)
// 0x8FEC
uint8_t State = VfoState[i];
#if defined(ENABLE_ALARM)
if (gCurrentFunction == FUNCTION_TRANSMIT && gAlarmState == ALARM_STATE_ALARM) {
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) {
Channel = gEeprom.RX_CHANNEL;
@ -191,6 +196,7 @@ void UI_DisplayMain(void)
State = VFO_STATE_ALARM;
}
}
#endif
if (State) {
uint8_t Width = 10;
@ -209,9 +215,11 @@ void UI_DisplayMain(void)
case 4:
strcpy(String, "TIMEOUT");
break;
#if defined(ENABLE_ALARM)
case 5:
strcpy(String, "ALARM");
break;
#endif
case 6:
sprintf(String, "VOL HIGH");
Width = 8;

View File

@ -42,7 +42,11 @@ static const char MenuList[][7] = {
"S-ADD1", "S-ADD2", "STE", "RP-STE",
"MIC", "1-CALL", "S-LIST", "SLIST1",
// 0x20
"SLIST2", "AL-MOD", "ANI-ID", "UPCODE",
"SLIST2",
#if defined(ENABLE_ALARM)
"AL-MOD",
#endif
"ANI-ID", "UPCODE",
"DWCODE", "D-ST", "D-RSP", "D-HOLD",
// 0x28
"D-PRE", "PTT-ID", "D-DCD", "D-LIST",
@ -121,10 +125,12 @@ static const char gSubMenu_MDF[3][5] = {
"NAME",
};
#if defined(ENABLE_ALARM)
static const char gSubMenu_AL_MOD[2][5] = {
"SITE",
"TONE",
};
#endif
static const char gSubMenu_D_RSP[4][6] = {
"NULL",
@ -353,9 +359,11 @@ void UI_DisplayMenu(void)
sprintf(String, "LIST%d", gSubMenuSelection);
break;
#if defined(ENABLE_ALARM)
case MENU_AL_MOD:
sprintf(String, gSubMenu_AL_MOD[gSubMenuSelection]);
break;
#endif
case MENU_ANI_ID:
strcpy(String, gEeprom.ANI_DTMF_ID);

View File

@ -54,7 +54,9 @@ enum {
MENU_S_LIST,
MENU_SLIST1,
MENU_SLIST2,
#if defined(ENABLE_ALARM)
MENU_AL_MOD,
#endif
MENU_ANI_ID,
MENU_UPCODE,
MENU_DWCODE,