Fix copy channel to VFO function copying wrong VFO, clean VFO setup
This commit is contained in:
21
app/main.c
21
app/main.c
@@ -130,19 +130,12 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case KEY_2:
|
case KEY_2:
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_A)
|
gEeprom.TX_VFO ^= 1;
|
||||||
gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_CHAN_B;
|
|
||||||
else
|
if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF)
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_B)
|
gEeprom.CROSS_BAND_RX_TX = gEeprom.TX_VFO + 1;
|
||||||
gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_CHAN_A;
|
if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF)
|
||||||
else
|
gEeprom.DUAL_WATCH = gEeprom.TX_VFO + 1;
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_A)
|
|
||||||
gEeprom.DUAL_WATCH = DUAL_WATCH_CHAN_B;
|
|
||||||
else
|
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_B)
|
|
||||||
gEeprom.DUAL_WATCH = DUAL_WATCH_CHAN_A;
|
|
||||||
else
|
|
||||||
gEeprom.TX_VFO = (Vfo + 1) & 1u;
|
|
||||||
|
|
||||||
gRequestSaveSettings = 1;
|
gRequestSaveSettings = 1;
|
||||||
gFlagReconfigureVfos = true;
|
gFlagReconfigureVfos = true;
|
||||||
@@ -586,7 +579,7 @@ static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const unsigned int vfo = get_rx_VFO();
|
const uint8_t vfo = gEeprom.TX_VFO;
|
||||||
|
|
||||||
if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo]))
|
if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo]))
|
||||||
{ // copy channel to VFO, then swap to the VFO
|
{ // copy channel to VFO, then swap to the VFO
|
||||||
|
34
misc.c
34
misc.c
@@ -258,40 +258,6 @@ int16_t gCurrentRSSI[2] = {0, 0}; // now one per VFO
|
|||||||
|
|
||||||
uint8_t gIsLocked = 0xFF;
|
uint8_t gIsLocked = 0xFF;
|
||||||
|
|
||||||
unsigned int get_rx_VFO(void)
|
|
||||||
{
|
|
||||||
unsigned int rx_vfo = gEeprom.TX_VFO;
|
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_B)
|
|
||||||
rx_vfo = 0;
|
|
||||||
else
|
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_A)
|
|
||||||
rx_vfo = 1;
|
|
||||||
else
|
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_B)
|
|
||||||
rx_vfo = 1;
|
|
||||||
else
|
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_A)
|
|
||||||
rx_vfo = 0;
|
|
||||||
return rx_vfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int get_tx_VFO(void)
|
|
||||||
{
|
|
||||||
unsigned int tx_vfo = gEeprom.TX_VFO;
|
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_B)
|
|
||||||
tx_vfo = 1;
|
|
||||||
else
|
|
||||||
if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_A)
|
|
||||||
tx_vfo = 0;
|
|
||||||
else
|
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_B)
|
|
||||||
tx_vfo = 1;
|
|
||||||
else
|
|
||||||
if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_A)
|
|
||||||
tx_vfo = 0;
|
|
||||||
return tx_vfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
void NUMBER_Get(char *pDigits, uint32_t *pInteger)
|
void NUMBER_Get(char *pDigits, uint32_t *pInteger)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
3
misc.h
3
misc.h
@@ -324,9 +324,6 @@ extern int16_t gCurrentRSSI[2]; // now one per VFO
|
|||||||
extern uint8_t gIsLocked;
|
extern uint8_t gIsLocked;
|
||||||
extern volatile uint8_t boot_counter_10ms;
|
extern volatile uint8_t boot_counter_10ms;
|
||||||
|
|
||||||
unsigned int get_tx_VFO(void);
|
|
||||||
unsigned int get_rx_VFO(void);
|
|
||||||
|
|
||||||
void NUMBER_Get(char *pDigits, uint32_t *pInteger);
|
void NUMBER_Get(char *pDigits, uint32_t *pInteger);
|
||||||
void NUMBER_ToDigits(uint32_t Value, char *pDigits);
|
void NUMBER_ToDigits(uint32_t Value, char *pDigits);
|
||||||
int32_t NUMBER_AddWithWraparound(int32_t Base, int32_t Add, int32_t LowerLimit, int32_t UpperLimit);
|
int32_t NUMBER_AddWithWraparound(int32_t Base, int32_t Add, int32_t LowerLimit, int32_t UpperLimit);
|
||||||
|
3
radio.c
3
radio.c
@@ -560,8 +560,7 @@ static void RADIO_SelectCurrentVfo(void)
|
|||||||
|
|
||||||
void RADIO_SelectVfos(void)
|
void RADIO_SelectVfos(void)
|
||||||
{
|
{
|
||||||
gEeprom.TX_VFO = get_tx_VFO();
|
gEeprom.RX_VFO = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.TX_VFO : !gEeprom.TX_VFO;
|
||||||
gEeprom.RX_VFO = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.TX_VFO : (gEeprom.TX_VFO + 1) & 1u;
|
|
||||||
|
|
||||||
gTxVfo = &gEeprom.VfoInfo[gEeprom.TX_VFO];
|
gTxVfo = &gEeprom.VfoInfo[gEeprom.TX_VFO];
|
||||||
gRxVfo = &gEeprom.VfoInfo[gEeprom.RX_VFO];
|
gRxVfo = &gEeprom.VfoInfo[gEeprom.RX_VFO];
|
||||||
|
Reference in New Issue
Block a user