diff --git a/app/action.c b/app/action.c index 11c32ee..ce446fd 100644 --- a/app/action.c +++ b/app/action.c @@ -621,25 +621,14 @@ void ACTION_BackLightOnDemand(void) #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS void ACTION_Power_High(void) { - if (gTxVfo->OUTPUT_POWER == gInitialPower) - gTxVfo->OUTPUT_POWER = OUTPUT_POWER_HIGH; - else if(gTxVfo->OUTPUT_POWER == OUTPUT_POWER_HIGH) - gTxVfo->OUTPUT_POWER = gInitialPower; + gPowerHigh = !gPowerHigh; + gVfoConfigureMode = VFO_CONFIGURE_RELOAD; } void ACTION_Remove_Shift(void) { - if(gTxVfo->TX_OFFSET_FREQUENCY_DIRECTION != 0) - { - if(gTxVfo->pTX == &gTxVfo->freq_config_TX) - { - gTxVfo->pTX = &gTxVfo->freq_config_RX; - } - else - { - gTxVfo->pTX = &gTxVfo->freq_config_TX; - } - } + gRemoveShift = !gRemoveShift; + gVfoConfigureMode = VFO_CONFIGURE_RELOAD; } #endif #endif \ No newline at end of file diff --git a/misc.c b/misc.c index ad7f759..3fa35ce 100644 --- a/misc.c +++ b/misc.c @@ -138,8 +138,8 @@ enum BacklightOnRxTx_t gSetting_backlight_on_tx_rx; uint8_t lErrorsDuringAirCopy = 0; uint8_t gAircopyStep = 0; #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS - bool gResetPower = false; - uint8_t gInitialPower = 0; + bool gPowerHigh = false; + bool gRemoveShift = false; #endif #endif diff --git a/misc.h b/misc.h index 31340da..650b868 100644 --- a/misc.h +++ b/misc.h @@ -191,8 +191,8 @@ extern enum BacklightOnRxTx_t gSetting_backlight_on_tx_rx; extern uint8_t lErrorsDuringAirCopy; extern uint8_t gAircopyStep; #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS - extern bool gResetPower; - extern uint8_t gInitialPower; + extern bool gPowerHigh; + extern bool gRemoveShift; #endif #endif diff --git a/radio.c b/radio.c index 7539303..257294c 100644 --- a/radio.c +++ b/radio.c @@ -159,14 +159,6 @@ 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_RESCUE_OPS - if(configure == VFO_CONFIGURE_RELOAD) - { - gResetPower = true; - } - #endif - VFO_Info_t *pVfo = &gEeprom.VfoInfo[VFO]; if (!gSetting_350EN) { @@ -436,6 +428,20 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure pVfo->Compander = att.compander; RADIO_ConfigureSquelchAndOutputPower(pVfo); + + #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS + if(gRemoveShift) + { + pVfo->pTX = &pVfo->freq_config_RX; + gRequestSaveChannel = 1; + } + + if(gPowerHigh) + { + pVfo->OUTPUT_POWER = OUTPUT_POWER_HIGH; + gRequestSaveChannel = 1; + } + #endif } void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo) diff --git a/ui/main.c b/ui/main.c index a6f13ca..eed352c 100644 --- a/ui/main.c +++ b/ui/main.c @@ -1202,14 +1202,6 @@ void UI_DisplayMain(void) uint8_t arrowPos = 19; bool userPower = false; - #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS - if(gResetPower) // RO is active - { - gInitialPower = currentPower; - gResetPower = false; - } - #endif - if(currentPower == OUTPUT_POWER_USER) { currentPower = gSetting_set_pwr;