From 340dfbc53891c1ffd01db80e03f39e1859a97b0c Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 29 Aug 2019 16:03:14 +0200 Subject: [PATCH] internal module continued --- radio/src/datastructs.h | 4 ++++ radio/src/gui/colorlcd/model_setup.cpp | 21 +++++++++++++++++++-- radio/src/gui/gui_common.cpp | 5 +++++ radio/src/translations.cpp | 2 ++ radio/src/translations.h | 2 ++ radio/src/translations/cz.h.txt | 1 + radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 1 + radio/src/translations/nl.h.txt | 1 + radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 1 + radio/src/translations/se.h.txt | 1 + radio/src/translations/untranslated.h | 5 ++++- 17 files changed, 47 insertions(+), 3 deletions(-) diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 918ba87d7..035e3fbba 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -269,7 +269,11 @@ PACK(struct ScriptData { */ PACK(struct RssiAlarmData { int8_t disabled:1; +#if defined (PCBNV14) + uint8_t flysky_telemetry:1; // if set for FlySky receivers use native RSSI values instead of rescaled ones +#else int8_t spare:1; +#endif int8_t warning:6; int8_t spare2:2; int8_t critical:6; diff --git a/radio/src/gui/colorlcd/model_setup.cpp b/radio/src/gui/colorlcd/model_setup.cpp index 740905832..82ace3a8d 100644 --- a/radio/src/gui/colorlcd/model_setup.cpp +++ b/radio/src/gui/colorlcd/model_setup.cpp @@ -497,7 +497,7 @@ class ModuleWindow : public Window { // Module Type new StaticText(this, grid.getLabelSlot(true), STR_MODE); - moduleChoice = new Choice(this, grid.getFieldSlot(2, 0), STR_INTERNAL_MODULE_PROTOCOLS, + moduleChoice = new Choice(this, grid.getFieldSlot(), STR_INTERNAL_MODULE_PROTOCOLS, MODULE_TYPE_NONE, MODULE_TYPE_COUNT - 1, GET_DEFAULT(g_model.moduleData[moduleIdx].type), [=](int32_t newValue) { @@ -513,7 +513,24 @@ class ModuleWindow : public Window { FormField::link(previousField, moduleChoice); // Module parameters - if (isModuleXJT(moduleIdx)) { + if (isModuleFlysky(moduleIdx)) { + grid.nextLine(); + rfChoice = new Choice(this, grid.getFieldSlot(), STR_FLYSKY_PROTOCOLS, 0, 3, + GET_DEFAULT(g_model.moduleData[moduleIdx].flysky.mode), + [=](int32_t newValue) -> void { + g_model.moduleData[moduleIdx].flysky.mode = newValue; + SET_DIRTY(); + //TODO moduleFlagBackNormal(moduleIdx); + //TODO onFlySkyReceiverSetPulse(INTERNAL_MODULE, newValue); + }); + +#if defined (PCBNV14) + grid.nextLine(); + new StaticText(this, grid.getLabelSlot(true), STR_FLYSKY_TELEMETRY); + new CheckBox(this, grid.getFieldSlot(), GET_SET_DEFAULT(g_model.rssiAlarms.flysky_telemetry)); +#endif + } + else if (isModuleXJT(moduleIdx)) { auto xjtChoice = new Choice(this, grid.getFieldSlot(2, 1), STR_XJT_ACCST_RF_PROTOCOLS, MODULE_SUBTYPE_PXX1_OFF, MODULE_SUBTYPE_PXX1_ACCST_LR12, GET_SET_DEFAULT(g_model.moduleData[moduleIdx].rfProtocol)); xjtChoice->setAvailableHandler([](int index) { diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 4628cfc76..317ac6f99 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -568,6 +568,11 @@ bool isInternalModuleAvailable(int moduleType) if (moduleType == MODULE_TYPE_NONE) return true; +#if defined(PCBNV14) + if (moduleType == MODULE_TYPE_FLYSKY) + return true; +#endif + if (moduleType == MODULE_TYPE_XJT_PXX1) { #if defined(PXX1) && defined(INTERNAL_MODULE_PXX1) return !isModuleUsingSport(EXTERNAL_MODULE, g_model.moduleData[EXTERNAL_MODULE].type); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 776a34c86..0f1358597 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -58,6 +58,7 @@ ISTR(USBMODES); ISTR(JACKMODES); ISTR(VFAILSAFE); ISTR(VTRAINERMODES); +ISTR(FLYSKY_PROTOCOLS); ISTR(EXTERNAL_MODULE_PROTOCOLS); ISTR(INTERNAL_MODULE_PROTOCOLS); ISTR(R9M_REGION); @@ -628,6 +629,7 @@ const char STR_ADJUST_RTC[] = TR_ADJUST_RTC; const char STR_GPS[] = TR_GPS; const char STR_GPSCOORD[] = TR_GPSCOORD; const char STR_VARIO[] = TR_VARIO; +const char STR_FLYSKY_TELEMETRY[] = TR_FLYSKY_TELEMETRY; const char STR_PITCH_AT_ZERO[] = TR_PITCH_AT_ZERO; const char STR_PITCH_AT_MAX[] = TR_PITCH_AT_MAX; const char STR_REPEAT_AT_ZERO[] = TR_REPEAT_AT_ZERO; diff --git a/radio/src/translations.h b/radio/src/translations.h index e301de4b4..f7f02b285 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -164,6 +164,7 @@ extern const char STR_XJT_ACCST_RF_PROTOCOLS[]; extern const char STR_ISRM_RF_PROTOCOLS[]; extern const char STR_R9M_PXX2_RF_PROTOCOLS[]; extern const char STR_DSM_PROTOCOLS[]; +extern const char STR_FLYSKY_PROTOCOLS[]; #if defined(MULTIMODULE) extern const char STR_MULTI_PROTOCOLS[]; @@ -315,6 +316,7 @@ extern const char STR_ADJUST_RTC[]; extern const char STR_GPS[]; extern const char STR_GPSCOORD[]; extern const char STR_VARIO[]; +extern const char STR_FLYSKY_TELEMETRY[]; extern const char STR_PITCH_AT_ZERO[]; extern const char STR_PITCH_AT_MAX[]; extern const char STR_REPEAT_AT_ZERO[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 8f3c968b5..0c82dbf8f 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -685,6 +685,7 @@ #define TR_SYNCMENU "[Sync]" #define TR_LIMIT INDENT"Limit" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Zem. šířka" #define TR_LONGITUDE "Zem. délka" #define TR_GPSCOORD "GPS souřadnice" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 7ce7ea674..28e8c5072 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -549,6 +549,7 @@ #define TR_MEMORYWARNING INDENT "Speicher voll" #define TR_ALARMWARNING TR(INDENT "Alle Töne aus?", INDENT "Alle Töne ganz aus?") #define TR_RSSISHUTDOWNALARM TR(INDENT "Rssi-Chk bei aus", INDENT "Prüfe RSSI bei Ausschalten") +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_MODEL_STILL_POWERED "Model still powered" #define TR_MODEL_SHUTDOWN "Shutdown ?" #define TR_PRESS_ENTER_TO_CONFIRM "Press enter to confirm" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 72397659a..a824f620e 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -692,6 +692,7 @@ #define TR_SYNCMENU "[Sync]" #define TR_LIMIT INDENT "Limit" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitude" #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD TR("GPS Coords", INDENT "Coordinate format") diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index b3ac8b379..f79fd22e7 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -717,6 +717,7 @@ #define TR_SYNCMENU "Sync " TR_ENTER #define TR_LIMIT INDENT"Limite" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitud" #define TR_LONGITUDE "Longitud" #define TR_GPSCOORD TR("GPS Coords", "GPS formato coordenadas") diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 71b4ba391..bff8f2dc1 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -710,6 +710,7 @@ #define TR_SYNCMENU "[Sync]" #define TR_LIMIT INDENT"Limit" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitude" #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format") diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 1b0705a43..27c9f3a7f 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -558,6 +558,7 @@ #define TR_MEMORYWARNING INDENT "Mémoire pleine" #define TR_ALARMWARNING TR(INDENT "Silence", INDENT "Sons désactivés") #define TR_RSSISHUTDOWNALARM TR(INDENT "RSSI extinct.", INDENT "Vérif RSSI à l'extinction") +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_MODEL_STILL_POWERED TR("Modèle allumé", "Modèle encore allumé") #define TR_MODEL_SHUTDOWN "Eteindre ?" #define TR_PRESS_ENTER_TO_CONFIRM "Presser [Enter] pour confirmer" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 758b5e974..633a4964d 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -714,6 +714,7 @@ #define TR_SYNCMENU "[Sync]" #define TR_LIMIT INDENT "Limiti" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitud." #define TR_LONGITUDE "Longitud." #define TR_GPSCOORD TR("GPS Coords", INDENT "Formato Coordinate") diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 27894ade4..474ef93f6 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -699,6 +699,7 @@ TR_GYR_VSRCRAW #define TR_SYNCMENU "Sync [MENU]" #define TR_LIMIT INDENT "Grenzen" #define TR_MINRSSI "Min. RSSI" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitude" #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD TR("GPS-coord.", "GPS-coordinaten format") diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 5763fef1b..3e977571d 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -711,6 +711,7 @@ #define TR_SYNCMENU "[Synch]" #define TR_LIMIT INDENT "Limit" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Szer. geo." #define TR_LONGITUDE "Dł. geo." #define TR_GPSCOORD TR("Koord.GPS","Typ koordynat GPS") diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 42a9d9507..669e3dc17 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -701,6 +701,7 @@ #define TR_MULTI_SERVOFREQ TR("Servo rate", "Servo update rate") #define TR_LIMIT INDENT"Limite" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Latitude" #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD "Gps Coords" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index d24a883ff..80a7a430f 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -710,6 +710,7 @@ #define TR_MULTI_SERVOFREQ TR("Servo rate", "Servo update rate") #define TR_LIMIT INDENT "Nivå" #define TR_MINRSSI "Min Rssi" +#define TR_FLYSKY_TELEMETRY TR("FlySky RSSI #", "Use FlySky RSSI value without rescalling") #define TR_LATITUDE "Breddgrad" #define TR_LONGITUDE "Längdgrad" #define TR_GPSCOORD TR("GPS-Koordinater", "GPS-koordinatsystem") diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index 13626d1b9..ebbfcabd8 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -95,7 +95,10 @@ #endif #define LEN_EXTERNAL_MODULE_PROTOCOLS "\014" -#define TR_EXTERNAL_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M ACCESS\0 " TR_MODULE_R9M_LITE "R9ML ACCESS\0""R9MLP\0 ""R9MLP ACCESS""SBUS\0 ""XJT Lite" +#define TR_EXTERNAL_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M ACCESS\0 " TR_MODULE_R9M_LITE "R9ML ACCESS\0""R9MLP\0 ""R9MLP ACCESS""SBUS\0 ""XJT Lite\0 ""FLYSKY " + +#define LEN_FLYSKY_PROTOCOLS "\006" +#define TR_FLYSKY_PROTOCOLS " PWM+i"" PWM+s"" PPM+i"" PPM+s" #define LEN_INTERNAL_MODULE_PROTOCOLS LEN_EXTERNAL_MODULE_PROTOCOLS #define TR_INTERNAL_MODULE_PROTOCOLS TR_EXTERNAL_MODULE_PROTOCOLS