diff --git a/src/gui/menu_model.cpp b/src/gui/menu_model.cpp index 9b5554ba5..3717d4a9b 100644 --- a/src/gui/menu_model.cpp +++ b/src/gui/menu_model.cpp @@ -4052,12 +4052,13 @@ void menuModelCustomSwitches(uint8_t event) #endif #if defined(PCBTARANIS) - if (sub >= 0 && event == EVT_KEY_LONG(KEY_ENTER)) { + if (sub>=0 && horz<0 && event==EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); - MENU_ADD_ITEM(STR_COPY); + CustomSwData * cs = cswAddress(sub); + if (cs->func) MENU_ADD_ITEM(STR_COPY); if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH) MENU_ADD_ITEM(STR_PASTE); - MENU_ADD_ITEM(STR_DELETE); + if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) MENU_ADD_ITEM(STR_DELETE); menuHandler = onCustomSwitchesMenu; } #endif @@ -4274,12 +4275,13 @@ void menuModelCustomFunctions(uint8_t event) int8_t sub = m_posVert - 1; #if defined(PCBTARANIS) - if (sub >= 0 && event == EVT_KEY_LONG(KEY_ENTER)) { + if (sub>=0 && m_posHorz<0 && event==EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); - MENU_ADD_ITEM(STR_COPY); + CustomFnData *sd = &g_model.funcSw[sub]; + if (sd->swtch && sd->func) MENU_ADD_ITEM(STR_COPY); if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_FUNCTION) MENU_ADD_ITEM(STR_PASTE); - MENU_ADD_ITEM(STR_DELETE); + if (sd->swtch || sd->func) MENU_ADD_ITEM(STR_DELETE); menuHandler = onCustomFunctionsMenu; } #endif @@ -4571,7 +4573,7 @@ enum menuModelTelemetryItems { ITEM_TELEMETRY_USR_VOLTAGE_SOURCE, ITEM_TELEMETRY_USR_CURRENT_SOURCE, IF_VARIO(ITEM_TELEMETRY_VARIO_LABEL) -#if defined(VARIO) && !defined(FRSKY_SPORT) +#if defined(VARIO) ITEM_TELEMETRY_VARIO_SOURCE, #endif IF_VARIO(ITEM_TELEMETRY_VARIO_RANGE) @@ -4603,12 +4605,6 @@ enum menuModelTelemetryItems { #define USRDATA_LINES #endif -#if defined(VARIO) && !defined(FRSKY_SPORT) - #define VARIO_SOURCE_ROWS 0, -#else - #define VARIO_SOURCE_ROWS -#endif - #if defined(FRSKY) #if LCD_W >= 212 #define TELEM_COL1 (1*FW) @@ -4651,7 +4647,7 @@ enum menuModelTelemetryItems { void menuModelTelemetry(uint8_t event) { - MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, CHANNEL_ROWS CHANNEL_ROWS RSSI_ROWS USRDATA_LINES 0, 0, IF_VARIO((uint8_t)-1) VARIO_SOURCE_ROWS IF_VARIO(VARIO_RANGE_ROWS) SCREEN_TYPE_ROWS, 2, 2, 2, 2, SCREEN_TYPE_ROWS, 2, 2, 2, 2, IF_CPUARM(SCREEN_TYPE_ROWS) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) }); + MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, CHANNEL_ROWS CHANNEL_ROWS RSSI_ROWS USRDATA_LINES 0, 0, IF_VARIO((uint8_t)-1) IF_VARIO(0) IF_VARIO(VARIO_RANGE_ROWS) SCREEN_TYPE_ROWS, 2, 2, 2, 2, SCREEN_TYPE_ROWS, 2, 2, 2, 2, IF_CPUARM(SCREEN_TYPE_ROWS) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) IF_CPUARM(2) }); uint8_t sub = m_posVert - 1; @@ -4827,13 +4823,11 @@ void menuModelTelemetry(uint8_t event) lcd_putsLeft(y, STR_VARIO); break; -#if !defined(FRSKY_SPORT) case ITEM_TELEMETRY_VARIO_SOURCE: lcd_putsLeft(y, STR_SOURCE); lcd_putsiAtt(TELEM_COL2, y, STR_VARIOSRC, g_model.frsky.varioSource, attr); - if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioSource, VARIO_SOURCE_FIRST, VARIO_SOURCE_LAST); + if (attr) CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioSource, 0, VARIO_SOURCE_LAST); break; -#endif case ITEM_TELEMETRY_VARIO_RANGE: lcd_putsLeft(y, STR_LIMIT); diff --git a/src/myeeprom.h b/src/myeeprom.h index e91fccede..20aa7599e 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -816,9 +816,10 @@ enum TelemetrySource { }; enum VarioSource { - VARIO_SOURCE_FIRST = 0, - VARIO_SOURCE_ALTI = VARIO_SOURCE_FIRST, +#if !defined(FRSKY_SPORT) + VARIO_SOURCE_ALTI, VARIO_SOURCE_ALTI_PLUS, +#endif VARIO_SOURCE_VARIO, VARIO_SOURCE_A1, VARIO_SOURCE_A2, diff --git a/src/fuses_2561.txt b/src/targets/gruvin9x/fuses_2561.txt similarity index 100% rename from src/fuses_2561.txt rename to src/targets/gruvin9x/fuses_2561.txt diff --git a/src/telemetry/frsky_sport.cpp b/src/telemetry/frsky_sport.cpp index b6b4c956c..e52ff6d8d 100644 --- a/src/telemetry/frsky_sport.cpp +++ b/src/telemetry/frsky_sport.cpp @@ -307,6 +307,12 @@ void processSportPacket(uint8_t *packet) else if (appId == ADC1_ID || appId == ADC2_ID) { // A1/A2 of DxR receivers frskyData.analog[appId-ADC1_ID].set(SPORT_DATA_U8(packet)); +#if defined(VARIO) + uint8_t varioSource = g_model.frsky.varioSource - VARIO_SOURCE_A1; + if (varioSource == appId-ADC1_ID) { + frskyData.hub.varioSpeed = applyChannelRatio(varioSource, frskyData.analog[varioSource].value); + } +#endif } else if (appId == BATT_ID) { frskyData.analog[0].set(SPORT_DATA_U8(packet)); diff --git a/src/translations/de.h b/src/translations/de.h index b076c30aa..faf484c77 100644 --- a/src/translations/de.h +++ b/src/translations/de.h @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\006" #define TR_VSCREEN "Werte\0""Balken" //Telemetrie Werte oder Balken diff --git a/src/translations/de.h.txt b/src/translations/de.h.txt index 77835a36b..52ef91d96 100644 --- a/src/translations/de.h.txt +++ b/src/translations/de.h.txt @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\006" #define TR_VSCREEN "Werte\0""Balken" //Telemetrie Werte oder Balken diff --git a/src/translations/en.h b/src/translations/en.h index bd8bad174..108e8407f 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/es.h b/src/translations/es.h index 5c73f2fe6..2f7f12c97 100644 --- a/src/translations/es.h +++ b/src/translations/es.h @@ -1,4 +1,4 @@ -/* +/* * Authors (alphabetical order) * - Bertrand Songis * - Bernet Andre @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/es.h.txt b/src/translations/es.h.txt index d667a9962..42070a6d9 100644 --- a/src/translations/es.h.txt +++ b/src/translations/es.h.txt @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/fr.h b/src/translations/fr.h index bc7afbd4d..09314f426 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -270,7 +270,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN TR("\004","\007") #define TR_VSCREEN TR("Val.""Bars","Valeurs""Barres\0") diff --git a/src/translations/fr.h.txt b/src/translations/fr.h.txt index ee237bba7..cbf3c4c5b 100644 --- a/src/translations/fr.h.txt +++ b/src/translations/fr.h.txt @@ -270,7 +270,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN TR("\004","\007") #define TR_VSCREEN TR("Val.""Bars","Valeurs""Barres\0") diff --git a/src/translations/it.h b/src/translations/it.h index 7ab3e6184..307252f98 100644 --- a/src/translations/it.h +++ b/src/translations/it.h @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/it.h.txt b/src/translations/it.h.txt index baccbf2da..5aba21877 100644 --- a/src/translations/it.h.txt +++ b/src/translations/it.h.txt @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/pt.h b/src/translations/pt.h index 9ec498d21..f82ec61cf 100644 --- a/src/translations/pt.h +++ b/src/translations/pt.h @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/pt.h.txt b/src/translations/pt.h.txt index 9ec498d21..f82ec61cf 100644 --- a/src/translations/pt.h.txt +++ b/src/translations/pt.h.txt @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\004" #define TR_VSCREEN "Nums""Bars" diff --git a/src/translations/se.h b/src/translations/se.h index d72976d49..6d5411c1b 100644 --- a/src/translations/se.h +++ b/src/translations/se.h @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\007" #define TR_VSCREEN "Siffror""Staplar" diff --git a/src/translations/se.h.txt b/src/translations/se.h.txt index 82f427d0d..b333eaa64 100644 --- a/src/translations/se.h.txt +++ b/src/translations/se.h.txt @@ -269,7 +269,11 @@ #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" #define LEN_VARIOSRC "\005" -#define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif #define LEN_VSCREEN "\007" #define TR_VSCREEN "Siffror""Staplar"