Add Power High action for RescueOps mode

This commit is contained in:
Armel FAUVEAU
2024-11-21 02:16:44 +01:00
parent 26e886cbf5
commit ca09b2f7ba
7 changed files with 54 additions and 0 deletions

View File

@@ -110,6 +110,9 @@ void (*action_opt_table[])(void) = {
[ACTION_OPT_MAINONLY] = &ACTION_MainOnly,
[ACTION_OPT_PTT] = &ACTION_Ptt,
[ACTION_OPT_WN] = &ACTION_Wn,
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
[ACTION_OPT_POWER_HIGH] = &ACTION_Power_High,
#endif
[ACTION_OPT_BACKLIGHT] = &ACTION_BackLight,
#else
[ACTION_OPT_RXMODE] = &FUNCTION_NOP,
@@ -613,4 +616,22 @@ void ACTION_BackLightOnDemand(void)
BACKLIGHT_TurnOn();
}
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
void ACTION_Power_High(void)
{
if(gEeprom.MENU_LOCK == true) // RO is active
{
if (gTxVfo->OUTPUT_POWER == gInitialPower)
gTxVfo->OUTPUT_POWER = OUTPUT_POWER_HIGH;
else if(gTxVfo->OUTPUT_POWER == OUTPUT_POWER_HIGH)
gTxVfo->OUTPUT_POWER = gInitialPower;
}
else
{
if (++gTxVfo->OUTPUT_POWER > OUTPUT_POWER_HIGH)
gTxVfo->OUTPUT_POWER = OUTPUT_POWER_LOW1;
}
}
#endif
#endif

View File

@@ -42,6 +42,9 @@ void ACTION_SwitchDemodul(void);
void ACTION_Wn(void);
void ACTION_BackLightOnDemand(void);
void ACTION_BackLight(void);
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
void ACTION_Power_High(void);
#endif
#endif
void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld);

4
misc.c
View File

@@ -137,6 +137,10 @@ enum BacklightOnRxTx_t gSetting_backlight_on_tx_rx;
uint8_t crc[15] = { 0 };
uint8_t lErrorsDuringAirCopy = 0;
uint8_t gAircopyStep = 0;
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
bool gResetPower = false;
uint8_t gInitialPower = 0;
#endif
#endif
#ifdef ENABLE_AUDIO_BAR

4
misc.h
View File

@@ -190,6 +190,10 @@ extern enum BacklightOnRxTx_t gSetting_backlight_on_tx_rx;
extern uint8_t crc[15];
extern uint8_t lErrorsDuringAirCopy;
extern uint8_t gAircopyStep;
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
extern bool gResetPower;
extern uint8_t gInitialPower;
#endif
#endif
#ifdef ENABLE_AUDIO_BAR

16
radio.c
View File

@@ -159,6 +159,14 @@ void RADIO_InitInfo(VFO_Info_t *pInfo, const uint8_t ChannelSave, const uint32_t
void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure)
{
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
if(configure == VFO_CONFIGURE_RELOAD)
{
gResetPower = true;
}
#endif
VFO_Info_t *pVfo = &gEeprom.VfoInfo[VFO];
if (!gSetting_350EN) {
@@ -428,6 +436,14 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure
pVfo->Compander = att.compander;
RADIO_ConfigureSquelchAndOutputPower(pVfo);
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
if(gEeprom.MENU_LOCK && gResetPower) // RO is active
{
gInitialPower = pVfo->OUTPUT_POWER;
gResetPower = false;
}
#endif
}
void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo)

View File

@@ -117,6 +117,9 @@ enum ACTION_OPT_t {
ACTION_OPT_PTT,
ACTION_OPT_WN,
ACTION_OPT_BACKLIGHT,
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
ACTION_OPT_POWER_HIGH,
#endif
#endif
ACTION_OPT_LEN
};

View File

@@ -446,6 +446,9 @@ const t_sidefunction gSubMenu_SIDEFUNCTIONS[] =
{"MAIN ONLY", ACTION_OPT_MAINONLY},
{"PTT", ACTION_OPT_PTT},
{"WIDE\nNARROW", ACTION_OPT_WN},
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
{"POWER\nHIGH", ACTION_OPT_POWER_HIGH},
#endif
#endif
};