mirror of
https://github.com/opentx/opentx.git
synced 2025-07-24 00:35:18 +03:00
Merge pull request #3368 from opentx/kilrah/antennaselection
[Horus] Internal module antenna selection support
This commit is contained in:
commit
1f303ec995
19 changed files with 4776 additions and 4662 deletions
|
@ -690,7 +690,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;
|
||||
});
|
||||
|
|
|
@ -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,
|
||||
|
@ -178,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,
|
||||
|
@ -187,6 +195,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 +536,19 @@ bool menuModelSetup(evt_t event)
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_ANTENNA:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_ANTENNASELECTION);
|
||||
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:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODE);
|
||||
|
|
|
@ -387,12 +387,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)
|
||||
|
||||
|
|
|
@ -506,6 +506,11 @@ enum ModuleTypes {
|
|||
MODULE_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum AntennaTypes {
|
||||
XJT_INTERNAL_ANTENNA,
|
||||
XJT_EXTERNAL_ANTENNA
|
||||
};
|
||||
|
||||
#define IS_EXTERNAL_MODULE_PRESENT() (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_NONE)
|
||||
|
||||
enum FailsafeModes {
|
||||
|
|
|
@ -300,8 +300,18 @@ void setupPulsesPXX(unsigned int port)
|
|||
}
|
||||
}
|
||||
|
||||
/* CRC16 */
|
||||
/* Ext. flag (holds antenna selection on Horus internal module, 0x00 otherwise) */
|
||||
#if defined(PCBHORUS)
|
||||
uint8_t antenna = XJT_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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
@ -543,6 +544,9 @@ 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_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;
|
||||
|
|
|
@ -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)
|
||||
|
@ -789,6 +791,9 @@ 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_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[];
|
||||
|
|
|
@ -548,6 +548,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"
|
||||
|
@ -945,6 +948,9 @@
|
|||
#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_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"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -560,6 +560,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 " "
|
||||
|
@ -960,6 +963,9 @@
|
|||
#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_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"
|
||||
|
|
|
@ -530,6 +530,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
|
||||
|
@ -906,6 +909,9 @@
|
|||
#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_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"
|
||||
|
|
|
@ -530,6 +530,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
|
||||
|
@ -906,6 +909,9 @@
|
|||
#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_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"
|
||||
|
|
|
@ -547,6 +547,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"
|
||||
|
@ -936,6 +939,9 @@
|
|||
#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_ANTENNACONFIRM1 "Vraiment 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"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -554,6 +554,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"
|
||||
|
@ -958,6 +961,9 @@
|
|||
#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_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"
|
||||
|
|
|
@ -549,6 +549,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"
|
||||
|
@ -946,6 +949,9 @@
|
|||
#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_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"
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue