diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 3b3574016..5ac1a1f65 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -656,7 +656,7 @@ PACK(struct ModuleData { union { struct { int8_t delay:6; - uint8_t pulsePol:1; // For PXX: false = internal antenna, true = external antenna + uint8_t pulsePol:1; uint8_t outputType:1; // false = open drain, true = push pull int8_t frameLength; } ppm; @@ -666,6 +666,12 @@ PACK(struct ModuleData { uint8_t lowPowerMode:1; int8_t optionValue; } multi); + NOBACKUP(struct { + uint8_t spare:6; + uint8_t external_antenna:1; // false = internal antenna, true = external antenna + uint8_t spare2:1; + uint8_t spare3; + } pxx); }; }); diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index 7ec878b8a..38a9366b0 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -227,7 +227,7 @@ bool menuModelSetup(event_t event) bool newAntennaSel; if (warningResult) { warningResult = 0; - g_model.moduleData[INTERNAL_MODULE].ppm.pulsePol = XJT_EXTERNAL_ANTENNA; + g_model.moduleData[INTERNAL_MODULE].pxx.external_antenna = XJT_EXTERNAL_ANTENNA; } MENU(STR_MENUSETUP, MODEL_ICONS, menuTabModel, MENU_MODEL_SETUP, ITEM_MODEL_SETUP_MAX, @@ -567,14 +567,14 @@ bool menuModelSetup(event_t event) case ITEM_MODEL_INTERNAL_MODULE_ANTENNA: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_ANTENNASELECTION); - newAntennaSel = editChoice(MODEL_SETUP_2ND_COLUMN, y, STR_VANTENNATYPES, g_model.moduleData[INTERNAL_MODULE].ppm.pulsePol, 0, 1, attr, event); - if (newAntennaSel != g_model.moduleData[INTERNAL_MODULE].ppm.pulsePol && newAntennaSel == XJT_EXTERNAL_ANTENNA) { + newAntennaSel = editChoice(MODEL_SETUP_2ND_COLUMN, y, STR_VANTENNATYPES, g_model.moduleData[INTERNAL_MODULE].pxx.external_antenna, 0, 1, attr, event); + if (newAntennaSel != g_model.moduleData[INTERNAL_MODULE].pxx.external_antenna && newAntennaSel == XJT_EXTERNAL_ANTENNA) { POPUP_CONFIRMATION(STR_ANTENNACONFIRM1); const char * w = STR_ANTENNACONFIRM2; SET_WARNING_INFO(w, strlen(w), 0); } else { - g_model.moduleData[INTERNAL_MODULE].ppm.pulsePol = newAntennaSel; + g_model.moduleData[INTERNAL_MODULE].pxx.external_antenna = newAntennaSel; } break; diff --git a/radio/src/pulses/pxx_arm.cpp b/radio/src/pulses/pxx_arm.cpp index b2578fa77..10ddcb755 100644 --- a/radio/src/pulses/pxx_arm.cpp +++ b/radio/src/pulses/pxx_arm.cpp @@ -377,7 +377,7 @@ void setupPulsesPXX(uint8_t port) #if defined(PCBHORUS) uint8_t antenna = XJT_INTERNAL_ANTENNA; if (port == INTERNAL_MODULE) { - antenna = g_model.moduleData[INTERNAL_MODULE].ppm.pulsePol; + antenna = g_model.moduleData[INTERNAL_MODULE].pxx.external_antenna; } putPcmByte(port, antenna); #else