From 0661b8219c39c185954d32ee71ddbf7719c3d03d Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Fri, 18 Mar 2016 21:12:18 +0400 Subject: [PATCH 1/4] [Horus] Internal module antenna selection support --- radio/src/datastructs.h | 2 +- radio/src/gui/horus/menu_model_setup.cpp | 7 +++++++ radio/src/pulses/pxx_arm.cpp | 13 ++++++++++++- radio/src/translations.cpp | 2 ++ radio/src/translations.h | 5 ++++- radio/src/translations/cz.h.txt | 4 ++++ radio/src/translations/de.h.txt | 4 ++++ radio/src/translations/en.h.txt | 4 ++++ radio/src/translations/es.h.txt | 5 +++++ radio/src/translations/fi.h.txt | 4 ++++ radio/src/translations/fr.h.txt | 4 ++++ radio/src/translations/it.h.txt | 4 ++++ radio/src/translations/nl.h.txt | 4 ++++ radio/src/translations/pl.h.txt | 4 ++++ radio/src/translations/pt.h.txt | 4 ++++ radio/src/translations/se.h.txt | 4 ++++ 16 files changed, 71 insertions(+), 3 deletions(-) diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 89930a61f..ad47d159b 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -692,7 +692,7 @@ PACK(struct ModuleData { uint8_t invertedSerial:1; // telemetry serial inverted from standard int16_t failsafeChannels[NUM_CHNOUT]; int8_t ppmDelay:6; - uint8_t ppmPulsePol:1; + uint8_t ppmPulsePol:1; // For PXX: false = internal antenna, true = exetrnal antenna uint8_t ppmOutputType:1; // false = open drain, true = push pull int8_t ppmFrameLength; }); diff --git a/radio/src/gui/horus/menu_model_setup.cpp b/radio/src/gui/horus/menu_model_setup.cpp index a79a0e1bb..69fc1de80 100644 --- a/radio/src/gui/horus/menu_model_setup.cpp +++ b/radio/src/gui/horus/menu_model_setup.cpp @@ -65,6 +65,7 @@ enum menuModelSetupItems { ITEM_MODEL_INTERNAL_MODULE_CHANNELS, ITEM_MODEL_INTERNAL_MODULE_BIND, ITEM_MODEL_INTERNAL_MODULE_FAILSAFE, + ITEM_MODEL_INTERNAL_MODULE_ANTENNA, ITEM_MODEL_EXTERNAL_MODULE_LABEL, ITEM_MODEL_EXTERNAL_MODULE_MODE, ITEM_MODEL_EXTERNAL_MODULE_CHANNELS, @@ -187,6 +188,7 @@ bool menuModelSetup(evt_t event) INTERNAL_MODULE_CHANNELS_ROWS, IF_INTERNAL_MODULE_ON(IS_MODULE_XJT(INTERNAL_MODULE) ? (HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[INTERNAL_MODULE].rfProtocol) ? (uint8_t)2 : (uint8_t)1) : (IS_MODULE_PPM(INTERNAL_MODULE) ? (uint8_t)1 : HIDDEN_ROW)), IF_INTERNAL_MODULE_ON((IS_MODULE_XJT(INTERNAL_MODULE)) ? FAILSAFE_ROWS(INTERNAL_MODULE) : HIDDEN_ROW), + IF_INTERNAL_MODULE_ON(0), LABEL(ExternalModule), (IS_MODULE_XJT(EXTERNAL_MODULE) || IS_MODULE_DSM2(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0, EXTERNAL_MODULE_CHANNELS_ROWS, @@ -527,6 +529,11 @@ bool menuModelSetup(evt_t event) } } break; + + case ITEM_MODEL_INTERNAL_MODULE_ANTENNA: + lcdDrawText(MENUS_MARGIN_LEFT, y, STR_ANTENNASELECTION); + g_model.moduleData[INTERNAL_MODULE].ppmPulsePol = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_VANTENNATYPES, g_model.moduleData[INTERNAL_MODULE].ppmPulsePol, 0, 1, attr, event); + break; case ITEM_MODEL_TRAINER_MODE: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODE); diff --git a/radio/src/pulses/pxx_arm.cpp b/radio/src/pulses/pxx_arm.cpp index f0e49f0f5..071121568 100644 --- a/radio/src/pulses/pxx_arm.cpp +++ b/radio/src/pulses/pxx_arm.cpp @@ -23,6 +23,7 @@ #define PXX_SEND_BIND 0x01 #define PXX_SEND_FAILSAFE (1 << 4) #define PXX_SEND_RANGECHECK (1 << 5) +#define PXX_INTERNAL_ANTENNA 0 const uint16_t CRCTable[]= { @@ -300,8 +301,18 @@ void setupPulsesPXX(unsigned int port) } } - /* CRC16 */ + /* Ext. flag (holds antenna selection on Horus internal module, 0x00 otherwise) */ +#if defined(PCBHORUS) + uint8_t antenna = PXX_INTERNAL_ANTENNA; + if (port == INTERNAL_MODULE) { + antenna = g_model.moduleData[INTERNAL_MODULE].ppmPulsePol; + } + putPcmByte (antenna, port); +#else putPcmByte(0, port); +#endif + + /* CRC16 */ pulseValue = modulePulsesData[port].pxx.pcmCrc; putPcmByte(pulseValue >> 8, port); putPcmByte(pulseValue, port); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 5a78c6151..cb3acac37 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -113,6 +113,7 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(VFORMULAS) ISTR(VPREC) ISTR(VCELLINDEX) + ISTR(VANTENNATYPES) #endif #if defined(MAVLINK) ISTR(MAVLINK_BAUDS) @@ -541,6 +542,7 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; const pm_char STR_TRAINER[] PROGMEM = TR_TRAINER; const pm_char STR_MODULE_BIND[] PROGMEM = TR_MODULE_BIND; const pm_char STR_CHANNELRANGE[] PROGMEM = TR_CHANNELRANGE; + const pm_char STR_ANTENNASELECTION[] PROGMEM = TR_ANTENNASELECTION; const pm_char STR_SET[] PROGMEM = TR_SET; const pm_char STR_PREFLIGHT[] PROGMEM = TR_PREFLIGHT; const pm_char STR_CHECKLIST[] PROGMEM = TR_CHECKLIST; diff --git a/radio/src/translations.h b/radio/src/translations.h index d679589c7..c100d9e9e 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -195,7 +195,8 @@ extern const pm_char STR_OPEN9X[]; #define OFS_VFORMULAS (OFS_VSENSORTYPES + sizeof(TR_VSENSORTYPES)) #define OFS_VPREC (OFS_VFORMULAS + sizeof(TR_VFORMULAS)) #define OFS_VCELLINDEX (OFS_VPREC + sizeof(TR_VPREC)) - #define OFS_MAVLINK_BAUDS (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX)) + #define OFS_VANTENNATYPES (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX)) + #define OFS_MAVLINK_BAUDS (OFS_VANTENNATYPES + sizeof(TR_VANTENNATYPES)) #else #define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES) #endif @@ -309,6 +310,7 @@ extern const pm_char STR_OPEN9X[]; #define STR_VFORMULAS (STR_OPEN9X + OFS_VFORMULAS) #define STR_VPREC (STR_OPEN9X + OFS_VPREC) #define STR_VCELLINDEX (STR_OPEN9X + OFS_VCELLINDEX) + #define STR_VANTENNATYPES (STR_OPEN9X + OFS_VANTENNATYPES) #endif #if defined(MAVLINK) @@ -786,6 +788,7 @@ extern const pm_char STR_BLCOLOR[]; extern const pm_char STR_TRAINER[]; extern const pm_char STR_MODULE_BIND[]; extern const pm_char STR_CHANNELRANGE[]; + extern const pm_char STR_ANTENNASELECTION[]; extern const pm_char STR_SET[]; extern const pm_char STR_PREFLIGHT[]; extern const pm_char STR_CHECKLIST[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index b1fe15e82..18b1cb4d3 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -549,6 +549,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Nízký\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Nejvíce""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -939,6 +942,7 @@ #define TR_UNIT "Jednotky" #define TR_TELEMETRY_NEWSENSOR INDENT "Přidat senzor ručně" #define TR_CHANNELRANGE INDENT "Rozsah kanálů" +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Nízký Alarm" #define TR_CRITICALALARM INDENT "Kritický Alarm" #define TR_ENABLE_POPUP "Povolit vyskakovací okno" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 321fc1b39..e2e27ad46 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -553,6 +553,9 @@ #define LEN_VCELLINDEX "\012" // "\007" ursprünglich #define TR_VCELLINDEX "Niedrigst\0""1. Zelle\0 ""2. Zelle\0 ""3. Zelle\0 ""4. Zelle\0 ""5. Zelle\0 ""6. Zelle\0 ""Höchster\0 ""Differenz\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -943,6 +946,7 @@ #define TR_UNIT "Einheit" #define TR_TELEMETRY_NEWSENSOR INDENT "Sensor hinzufügen ..." #define TR_CHANNELRANGE TR(INDENT "Kanäle", INDENT "Ausgangs Kanäle") //wg 9XR-Pro +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Vor-Alarm bei" #define TR_CRITICALALARM INDENT "Kritisch-Alarm" #define TR_ENABLE_POPUP "Freigabe Popup-Fenster" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index d8c4015fc..789cb236b 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -569,6 +569,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT " " @@ -965,6 +968,7 @@ #define TR_UNIT "Unit" #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE TR(INDENT "Ch. Range", INDENT "Channel Range") +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index c6deea85c..dc26ea8c3 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -483,6 +483,7 @@ #define TR_ON_ONE_SWITCHES "ON\0""One" + #if defined(PCBTARANIS) // only special switches here #define TR_VSWITCHES "---" TR_TRIMS_SWITCHES TR_ON_ONE_SWITCHES @@ -528,6 +529,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #define INDENT "\001" #define LEN_INDENT 1 @@ -895,6 +899,7 @@ #define TR_UNIT "Unit" #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE INDENT "Gama de canales" +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Alarma baja" #define TR_CRITICALALARM INDENT "Alarma Critica" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index fa54885ce..c92640c46 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -528,6 +528,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #define INDENT "\001" #define LEN_INDENT 1 @@ -895,6 +898,7 @@ #define TR_UNIT "Unit" #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE INDENT "Channel Range" +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 9512a5ae0..3d0b24adb 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -548,6 +548,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Mini.\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Maxi.\0 ""Diff.\0 " +#define LEN_VANTENNATYPES "\007" +#define TR_VANTENNATYPES "Interne""Externe" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -930,6 +933,7 @@ #define TR_UNIT "Unité" #define TR_TELEMETRY_NEWSENSOR TR(INDENT"Nouveau capteur...", INDENT "Ajout d'un nouveau capteur...") #define TR_CHANNELRANGE TR(INDENT "Canaux", INDENT "Plage de canaux") +#define TR_ANTENNASELECTION INDENT "Choix antenne" #define TR_LOWALARM INDENT "Alarme basse" #define TR_CRITICALALARM INDENT "Alarme critique" #define TR_ENABLE_POPUP "Activer Popup" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 5f1e170be..f2c4d649d 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -551,6 +551,9 @@ #define LEN_VCELLINDEX "\010" #define TR_VCELLINDEX "Minore\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Maggiore""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -941,6 +944,7 @@ #define TR_UNIT "Unita" #define TR_TELEMETRY_NEWSENSOR INDENT "Aggiungi nuovo sensore..." #define TR_CHANNELRANGE INDENT "Numero Canali" +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Allarme Basso" #define TR_CRITICALALARM INDENT "Allarme Critico" #define TR_ENABLE_POPUP "Abilita Popup" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index fa31e3cdc..67092873b 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -563,6 +563,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Laagste""1e Cel\0""2e Cel\0""3e Cel\0""4e Cel\0""5e Cel\0""6e Cel\0""Hoogste""Delta\0 " +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -960,6 +963,7 @@ #define TR_UNIT "Eenheid" #define TR_TELEMETRY_NEWSENSOR INDENT "Sensor toevoegen ..." #define TR_CHANNELRANGE TR(INDENT "Kanalen", INDENT "Uitgangs Kanalen") //wg 9XR-Pro +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Waarschuwing" #define TR_CRITICALALARM INDENT "Kritiek Alarm" #define TR_ENABLE_POPUP "Inschakelen Popups" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 1b4a86b7e..71c16ef44 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -552,6 +552,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Niskie\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Wysokie""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT "\007" @@ -942,6 +945,7 @@ #define TR_UNIT "Jedn" #define TR_TELEMETRY_NEWSENSOR INDENT "Dodaj nowy czujnik..." #define TR_CHANNELRANGE TR(INDENT "ZakrKn",INDENT "Zakres kanału") +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Alarm niski" #define TR_CRITICALALARM INDENT "Alarm krytyczny" #define TR_ENABLE_POPUP "Aktywuj Popup" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index be11c63a3..3735ea83b 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -522,6 +522,9 @@ #define LEN_VCELLINDEX "\007" #define TR_VCELLINDEX "Lowest\0""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Highest""Delta\0" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #define INDENT "\001" #define LEN_INDENT 1 @@ -889,6 +892,7 @@ #define TR_UNIT "Unit" #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE INDENT "Channel Range" +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 1cbbce4ae..8f673c6b6 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -567,6 +567,9 @@ #define LEN_VCELLINDEX "\010" #define TR_VCELLINDEX "Lägsta\0 ""1\0 ""2\0 ""3\0 ""4\0 ""5\0 ""6\0 ""Högsta\0 ""Skillnad" +#define LEN_VANTENNATYPES "\010" +#define TR_VANTENNATYPES "Internal""External" + // ZERO TERMINATED STRINGS #if defined(COLORLCD) #define INDENT " " @@ -962,6 +965,7 @@ #define TR_UNIT "Enhet" #define TR_TELEMETRY_NEWSENSOR INDENT "Lägg till sensor..." #define TR_CHANNELRANGE INDENT "Kanalområde" +#define TR_ANTENNASELECTION INDENT "Antenna selection" #define TR_LOWALARM INDENT "Låg-alarm" #define TR_CRITICALALARM INDENT "Kritiskt alarm" #define TR_ENABLE_POPUP "Slå på Dialog" From 909b3bb595f4f7c3a687e3be934e5d26cad9615a Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Tue, 22 Mar 2016 15:28:20 +0400 Subject: [PATCH 2/4] Antenna change warning added --- radio/src/gui/horus/menu_model_setup.cpp | 17 ++++++++++++++++- radio/src/gui/horus/menus.h | 4 ++-- radio/src/myeeprom.h | 5 +++++ radio/src/pulses/pxx_arm.cpp | 3 +-- radio/src/translations.cpp | 2 ++ radio/src/translations.h | 2 ++ radio/src/translations/cz.h.txt | 2 ++ radio/src/translations/de.h.txt | 2 ++ radio/src/translations/en.h.txt | 2 ++ radio/src/translations/es.h.txt | 2 ++ radio/src/translations/fi.h.txt | 2 ++ radio/src/translations/fr.h.txt | 2 ++ radio/src/translations/it.h.txt | 2 ++ radio/src/translations/nl.h.txt | 2 ++ radio/src/translations/pl.h.txt | 2 ++ radio/src/translations/pt.h.txt | 2 ++ radio/src/translations/se.h.txt | 2 ++ 17 files changed, 50 insertions(+), 5 deletions(-) diff --git a/radio/src/gui/horus/menu_model_setup.cpp b/radio/src/gui/horus/menu_model_setup.cpp index 69fc1de80..46f89a3ef 100644 --- a/radio/src/gui/horus/menu_model_setup.cpp +++ b/radio/src/gui/horus/menu_model_setup.cpp @@ -179,6 +179,13 @@ bool menuModelSetup(evt_t event) int l_posHorz = menuHorizontalPosition; bool CURSOR_ON_CELL = (menuHorizontalPosition >= 0); + // Switch to external antenna confirmation + bool newAntennaSel; + if (warningResult) { + warningResult = 0; + g_model.moduleData[INTERNAL_MODULE].ppmPulsePol = XJT_EXTERNAL_ANTENNA; + } + MENU(STR_MENUSETUP, LBM_MODEL_ICONS, menuTabModel, e_ModelSetup, ITEM_MODEL_SETUP_MAX, { 0, 0, TIMERS_ROWS, 0, 1, 0, 0, LABEL(Throttle), 0, 0, 0, @@ -532,7 +539,15 @@ bool menuModelSetup(evt_t event) case ITEM_MODEL_INTERNAL_MODULE_ANTENNA: lcdDrawText(MENUS_MARGIN_LEFT, y, STR_ANTENNASELECTION); - g_model.moduleData[INTERNAL_MODULE].ppmPulsePol = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_VANTENNATYPES, g_model.moduleData[INTERNAL_MODULE].ppmPulsePol, 0, 1, attr, event); + newAntennaSel = selectMenuItem(MODEL_SETUP_2ND_COLUMN, y, STR_VANTENNATYPES, g_model.moduleData[INTERNAL_MODULE].ppmPulsePol, 0, 1, attr, event); + if (newAntennaSel != g_model.moduleData[INTERNAL_MODULE].ppmPulsePol && 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].ppmPulsePol = newAntennaSel; + } break; case ITEM_MODEL_TRAINER_MODE: diff --git a/radio/src/gui/horus/menus.h b/radio/src/gui/horus/menus.h index aaec3d830..c4914b120 100644 --- a/radio/src/gui/horus/menus.h +++ b/radio/src/gui/horus/menus.h @@ -383,12 +383,12 @@ void insertMix(uint8_t idx); #define MENU_X 80 #define MENU_W LCD_W-(2*MENU_X) -#define POPUP_X 130 +#define POPUP_X 120 #define POPUP_Y 70 #define POPUP_W 300 #define POPUP_H 130 #define WARNING_LINE_LEN 32 -#define WARNING_LINE_X (POPUP_X+76) +#define WARNING_LINE_X (POPUP_X+66) #define WARNING_LINE_Y (POPUP_Y+9) #define WARNING_INFOLINE_Y (WARNING_LINE_Y+68) diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 64c150879..65becded8 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -534,6 +534,11 @@ enum ModuleTypes { MODULE_TYPE_COUNT }; +enum AntennaTypes { + XJT_INTERNAL_ANTENNA, + XJT_EXTERNAL_ANTENNA +}; + #define IS_PULSES_EXTERNAL_MODULE() (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_NONE) enum FailsafeModes { diff --git a/radio/src/pulses/pxx_arm.cpp b/radio/src/pulses/pxx_arm.cpp index 071121568..94e2b2ab4 100644 --- a/radio/src/pulses/pxx_arm.cpp +++ b/radio/src/pulses/pxx_arm.cpp @@ -23,7 +23,6 @@ #define PXX_SEND_BIND 0x01 #define PXX_SEND_FAILSAFE (1 << 4) #define PXX_SEND_RANGECHECK (1 << 5) -#define PXX_INTERNAL_ANTENNA 0 const uint16_t CRCTable[]= { @@ -303,7 +302,7 @@ void setupPulsesPXX(unsigned int port) /* Ext. flag (holds antenna selection on Horus internal module, 0x00 otherwise) */ #if defined(PCBHORUS) - uint8_t antenna = PXX_INTERNAL_ANTENNA; + uint8_t antenna = XJT_INTERNAL_ANTENNA; if (port == INTERNAL_MODULE) { antenna = g_model.moduleData[INTERNAL_MODULE].ppmPulsePol; } diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index cb3acac37..25c2846f2 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -543,6 +543,8 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; const pm_char STR_MODULE_BIND[] PROGMEM = TR_MODULE_BIND; const pm_char STR_CHANNELRANGE[] PROGMEM = TR_CHANNELRANGE; const pm_char STR_ANTENNASELECTION[] PROGMEM = TR_ANTENNASELECTION; + const pm_char STR_ANTENNACONFIRM1[] PROGMEM = TR_ANTENNACONFIRM1; + const pm_char STR_ANTENNACONFIRM2[] PROGMEM = TR_ANTENNACONFIRM2; const pm_char STR_SET[] PROGMEM = TR_SET; const pm_char STR_PREFLIGHT[] PROGMEM = TR_PREFLIGHT; const pm_char STR_CHECKLIST[] PROGMEM = TR_CHECKLIST; diff --git a/radio/src/translations.h b/radio/src/translations.h index c100d9e9e..f82a648af 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -789,6 +789,8 @@ extern const pm_char STR_BLCOLOR[]; extern const pm_char STR_MODULE_BIND[]; extern const pm_char STR_CHANNELRANGE[]; extern const pm_char STR_ANTENNASELECTION[]; + extern const pm_char STR_ANTENNACONFIRM1[]; + extern const pm_char STR_ANTENNACONFIRM2[]; extern const pm_char STR_SET[]; extern const pm_char STR_PREFLIGHT[]; extern const pm_char STR_CHECKLIST[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 18b1cb4d3..cbf5a2916 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -943,6 +943,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Přidat senzor ručně" #define TR_CHANNELRANGE INDENT "Rozsah kanálů" #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Nízký Alarm" #define TR_CRITICALALARM INDENT "Kritický Alarm" #define TR_ENABLE_POPUP "Povolit vyskakovací okno" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index e2e27ad46..15e4032e8 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -947,6 +947,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Sensor hinzufügen ..." #define TR_CHANNELRANGE TR(INDENT "Kanäle", INDENT "Ausgangs Kanäle") //wg 9XR-Pro #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Vor-Alarm bei" #define TR_CRITICALALARM INDENT "Kritisch-Alarm" #define TR_ENABLE_POPUP "Freigabe Popup-Fenster" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 789cb236b..54555fca0 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -969,6 +969,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE TR(INDENT "Ch. Range", INDENT "Channel Range") #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index dc26ea8c3..02d5e40e2 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -900,6 +900,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE INDENT "Gama de canales" #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Alarma baja" #define TR_CRITICALALARM INDENT "Alarma Critica" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index c92640c46..c84291d8a 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -899,6 +899,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE INDENT "Channel Range" #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 3d0b24adb..661276846 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -934,6 +934,8 @@ #define TR_TELEMETRY_NEWSENSOR TR(INDENT"Nouveau capteur...", INDENT "Ajout d'un nouveau capteur...") #define TR_CHANNELRANGE TR(INDENT "Canaux", INDENT "Plage de canaux") #define TR_ANTENNASELECTION INDENT "Choix antenne" +#define TR_ANTENNACONFIRM1 "Vaiment changer?" +#define TR_ANTENNACONFIRM2 "Installer l'antenne d'abord!" #define TR_LOWALARM INDENT "Alarme basse" #define TR_CRITICALALARM INDENT "Alarme critique" #define TR_ENABLE_POPUP "Activer Popup" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index f2c4d649d..5f159fae2 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -945,6 +945,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Aggiungi nuovo sensore..." #define TR_CHANNELRANGE INDENT "Numero Canali" #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Allarme Basso" #define TR_CRITICALALARM INDENT "Allarme Critico" #define TR_ENABLE_POPUP "Abilita Popup" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 67092873b..fdd681e69 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -964,6 +964,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Sensor toevoegen ..." #define TR_CHANNELRANGE TR(INDENT "Kanalen", INDENT "Uitgangs Kanalen") //wg 9XR-Pro #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Waarschuwing" #define TR_CRITICALALARM INDENT "Kritiek Alarm" #define TR_ENABLE_POPUP "Inschakelen Popups" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 71c16ef44..e007cf341 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -946,6 +946,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Dodaj nowy czujnik..." #define TR_CHANNELRANGE TR(INDENT "ZakrKn",INDENT "Zakres kanału") #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Alarm niski" #define TR_CRITICALALARM INDENT "Alarm krytyczny" #define TR_ENABLE_POPUP "Aktywuj Popup" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 3735ea83b..ce29cd237 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -893,6 +893,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Add a new sensor..." #define TR_CHANNELRANGE INDENT "Channel Range" #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" #define TR_ENABLE_POPUP "Enable Popup" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 8f673c6b6..b800dd2e1 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -966,6 +966,8 @@ #define TR_TELEMETRY_NEWSENSOR INDENT "Lägg till sensor..." #define TR_CHANNELRANGE INDENT "Kanalområde" #define TR_ANTENNASELECTION INDENT "Antenna selection" +#define TR_ANTENNACONFIRM1 "Really switch?" +#define TR_ANTENNACONFIRM2 "Make sure antenna is installed!" #define TR_LOWALARM INDENT "Låg-alarm" #define TR_CRITICALALARM INDENT "Kritiskt alarm" #define TR_ENABLE_POPUP "Slå på Dialog" From 3480107a9b64858425fe2fd4e32dd62d7034dea8 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Mar 2016 22:42:15 +0400 Subject: [PATCH 3/4] Typo --- radio/src/translations/fr.h.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 661276846..cb61eb8ca 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -934,7 +934,7 @@ #define TR_TELEMETRY_NEWSENSOR TR(INDENT"Nouveau capteur...", INDENT "Ajout d'un nouveau capteur...") #define TR_CHANNELRANGE TR(INDENT "Canaux", INDENT "Plage de canaux") #define TR_ANTENNASELECTION INDENT "Choix antenne" -#define TR_ANTENNACONFIRM1 "Vaiment changer?" +#define TR_ANTENNACONFIRM1 "Vraiment changer?" #define TR_ANTENNACONFIRM2 "Installer l'antenne d'abord!" #define TR_LOWALARM INDENT "Alarme basse" #define TR_CRITICALALARM INDENT "Alarme critique" From 75977b6b6dd021736da146a601107c5687ead026 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Fri, 1 Apr 2016 11:25:22 +0400 Subject: [PATCH 4/4] [Horus] Enable SWR warning --- radio/src/telemetry/telemetry.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index da756c6ef..ec3ee5fcf 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -181,10 +181,12 @@ void telemetryWakeup() audioEvent(AU_SENSOR_LOST); } -#if defined(PCBTARANIS) +#if defined(PCBTARANIS) || defined(PCBHORUS) if ((g_model.moduleData[INTERNAL_MODULE].rfProtocol != RF_PROTO_OFF || g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_XJT) && FRSKY_BAD_ANTENNA()) { AUDIO_SWR_RED(); - POPUP_WARNING(STR_ANTENNAPROBLEM); + POPUP_WARNING(STR_WARNING); + const char * w = STR_ANTENNAPROBLEM; + SET_WARNING_INFO(w, strlen(w), 0); SCHEDULE_NEXT_ALARMS_CHECK(10/*seconds*/); } #endif