From b54123f8a3c3e6a0888c6fe3dd038e1be873ee4c Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 5 Sep 2015 11:44:26 +0200 Subject: [PATCH 1/5] Fixes #2810 - Reject new sensor option --- companion/src/eeprominterface.h | 1 + .../src/firmwares/opentx/opentxeeprom.cpp | 8 +- companion/src/modeledit/telemetry.cpp | 2 + companion/src/modeledit/telemetry.ui | 86 +++++++++++++++++-- radio/src/gui/9X/menu_model_telemetry.cpp | 67 ++++++++------- .../src/gui/Taranis/menu_model_telemetry.cpp | 55 ++++++------ radio/src/myeeprom.h | 5 +- radio/src/telemetry/telemetry.cpp | 4 +- radio/src/translations.cpp | 3 +- radio/src/translations.h | 3 +- radio/src/translations/cz.h.txt | 3 +- radio/src/translations/de.h.txt | 3 +- radio/src/translations/en.h.txt | 3 +- radio/src/translations/es.h.txt | 3 +- radio/src/translations/fi.h.txt | 3 +- radio/src/translations/fr.h.txt | 3 +- radio/src/translations/it.h.txt | 3 +- radio/src/translations/nl.h.txt | 3 +- radio/src/translations/pl.h.txt | 3 +- radio/src/translations/pt.h.txt | 3 +- radio/src/translations/se.h.txt | 3 +- 21 files changed, 186 insertions(+), 81 deletions(-) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 2e9f65305..fb23a8b53 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -781,6 +781,7 @@ class FrSkyData { bool mAhPersistent; unsigned int storedMah; int fasOffset; + bool rejectNewSensors; bool ignoreSensorIds; void clear(); diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index c1351fb27..d807005e3 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -3025,7 +3025,13 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne internalField.Append(new SignedField<8>(modelData.moduleData[0].ppmFrameLength)); } - internalField.Append(new ConversionField< UnsignedField<8> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); + if (!IS_ARM(board) || version < 217) { + internalField.Append(new ConversionField< UnsignedField<8> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); + } + else { + internalField.Append(new ConversionField< UnsignedField<7> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); + internalField.Append(new BoolField<1>(modelData.frsky.rejectNewSensors)); + } if (!afterrelease21March2013) { internalField.Append(new UnsignedField<8>(modelData.moduleData[0].modelId)); diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp index 5ab8c1210..2861634af 100644 --- a/companion/src/modeledit/telemetry.cpp +++ b/companion/src/modeledit/telemetry.cpp @@ -787,11 +787,13 @@ void TelemetryPanel::setup() ui->telemetryProtocol->addItem(tr("FrSky D (cable)"), 2); } ui->telemetryProtocol->setCurrentIndex(model->telemetryProtocol); + ui->rejectNewSensors->setField(model->frsky.rejectNewSensors); ui->ignoreSensorIds->setField(model->frsky.ignoreSensorIds); } else { ui->telemetryProtocolLabel->hide(); ui->telemetryProtocol->hide(); + ui->rejectNewSensors->hide(); ui->ignoreSensorIds->hide(); } diff --git a/companion/src/modeledit/telemetry.ui b/companion/src/modeledit/telemetry.ui index 0709dc70d..0f6914410 100644 --- a/companion/src/modeledit/telemetry.ui +++ b/companion/src/modeledit/telemetry.ui @@ -62,7 +62,16 @@ false - + + 4 + + + 4 + + + 4 + + 4 @@ -269,7 +278,16 @@ false - + + 4 + + + 4 + + + 4 + + 4 @@ -294,7 +312,16 @@ false - + + 4 + + + 4 + + + 4 + + 4 @@ -322,7 +349,16 @@ - + + 4 + + + 4 + + + 4 + + 4 @@ -571,7 +607,16 @@ - + + 4 + + + 4 + + + 4 + + 4 @@ -642,7 +687,16 @@ - + + 4 + + + 4 + + + 4 + + 4 @@ -893,7 +947,16 @@ false - + + 4 + + + 4 + + + 4 + + 4 @@ -909,13 +972,20 @@ - + Disable multi sensor handling + + + + Reject new sensors + + + diff --git a/radio/src/gui/9X/menu_model_telemetry.cpp b/radio/src/gui/9X/menu_model_telemetry.cpp index 80f87b938..77ba0cafd 100644 --- a/radio/src/gui/9X/menu_model_telemetry.cpp +++ b/radio/src/gui/9X/menu_model_telemetry.cpp @@ -87,7 +87,8 @@ enum menuModelTelemetryItems { ITEM_TELEMETRY_SENSOR31, ITEM_TELEMETRY_SENSOR32, ITEM_TELEMETRY_NEWSENSOR, - ITEM_TELEMETRY_IGNORE_SENSORID, + ITEM_TELEMETRY_REJECT_NEWSENSORS, + ITEM_TELEMETRY_IGNORE_SENSOR_INSTANCE, #endif #if !defined(CPUARM) #if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) @@ -132,30 +133,30 @@ enum menuModelTelemetryItems { }; #if defined(FRSKY) - #define TELEM_COL1 INDENT_WIDTH + #define TELEM_COL1 INDENT_WIDTH #if defined(TRANSLATIONS_FR) || defined(TRANSLATIONS_CZ) - #define TELEM_COL2 (9*FW) + #define TELEM_COL2 (9*FW) #else - #define TELEM_COL2 (8*FW) + #define TELEM_COL2 (8*FW) #endif - #define TELEM_BARS_COLMIN (56-3*FW) - #define TELEM_BARS_COLMAX (14*FW-3) - #define TELEM_SCRTYPE_COL TELEM_COL2 + #define TELEM_BARS_COLMIN (56-3*FW) + #define TELEM_BARS_COLMAX (14*FW-3) + #define TELEM_SCRTYPE_COL TELEM_COL2 -#define IS_RANGE_DEFINED(k) (g_model.frsky.channels[k].ratio > 0) +#define IS_RANGE_DEFINED(k) (g_model.frsky.channels[k].ratio > 0) #if defined(CPUARM) #define CHANNELS_ROWS - #define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) - #define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, + #define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) + #define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), (g_model.rejectNewSensors ? HIDDEN_ROW : (uint8_t)0), 0, 0, #else - #define CHANNEL_ROWS(x) LABEL(CHANNEL), 1, 0, 2, 2 - #define CHANNELS_ROWS CHANNEL_ROWS(0), CHANNEL_ROWS(1), + #define CHANNEL_ROWS(x) LABEL(CHANNEL), 1, 0, 2, 2 + #define CHANNELS_ROWS CHANNEL_ROWS(0), CHANNEL_ROWS(1), #define SENSORS_ROWS #endif #if defined(FAS_OFFSET) || !defined(CPUM64) - #define IF_FAS_OFFSET(x) x, + #define IF_FAS_OFFSET(x) x, #else #define IF_FAS_OFFSET(x) #endif @@ -163,38 +164,38 @@ enum menuModelTelemetryItems { #if defined(CPUARM) #define USRDATA_ROWS #elif defined(FRSKY_HUB) || defined(WS_HOW_HIGH) - #define USRDATA_ROWS LABEL(UsrData), 0, 0, 0, 0, IF_FAS_OFFSET(0) + #define USRDATA_ROWS LABEL(UsrData), 0, 0, 0, 0, IF_FAS_OFFSET(0) #else - #define USRDATA_ROWS 0, 0, IF_FAS_OFFSET(0) + #define USRDATA_ROWS 0, 0, IF_FAS_OFFSET(0) #endif -#define RSSI_ROWS LABEL(RSSI), 1, 1, +#define RSSI_ROWS LABEL(RSSI), 1, 1, #if defined(CPUARM) || defined(GAUGES) - #define SCREEN_TYPE_ROWS 0 + #define SCREEN_TYPE_ROWS 0 #else - #define SCREEN_TYPE_ROWS LABEL(SCREEN) + #define SCREEN_TYPE_ROWS LABEL(SCREEN) #endif #if defined(PCBSTD) - #define VARIO_RANGE_ROWS 1 + #define VARIO_RANGE_ROWS 1 #else - #define VARIO_RANGE_ROWS 3 + #define VARIO_RANGE_ROWS 3 #endif #if defined(CPUARM) - #define TELEMETRY_TYPE_ROWS 0, + #define TELEMETRY_TYPE_ROWS 0, #else #define TELEMETRY_TYPE_ROWS #endif #if defined(CPUARM) - #define TELEMETRY_SCREEN_LINE(x) (TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_NONE ? HIDDEN_ROW : (uint8_t)2) - #define TELEMETRY_SCREEN_ROWS(x) SCREEN_TYPE_ROWS, TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x) - #define TELEMETRY_CURRENT_EDIT_SCREEN(k) (k < ITEM_TELEMETRY_SCREEN_LABEL2 ? 0 : (k < ITEM_TELEMETRY_SCREEN_LABEL3 ? 1 : (k < ITEM_TELEMETRY_SCREEN_LABEL4 ? 2 : 3))) + #define TELEMETRY_SCREEN_LINE(x) (TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_NONE ? HIDDEN_ROW : (uint8_t)2) + #define TELEMETRY_SCREEN_ROWS(x) SCREEN_TYPE_ROWS, TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x) + #define TELEMETRY_CURRENT_SCREEN(k) (k < ITEM_TELEMETRY_SCREEN_LABEL2 ? 0 : (k < ITEM_TELEMETRY_SCREEN_LABEL3 ? 1 : (k < ITEM_TELEMETRY_SCREEN_LABEL4 ? 2 : 3))) #else - #define TELEMETRY_SCREEN_ROWS(x) SCREEN_TYPE_ROWS, 2, 2, 2, 2 - #define TELEMETRY_CURRENT_EDIT_CHANNEL(k) (k >= ITEM_TELEMETRY_A2_LABEL ? TELEM_ANA_A2 : TELEM_ANA_A1) + #define TELEMETRY_SCREEN_ROWS(x) SCREEN_TYPE_ROWS, 2, 2, 2, 2 + #define TELEMETRY_CURRENT_CHANNEL(k) (k >= ITEM_TELEMETRY_A2_LABEL ? TELEM_ANA_A2 : TELEM_ANA_A1) #endif #if defined(CPUARM) @@ -549,7 +550,7 @@ void menuModelTelemetry(uint8_t event) uint8_t attr = (sub == k ? blink : 0); #if !defined(CPUARM) - uint8_t ch = TELEMETRY_CURRENT_EDIT_CHANNEL(k); + uint8_t ch = TELEMETRY_CURRENT_CHANNEL(k); FrSkyChannelData & channel = g_model.frsky.channels[ch]; uint8_t dest = TELEM_A1-1+ch; #endif @@ -618,9 +619,13 @@ void menuModelTelemetry(uint8_t event) } } break; - - case ITEM_TELEMETRY_IGNORE_SENSORID: - ON_OFF_MENU_ITEM(g_model.ignoreSensorIds, TELEM_COL2, y, STR_IGNOREIDS, attr, event); + + case ITEM_TELEMETRY_REJECT_NEWSENSORS: + ON_OFF_MENU_ITEM(g_model.rejectNewSensors, TELEM_COL2, y, STR_REJECT_NEWSENSORS, attr, event); + break; + + case ITEM_TELEMETRY_IGNORE_SENSOR_INSTANCE: + ON_OFF_MENU_ITEM(g_model.ignoreSensorIds, TELEM_COL2, y, STR_IGNORE_INSTANCE, attr, event); break; #endif @@ -830,7 +835,7 @@ void menuModelTelemetry(uint8_t event) case ITEM_TELEMETRY_SCREEN_LABEL3: case ITEM_TELEMETRY_SCREEN_LABEL4: { - uint8_t screenIndex = TELEMETRY_CURRENT_EDIT_SCREEN(k); + uint8_t screenIndex = TELEMETRY_CURRENT_SCREEN(k); putsStrIdx(0*FW, y, STR_SCREEN, screenIndex+1); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType newScreenType = (TelemetryScreenType)selectMenuItem(TELEM_SCRTYPE_COL, y, PSTR(""), STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (m_posHorz==0 ? attr : 0), event); diff --git a/radio/src/gui/Taranis/menu_model_telemetry.cpp b/radio/src/gui/Taranis/menu_model_telemetry.cpp index 21578d131..4efaad845 100644 --- a/radio/src/gui/Taranis/menu_model_telemetry.cpp +++ b/radio/src/gui/Taranis/menu_model_telemetry.cpp @@ -74,7 +74,8 @@ enum menuModelTelemetryItems { ITEM_TELEMETRY_SENSOR31, ITEM_TELEMETRY_SENSOR32, ITEM_TELEMETRY_NEWSENSOR, - ITEM_TELEMETRY_IGNORE_SENSORID, + ITEM_TELEMETRY_REJECT_NEWSENSORS, + ITEM_TELEMETRY_IGNORE_SENSOR_INSTANCE, #if defined(VARIO) ITEM_TELEMETRY_VARIO_LABEL, ITEM_TELEMETRY_VARIO_SOURCE, @@ -110,39 +111,39 @@ enum menuModelTelemetryItems { ITEM_TELEMETRY_MAX }; -#define TELEM_COL1 (1*FW) -#define TELEM_COL2 (16*FW) -#define TELEM_COL3 (28*FW) -#define TELEM_BARS_COLMIN TELEM_COL2 -#define TELEM_BARS_COLMAX TELEM_COL3 -#define TELEM_SCRTYPE_COL TELEM_COL2 +#define TELEM_COL1 (1*FW) +#define TELEM_COL2 (16*FW) +#define TELEM_COL3 (28*FW) +#define TELEM_BARS_COLMIN TELEM_COL2 +#define TELEM_BARS_COLMAX TELEM_COL3 +#define TELEM_SCRTYPE_COL TELEM_COL2 -#define IF_FAS_OFFSET(x) x, -#define IS_RANGE_DEFINED(k) (g_model.frsky.channels[k].ratio > 0) +#define IF_FAS_OFFSET(x) x, +#define IS_RANGE_DEFINED(k) (g_model.frsky.channels[k].ratio > 0) -#define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) -#define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, +#define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) +#define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), (g_model.rejectNewSensors ? HIDDEN_ROW : (uint8_t)0), 0, 0, #if defined(VARIO) - #define VARIO_ROWS LABEL(Vario), 0, 1, 2, + #define VARIO_ROWS LABEL(Vario), 0, 1, 2, #else #define VARIO_ROWS #endif -#define RSSI_ROWS LABEL(RSSI), 0, 0, +#define RSSI_ROWS LABEL(RSSI), 0, 0, #if defined(LUA) - #define SCREEN_TYPE_ROWS 1 + #define SCREEN_TYPE_ROWS 1 #else - #define SCREEN_TYPE_ROWS 0 + #define SCREEN_TYPE_ROWS 0 #endif -#define VARIO_RANGE_ROWS 3 -#define TELEMETRY_TYPE_ROWS (g_model.moduleData[INTERNAL_MODULE].rfProtocol == RF_PROTO_OFF && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_PPM) ? (uint8_t)0 : HIDDEN_ROW, +#define VARIO_RANGE_ROWS 3 +#define TELEMETRY_TYPE_ROWS (g_model.moduleData[INTERNAL_MODULE].rfProtocol == RF_PROTO_OFF && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_PPM) ? (uint8_t)0 : HIDDEN_ROW, #if defined(LUA) - #define TELEMETRY_SCREEN_LINE(x) ((TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_NONE || TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_SCRIPT) ? HIDDEN_ROW : (uint8_t)2) + #define TELEMETRY_SCREEN_LINE(x) ((TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_NONE || TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_SCRIPT) ? HIDDEN_ROW : (uint8_t)2) #else - #define TELEMETRY_SCREEN_LINE(x) (TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_NONE ? HIDDEN_ROW : (uint8_t)2) + #define TELEMETRY_SCREEN_LINE(x) (TELEMETRY_SCREEN_TYPE(x) == TELEMETRY_SCREEN_TYPE_NONE ? HIDDEN_ROW : (uint8_t)2) #endif -#define TELEMETRY_SCREEN_ROWS(x) SCREEN_TYPE_ROWS, TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x) -#define TELEMETRY_CURRENT_EDIT_SCREEN(k) (k < ITEM_TELEMETRY_SCREEN_LABEL2 ? 0 : (k < ITEM_TELEMETRY_SCREEN_LABEL3 ? 1 : (k < ITEM_TELEMETRY_SCREEN_LABEL4 ? 2 : 3))) +#define TELEMETRY_SCREEN_ROWS(x) SCREEN_TYPE_ROWS, TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x), TELEMETRY_SCREEN_LINE(x) +#define TELEMETRY_CURRENT_SCREEN(k) (k < ITEM_TELEMETRY_SCREEN_LABEL2 ? 0 : (k < ITEM_TELEMETRY_SCREEN_LABEL3 ? 1 : (k < ITEM_TELEMETRY_SCREEN_LABEL4 ? 2 : 3))) enum SensorFields { SENSOR_FIELD_NAME, @@ -492,7 +493,7 @@ void onSensorMenu(const char *result) void onTelemetryScriptFileSelectionMenu(const char *result) { int sub = m_posVert; - int screenIndex = TELEMETRY_CURRENT_EDIT_SCREEN(sub); + int screenIndex = TELEMETRY_CURRENT_SCREEN(sub); if (result == STR_UPDATE_LIST) { if (!listSdFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.frsky.screens[screenIndex].script.file), NULL)) { @@ -600,8 +601,12 @@ void menuModelTelemetry(uint8_t event) } break; - case ITEM_TELEMETRY_IGNORE_SENSORID: - ON_OFF_MENU_ITEM(g_model.ignoreSensorIds, TELEM_COL2, y, STR_IGNOREIDS, attr, event); + case ITEM_TELEMETRY_REJECT_NEWSENSORS: + ON_OFF_MENU_ITEM(g_model.rejectNewSensors, TELEM_COL2, y, STR_REJECT_NEWSENSORS, attr, event); + break; + + case ITEM_TELEMETRY_IGNORE_SENSOR_INSTANCE: + ON_OFF_MENU_ITEM(g_model.ignoreSensorIds, TELEM_COL2, y, STR_IGNORE_INSTANCE, attr, event); break; case ITEM_TELEMETRY_RSSI_LABEL: @@ -705,7 +710,7 @@ void menuModelTelemetry(uint8_t event) case ITEM_TELEMETRY_SCREEN_LABEL3: case ITEM_TELEMETRY_SCREEN_LABEL4: { - uint8_t screenIndex = TELEMETRY_CURRENT_EDIT_SCREEN(k); + uint8_t screenIndex = TELEMETRY_CURRENT_SCREEN(k); putsStrIdx(0*FW, y, STR_SCREEN, screenIndex+1); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType newScreenType = (TelemetryScreenType)selectMenuItem(TELEM_SCRTYPE_COL, y, PSTR(""), STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (m_posHorz==0 ? attr : 0), event); diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 1e14f2ef0..cca4ecdd6 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -2153,7 +2153,10 @@ PACK(typedef struct { FlightModeData flightModeData[MAX_FLIGHT_MODES]; AVR_FIELD(int8_t ppmFrameLength) // 0=22.5ms (10ms-30ms) 0.5ms increments - uint8_t thrTraceSrc; + AVR_FIELD(uint8_t thrTraceSrc) + + ARM_FIELD(uint8_t thrTraceSrc:7) + ARM_FIELD(uint8_t rejectNewSensors:1) swarnstate_t switchWarningState; swarnenable_t switchWarningEnable; diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 2c85a702d..54d581bdb 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -491,11 +491,11 @@ void setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t instance if (telemetrySensor.type == TELEM_TYPE_CUSTOM && telemetrySensor.id == id && (telemetrySensor.instance == instance || g_model.ignoreSensorIds)) { telemetryItems[index].setValue(telemetrySensor, value, unit, prec); available = true; - // we continue search here, because more than one sensor can have the same id and instance + // we continue search here, because sensors can share the same id and instance } } - if (available) { + if (available || g_model.rejectNewSensors) { return; } diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index febcbb99c..858654f03 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -570,7 +570,8 @@ const pm_char STR_BLCOLOR[] PROGMEM = TR_BLCOLOR; const pm_char STR_ONLYPOSITIVE[] PROGMEM = TR_ONLYPOSITIVE; const pm_char STR_FILTER[] PROGMEM = TR_FILTER; const pm_char STR_TELEMETRYFULL[] PROGMEM = TR_TELEMETRYFULL; - const pm_char STR_IGNOREIDS[] PROGMEM = TR_IGNOREIDS; + const pm_char STR_IGNORE_INSTANCE[] PROGMEM = TR_IGNORE_INSTANCE; +const pm_char STR_REJECT_NEWSENSORS[] PROGMEM = TR_REJECT_NEWSENSORS; #endif #if defined(PCBTARANIS) diff --git a/radio/src/translations.h b/radio/src/translations.h index 651a0fe13..d48e7dd01 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -789,7 +789,8 @@ extern const pm_char STR_BLCOLOR[]; extern const pm_char STR_ONLYPOSITIVE[]; extern const pm_char STR_FILTER[]; extern const pm_char STR_TELEMETRYFULL[]; - extern const pm_char STR_IGNOREIDS[]; + extern const pm_char STR_IGNORE_INSTANCE[]; +extern const pm_char STR_REJECT_NEWSENSORS[]; #endif #if defined(PCBTARANIS) diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 909961c47..98bcfa0fa 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -1079,7 +1079,8 @@ #define TR_ONLYPOSITIVE "Jen kladné" #define TR_FILTER "Filtr" #define TR_TELEMETRYFULL "Všechny sloty jsou plné!" -#define TR_IGNOREIDS INDENT "Ignoruj chyby ID" +#define TR_IGNORE_INSTANCE INDENT "Ignoruj chyby ID" +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Vstupy" #define TR_MENU_LUA "\322Lua skripty" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 4e6521f3b..ff466aa77 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -1083,7 +1083,8 @@ #define TR_ONLYPOSITIVE "Nur Positiv" #define TR_FILTER "Filter aktiv" #define TR_TELEMETRYFULL "Telemetriezeilen voll!" -#define TR_IGNOREIDS INDENT "Ignore instance" +#define TR_IGNORE_INSTANCE INDENT "Ignore instance" +#define TR_REJECT_NEWSENSORS "Reject new sensors" // ----------------------------- Symbole für Auswahlliste---------- #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua Scripte" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 65e438fef..890df101c 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -1078,7 +1078,8 @@ #define TR_ONLYPOSITIVE "Positive" #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" -#define TR_IGNOREIDS TR(INDENT "No inst.","Ignore instance") +#define TR_IGNORE_INSTANCE TR(INDENT "No inst.", INDENT "Ignore instance") +#define TR_REJECT_NEWSENSORS INDENT "Locked" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 0bd39c8a7..21b7a6f36 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1033,7 +1033,8 @@ #define TR_ONLYPOSITIVE "Positive" #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" -#define TR_IGNOREIDS INDENT "Ignore instance" +#define TR_IGNORE_INSTANCE INDENT "Ignore instance" +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 8b30e122a..ebee768cd 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -1033,7 +1033,8 @@ #define TR_ONLYPOSITIVE "Positive" #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" -#define TR_IGNOREIDS INDENT "Ignore instance" +#define TR_IGNORE_INSTANCE INDENT "Ignore instance" +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 60d906ab9..125555dac 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1070,7 +1070,8 @@ #define TR_ONLYPOSITIVE "Positive" #define TR_FILTER "Filtrage" #define TR_TELEMETRYFULL "Plus de capteurs libres!" -#define TR_IGNOREIDS TR(INDENT "Ign. inst.",INDENT "Ignorer instance") +#define TR_IGNORE_INSTANCE TR(INDENT "Ign. inst.",INDENT "Ignorer instance") +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Entrées" #define TR_MENU_LUA "\322Scripts Lua" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 13acf7941..f82c7e6f2 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1081,7 +1081,8 @@ #define TR_ONLYPOSITIVE "Positivo" #define TR_FILTER "Filtro" #define TR_TELEMETRYFULL "Tutti gli slot sono pieni!" -#define TR_IGNOREIDS TR(INDENT "No inst.","Ignora instanza") +#define TR_IGNORE_INSTANCE TR(INDENT "No inst.","Ignora instanza") +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Ingressi" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 67b0801b7..039b3c2be 100755 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -1088,7 +1088,8 @@ #define TR_ONLYPOSITIVE "Geen Negatief" #define TR_FILTER "Filter aktief" #define TR_TELEMETRYFULL "Telemetrie slots vol!" -#define TR_IGNOREIDS TR(INDENT "Neg. ID ","Negeer ID's") +#define TR_IGNORE_INSTANCE TR(INDENT "Neg. ID ","Negeer ID's") +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Inputs" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 6f3ab30e0..d5882537e 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1082,7 +1082,8 @@ #define TR_ONLYPOSITIVE "Dodatni" #define TR_FILTER "Filtr" #define TR_TELEMETRYFULL "Wszyskie miejsca zajęte!" -#define TR_IGNOREIDS INDENT "Ignoruj przypadek" +#define TR_IGNORE_INSTANCE INDENT "Ignoruj przypadek" +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Wejści" #define TR_MENU_LUA "\322SkryptyLUA" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 773eb1dae..e44b5ce07 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -1033,7 +1033,8 @@ #define TR_ONLYPOSITIVE "Positive" #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" -#define TR_IGNOREIDS INDENT "Ignore instance" +#define TR_IGNORE_INSTANCE INDENT "Ignore instance" +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 40cd02f78..f57362b7b 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1033,7 +1033,8 @@ #define TR_ONLYPOSITIVE "Positive" #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" -#define TR_IGNOREIDS INDENT "Ignore instance" +#define TR_IGNORE_INSTANCE INDENT "Ignore instance" +#define TR_REJECT_NEWSENSORS "Reject new sensors" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" From ffd49691f5556bb187cac6d46d97148cb8602118 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 5 Sep 2015 13:34:10 +0200 Subject: [PATCH 2/5] #2810 - Other possibility (no EEPROM change, discover button added) --- companion/src/eeprominterface.h | 1 - .../src/firmwares/opentx/opentxeeprom.cpp | 8 +------ companion/src/modeledit/telemetry.cpp | 2 -- companion/src/modeledit/telemetry.ui | 9 +------- radio/src/gui/9X/menu_model_telemetry.cpp | 22 +++++++++++-------- .../src/gui/Taranis/menu_model_telemetry.cpp | 22 +++++++++++-------- radio/src/myeeprom.h | 6 ++--- radio/src/telemetry/telemetry.cpp | 3 ++- radio/src/translations.cpp | 3 ++- radio/src/translations.h | 3 ++- radio/src/translations/cz.h.txt | 3 ++- radio/src/translations/de.h.txt | 3 ++- radio/src/translations/en.h.txt | 5 +++-- radio/src/translations/es.h.txt | 3 ++- radio/src/translations/fi.h.txt | 3 ++- radio/src/translations/fr.h.txt | 3 ++- radio/src/translations/it.h.txt | 3 ++- radio/src/translations/nl.h.txt | 3 ++- radio/src/translations/pl.h.txt | 3 ++- radio/src/translations/pt.h.txt | 3 ++- radio/src/translations/se.h.txt | 3 ++- 21 files changed, 59 insertions(+), 55 deletions(-) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index fb23a8b53..2e9f65305 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -781,7 +781,6 @@ class FrSkyData { bool mAhPersistent; unsigned int storedMah; int fasOffset; - bool rejectNewSensors; bool ignoreSensorIds; void clear(); diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index d807005e3..c1351fb27 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -3025,13 +3025,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne internalField.Append(new SignedField<8>(modelData.moduleData[0].ppmFrameLength)); } - if (!IS_ARM(board) || version < 217) { - internalField.Append(new ConversionField< UnsignedField<8> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); - } - else { - internalField.Append(new ConversionField< UnsignedField<7> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); - internalField.Append(new BoolField<1>(modelData.frsky.rejectNewSensors)); - } + internalField.Append(new ConversionField< UnsignedField<8> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); if (!afterrelease21March2013) { internalField.Append(new UnsignedField<8>(modelData.moduleData[0].modelId)); diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp index 2861634af..5ab8c1210 100644 --- a/companion/src/modeledit/telemetry.cpp +++ b/companion/src/modeledit/telemetry.cpp @@ -787,13 +787,11 @@ void TelemetryPanel::setup() ui->telemetryProtocol->addItem(tr("FrSky D (cable)"), 2); } ui->telemetryProtocol->setCurrentIndex(model->telemetryProtocol); - ui->rejectNewSensors->setField(model->frsky.rejectNewSensors); ui->ignoreSensorIds->setField(model->frsky.ignoreSensorIds); } else { ui->telemetryProtocolLabel->hide(); ui->telemetryProtocol->hide(); - ui->rejectNewSensors->hide(); ui->ignoreSensorIds->hide(); } diff --git a/companion/src/modeledit/telemetry.ui b/companion/src/modeledit/telemetry.ui index 0f6914410..b365f7f1b 100644 --- a/companion/src/modeledit/telemetry.ui +++ b/companion/src/modeledit/telemetry.ui @@ -972,20 +972,13 @@ - + Disable multi sensor handling - - - - Reject new sensors - - - diff --git a/radio/src/gui/9X/menu_model_telemetry.cpp b/radio/src/gui/9X/menu_model_telemetry.cpp index 77ba0cafd..71a323766 100644 --- a/radio/src/gui/9X/menu_model_telemetry.cpp +++ b/radio/src/gui/9X/menu_model_telemetry.cpp @@ -86,8 +86,8 @@ enum menuModelTelemetryItems { ITEM_TELEMETRY_SENSOR30, ITEM_TELEMETRY_SENSOR31, ITEM_TELEMETRY_SENSOR32, - ITEM_TELEMETRY_NEWSENSOR, - ITEM_TELEMETRY_REJECT_NEWSENSORS, + ITEM_TELEMETRY_DISCOVER_SENSORS, + ITEM_TELEMETRY_NEW_SENSOR, ITEM_TELEMETRY_IGNORE_SENSOR_INSTANCE, #endif #if !defined(CPUARM) @@ -148,7 +148,7 @@ enum menuModelTelemetryItems { #if defined(CPUARM) #define CHANNELS_ROWS #define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) - #define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), (g_model.rejectNewSensors ? HIDDEN_ROW : (uint8_t)0), 0, 0, + #define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, 0, #else #define CHANNEL_ROWS(x) LABEL(CHANNEL), 1, 0, 2, 2 #define CHANNELS_ROWS CHANNEL_ROWS(0), CHANNEL_ROWS(1), @@ -498,7 +498,7 @@ void onSensorMenu(const char *result) if (index 0) #define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) -#define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), (g_model.rejectNewSensors ? HIDDEN_ROW : (uint8_t)0), 0, 0, +#define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, 0, #if defined(VARIO) #define VARIO_ROWS LABEL(Vario), 0, 1, 2, #else @@ -468,7 +468,7 @@ void onSensorMenu(const char *result) if (index Date: Sat, 5 Sep 2015 14:34:34 +0200 Subject: [PATCH 3/5] Automatic tests fix --- radio/src/telemetry/telemetry.h | 1 + radio/src/tests/frsky.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index 37e89e492..5885f95bd 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -165,6 +165,7 @@ class TelemetryItem }; extern TelemetryItem telemetryItems[MAX_SENSORS]; +extern uint8_t allowNewSensors; inline bool isTelemetryFieldAvailable(int index) { diff --git a/radio/src/tests/frsky.cpp b/radio/src/tests/frsky.cpp index 2db052dcd..c82109319 100644 --- a/radio/src/tests/frsky.cpp +++ b/radio/src/tests/frsky.cpp @@ -129,6 +129,8 @@ TEST(FrSky, Vfas_0x39_HiPrecision) TELEMETRY_RESET(); EXPECT_EQ(telemetryItems[0].value, 0); + allowNewSensors = true; + // normal precision, resolution 0.1V processHubPacket(VFAS_ID, 1234); // set value of 123.4V EXPECT_EQ(telemetryItems[0].value, 12340); // stored value has resolution of 0.01V @@ -148,6 +150,8 @@ TEST(FrSky, HubAltNegative) TELEMETRY_RESET(); EXPECT_EQ(telemetryItems[0].value, 0); + allowNewSensors = true; + // altimeter auto offset processHubPacket(BARO_ALT_BP_ID, 0); processHubPacket(BARO_ALT_AP_ID, 0); From c96f8aef36c0ea974a72f128037bb83a1dc3e0a6 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Sun, 6 Sep 2015 10:48:28 +0200 Subject: [PATCH 4/5] Translations weren't updated --- 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 | 4 ++-- 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 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 01da4b4b8..454e50204 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -1080,8 +1080,8 @@ #define TR_FILTER "Filtr" #define TR_TELEMETRYFULL "Všechny sloty jsou plné!" #define TR_IGNORE_INSTANCE INDENT "Ignoruj chyby ID" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Vstupy" #define TR_MENU_LUA "\322Lua skripty" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 8da1a469e..adb8b409e 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -1084,8 +1084,8 @@ #define TR_FILTER "Filter aktiv" #define TR_TELEMETRYFULL "Telemetriezeilen voll!" #define TR_IGNORE_INSTANCE INDENT "Ignore instance" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" // ----------------------------- Symbole für Auswahlliste---------- #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua Scripte" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 16f7b91d1..3aefb16af 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -1079,8 +1079,8 @@ #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" #define TR_IGNORE_INSTANCE TR(INDENT "No inst.", INDENT "Ignore instances") -#define TR_DISCOVER_SENSORS INDENT "Autodiscover sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discover sensors" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 9a9f7dc0c..203fe4326 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1034,8 +1034,8 @@ #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" #define TR_IGNORE_INSTANCE INDENT "Ignore instance" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index bca3ea5cc..bcfac9663 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -1034,8 +1034,8 @@ #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" #define TR_IGNORE_INSTANCE INDENT "Ignore instance" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index a13e7a5ce..d1ea54a63 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1071,8 +1071,8 @@ #define TR_FILTER "Filtrage" #define TR_TELEMETRYFULL "Plus de capteurs libres!" #define TR_IGNORE_INSTANCE TR(INDENT "Ign. inst.",INDENT "Ignorer instance") -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Découvrir capteurs" +#define TR_STOP_DISCOVER_SENSORS INDENT "Terminer découverte" #define TR_MENU_INPUTS "\314Entrées" #define TR_MENU_LUA "\322Scripts Lua" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 8516f90e9..1e388ae36 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -1082,8 +1082,8 @@ #define TR_FILTER "Filtro" #define TR_TELEMETRYFULL "Tutti gli slot sono pieni!" #define TR_IGNORE_INSTANCE TR(INDENT "No inst.","Ignora instanza") -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Ingressi" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index 6ebaefc81..82dbc227b 100755 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -1089,8 +1089,8 @@ #define TR_FILTER "Filter aktief" #define TR_TELEMETRYFULL "Telemetrie slots vol!" #define TR_IGNORE_INSTANCE TR(INDENT "Neg. ID ","Negeer ID's") -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Inputs" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 4f47b8df2..975835f0a 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -1083,8 +1083,8 @@ #define TR_FILTER "Filtr" #define TR_TELEMETRYFULL "Wszyskie miejsca zajęte!" #define TR_IGNORE_INSTANCE INDENT "Ignoruj przypadek" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Wejści" #define TR_MENU_LUA "\322SkryptyLUA" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 82533c476..99df467fd 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -1034,8 +1034,8 @@ #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" #define TR_IGNORE_INSTANCE INDENT "Ignore instance" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 085f70ed6..61e07a1c0 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -1034,8 +1034,8 @@ #define TR_FILTER "Filter" #define TR_TELEMETRYFULL "All telemetry slots full!" #define TR_IGNORE_INSTANCE INDENT "Ignore instance" -#define TR_DISCOVER_SENSORS "Reject new sensors" -#define TR_STOP_DISCOVER_SENSORS INDENT "Stop Discover" +#define TR_DISCOVER_SENSORS INDENT "Discover new sensors" +#define TR_STOP_DISCOVER_SENSORS INDENT "Stop discovery" #define TR_MENU_INPUTS "\314Inputs" #define TR_MENU_LUA "\322Lua scripts" From 91bd3f0cdb91acd93455587751bb783d56b2c382 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Sun, 6 Sep 2015 11:24:10 +0200 Subject: [PATCH 5/5] Delete all sensors (fix #2730) --- radio/src/gui/9X/menu_model_telemetry.cpp | 21 ++++++++++++++++++- .../src/gui/Taranis/menu_model_telemetry.cpp | 19 ++++++++++++++++- radio/src/translations.cpp | 6 ++++-- radio/src/translations.h | 6 ++++-- radio/src/translations/cz.h.txt | 2 ++ radio/src/translations/de.h.txt | 4 +++- 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 | 4 +++- radio/src/translations/nl.h.txt | 2 ++ radio/src/translations/pl.h.txt | 2 ++ radio/src/translations/pt.h.txt | 4 +++- radio/src/translations/se.h.txt | 4 +++- 15 files changed, 72 insertions(+), 10 deletions(-) diff --git a/radio/src/gui/9X/menu_model_telemetry.cpp b/radio/src/gui/9X/menu_model_telemetry.cpp index 71a323766..837f85b0d 100644 --- a/radio/src/gui/9X/menu_model_telemetry.cpp +++ b/radio/src/gui/9X/menu_model_telemetry.cpp @@ -88,6 +88,7 @@ enum menuModelTelemetryItems { ITEM_TELEMETRY_SENSOR32, ITEM_TELEMETRY_DISCOVER_SENSORS, ITEM_TELEMETRY_NEW_SENSOR, + ITEM_TELEMETRY_DELETE_ALL_SENSORS, ITEM_TELEMETRY_IGNORE_SENSOR_INSTANCE, #endif #if !defined(CPUARM) @@ -148,7 +149,7 @@ enum menuModelTelemetryItems { #if defined(CPUARM) #define CHANNELS_ROWS #define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) - #define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, 0, + #define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, 0, 0, #else #define CHANNEL_ROWS(x) LABEL(CHANNEL), 1, 0, 2, 2 #define CHANNELS_ROWS CHANNEL_ROWS(0), CHANNEL_ROWS(1), @@ -522,6 +523,15 @@ void onSensorMenu(const char *result) void menuModelTelemetry(uint8_t event) { +#if defined(CPUARM) + if (s_warning_result) { + s_warning_result = 0; + for (int i=0; i 0) #define SENSOR_ROWS(x) (isTelemetryFieldAvailable(x) ? (uint8_t)0 : HIDDEN_ROW) -#define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, 0, +#define SENSORS_ROWS LABEL(Sensors), SENSOR_ROWS(0), SENSOR_ROWS(1), SENSOR_ROWS(2), SENSOR_ROWS(3), SENSOR_ROWS(4), SENSOR_ROWS(5), SENSOR_ROWS(6), SENSOR_ROWS(7), SENSOR_ROWS(8), SENSOR_ROWS(9), SENSOR_ROWS(10), SENSOR_ROWS(11), SENSOR_ROWS(12), SENSOR_ROWS(13), SENSOR_ROWS(14), SENSOR_ROWS(15), SENSOR_ROWS(16), SENSOR_ROWS(17), SENSOR_ROWS(18), SENSOR_ROWS(19), SENSOR_ROWS(20), SENSOR_ROWS(21), SENSOR_ROWS(22), SENSOR_ROWS(23), SENSOR_ROWS(24), SENSOR_ROWS(25), SENSOR_ROWS(26), SENSOR_ROWS(27), SENSOR_ROWS(28), SENSOR_ROWS(29), SENSOR_ROWS(30), SENSOR_ROWS(31), 0, 0, 0, 0, #if defined(VARIO) #define VARIO_ROWS LABEL(Vario), 0, 1, 2, #else @@ -518,6 +519,13 @@ void onTelemetryScriptFileSelectionMenu(const char *result) void menuModelTelemetry(uint8_t event) { + if (s_warning_result) { + s_warning_result = 0; + for (int i=0; i