[Horus] Internal module antenna selection support

This commit is contained in:
Andre Bernet
2016-03-18 21:12:18 +04:00
parent f90a69335b
commit 0661b8219c
16 changed files with 71 additions and 3 deletions
+1 -1
View File
@@ -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;
});
+7
View File
@@ -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);
+12 -1
View File
@@ -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);
+2
View File
@@ -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;
+4 -1
View File
@@ -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[];
+4
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"
+5
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"
+4
View File
@@ -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"