From 73861554ec68f28698d3af1c3cc92bb0e220a828 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 27 Sep 2022 12:06:26 +0200 Subject: [PATCH] feat: Support for 8s Cell Sensor such as FrSky FLVS ADV (#2302) * first commit for FrSky 8s Lipo Sensor FLVS Advanced transfers up to 8 cell voltages for Cels sensor * correcting mistake made transferring local change to PR * complementary extension of Companion telemetry simulator to enable simulation of 8 cells * change to allow selection of cells 7 and 8 in calculated sensor with formula Cell * (cpn) Add bin and yml conversions and basic semantic version helper Co-authored-by: elecpower --- .../src/firmwares/edgetx/yaml_modeldata.cpp | 14 ++++ .../src/firmwares/opentx/opentxeeprom.cpp | 6 ++ companion/src/firmwares/sensordata.h | 2 + companion/src/helpers.cpp | 84 +++++++++++++++++++ companion/src/helpers.h | 55 ++++++++++++ companion/src/simulation/telemetrysimu.cpp | 20 ++++- companion/src/simulation/telemetrysimu.h | 7 +- companion/src/simulation/telemetrysimu.ui | 50 +++++++++++ .../src/gui/128x64/model_telemetry_sensor.cpp | 2 +- .../src/gui/212x64/model_telemetry_sensor.cpp | 2 +- radio/src/gui/colorlcd/model_telemetry.cpp | 2 +- radio/src/telemetry/telemetry.h | 3 + radio/src/telemetry/telemetry_holders.h | 2 +- radio/src/translations/cn.h | 2 +- radio/src/translations/cz.h | 2 +- radio/src/translations/da.h | 2 +- radio/src/translations/de.h | 2 +- radio/src/translations/en.h | 2 +- radio/src/translations/es.h | 2 +- radio/src/translations/fi.h | 2 +- radio/src/translations/fr.h | 2 +- radio/src/translations/it.h | 2 +- radio/src/translations/nl.h | 2 +- radio/src/translations/pl.h | 2 +- radio/src/translations/pt.h | 2 +- radio/src/translations/se.h | 2 +- radio/src/translations/tw.h | 2 +- 27 files changed, 255 insertions(+), 22 deletions(-) diff --git a/companion/src/firmwares/edgetx/yaml_modeldata.cpp b/companion/src/firmwares/edgetx/yaml_modeldata.cpp index 7f65516ad..0d9afa8e7 100644 --- a/companion/src/firmwares/edgetx/yaml_modeldata.cpp +++ b/companion/src/firmwares/edgetx/yaml_modeldata.cpp @@ -34,6 +34,7 @@ #include "output_data.h" #include "eeprominterface.h" #include "version.h" +#include "helpers.h" #include @@ -1140,6 +1141,19 @@ bool convert::decode(const Node& node, ModelData& rhs) node["functionSwitchStartConfig"] >> rhs.functionSwitchStartConfig; node["functionSwitchLogicalState"] >> rhs.functionSwitchLogicalState; node["switchNames"] >> rhs.functionSwitchNames; + + // preferably perform conversions here to avoid cluttering the field decodes + + if (SemanticVersion(QString(rhs.semver)) < SemanticVersion("2.8.0")) { + // Cells 7 and 8 introduced requiring Highest and Delta to be shifted + 2 + for (int i = 0; i < CPN_MAX_SENSORS; i++) { + SensorData &sd = rhs.sensorData[i]; + if (!sd.isEmpty() && sd.type == SensorData::TELEM_TYPE_CALCULATED && + sd.formula == SensorData::TELEM_FORMULA_CELL && sd.index > 6) + sd.index += 2; + } + } + return true; } diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 8c3a8da3f..0be495661 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -2066,6 +2066,12 @@ class SensorField: public TransformedField { } } + // Cells 7 and 8 introduced in v2.8 requiring Highest and Delta to be shifted + 2 + if (version < 221) { + if (sensor.formula == SensorData::TELEM_FORMULA_CELL && sensor.index > 6) + sensor.index += 2; + } + qCDebug(eepromImport) << QString("imported %1").arg(internalField.getName()); } diff --git a/companion/src/firmwares/sensordata.h b/companion/src/firmwares/sensordata.h index 4722f9453..948b1807d 100644 --- a/companion/src/firmwares/sensordata.h +++ b/companion/src/firmwares/sensordata.h @@ -76,6 +76,8 @@ class SensorData { TELEM_CELL_INDEX_4, TELEM_CELL_INDEX_5, TELEM_CELL_INDEX_6, + TELEM_CELL_INDEX_7, + TELEM_CELL_INDEX_8, TELEM_CELL_INDEX_HIGHEST, TELEM_CELL_INDEX_DELTA, TELEM_CELL_INDEX_LAST = TELEM_CELL_INDEX_DELTA diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index e4701aea6..5c89fe82a 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -726,3 +726,87 @@ QString Helpers::removeAccents(const QString & str) } return result; } + +SemanticVersion::SemanticVersion(QString vers) +{ + if (!isValid(vers)) + return; + + QStringList strl = vers.split("."); + version.major = strl.at(0).toInt(); + version.minor = strl.at(1).toInt(); + if (strl.count() > 2) { + if (!strl.at(2).contains("-")) { + version.patch = strl.at(2).toInt(); + } else { + QStringList ptch = strl.at(2).toLower().split("-"); + version.patch = ptch.at(0).toInt(); + if (ptch.at(1).left(2) == "rc") { + version.preReleaseType = PR_RC; + version.preReleaseNumber = ptch.at(1).mid(2).toInt(); + } else if (ptch.at(1).left(5) == "alpha") { + version.preReleaseType = PR_ALPHA; + version.preReleaseNumber = ptch.at(1).mid(5).toInt(); + } else if (ptch.at(1).left(4) == "beta") { + version.preReleaseType = PR_BETA; + version.preReleaseNumber = ptch.at(1).mid(4).toInt(); + } + } + } +} + +bool SemanticVersion::isValid(QString vers) +{ + if (vers.trimmed().isEmpty()) + return false; + + QStringList strl = vers.split("."); + if (strl.count() < 2) + return false; + + return true; +} + +QString SemanticVersion::toString() const +{ + QString ret(QString("%1.%2.%3").arg(version.major).arg(version.minor).arg(version.patch)); + + if (version.preReleaseType != PR_NONE) { + ret.append("-"); + if (version.preReleaseType == PR_RC) + ret.append("RC"); + else if (version.preReleaseType == PR_ALPHA) + ret.append("ALPHA"); + else if (version.preReleaseType == PR_BETA) + ret.append("BETA"); + + ret.append(QString::number(version.preReleaseNumber)); + } + + return ret; +} + +int SemanticVersion::compare(const SemanticVersion& other) +{ + if (version.major != other.version.major) { + return version.major - other.version.major; + } + + if (version.minor != other.version.minor) { + return version.minor - other.version.minor; + } + + if (version.patch != other.version.patch) { + return version.patch - other.version.patch; + } + + if (version.preReleaseType != other.version.preReleaseType) { + return version.preReleaseType - other.version.preReleaseType; + } + + if (version.preReleaseNumber != other.version.preReleaseNumber) { + return version.preReleaseNumber - other.version.preReleaseNumber; + } + + return 0; +} diff --git a/companion/src/helpers.h b/companion/src/helpers.h index fc3492546..2f0e5ee4e 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -240,3 +240,58 @@ private: }; extern Stopwatch gStopwatch; + +class SemanticVersion +{ + public: + explicit SemanticVersion(QString vers); + ~SemanticVersion() = default;; + + bool isValid(const QString vers); + QString toString() const; + + bool operator==(const SemanticVersion& rhs) { + return compare(rhs) == 0; + } + + bool operator!=(const SemanticVersion& rhs) { + return compare(rhs) != 0; + } + + bool operator>(const SemanticVersion& rhs) { + return compare(rhs) > 0; + } + + bool operator>=(const SemanticVersion& rhs) { + return compare(rhs) >= 0; + } + + bool operator<(const SemanticVersion& rhs) { + return compare(rhs) < 0; + } + + bool operator<=(const SemanticVersion& rhs) { + return compare(rhs) <= 0; + } + + private: + enum PreRelease { + PR_ALPHA = 0, + PR_BETA = 1, + PR_RC = 2, + PR_NONE = 3 + }; + + struct Version { + int major = 0; + int minor = 1; + int patch = 0; + PreRelease preReleaseType = PR_NONE; + int preReleaseNumber = 0; + }; + + Version version; + + int compare(const SemanticVersion& other); + +}; diff --git a/companion/src/simulation/telemetrysimu.cpp b/companion/src/simulation/telemetrysimu.cpp index bb8899ba6..f0ac155ce 100644 --- a/companion/src/simulation/telemetrysimu.cpp +++ b/companion/src/simulation/telemetrysimu.cpp @@ -442,6 +442,8 @@ void TelemetrySimulator::generateTelemetryFrame() cellValues[3] = ui->cell4->value(); cellValues[4] = ui->cell5->value(); cellValues[5] = ui->cell6->value(); + cellValues[6] = ui->cell7->value(); + cellValues[7] = ui->cell8->value(); generateSportPacket(buffer, ui->cells_inst->text().toInt(&ok, 0) - 1, DATA_FRAME, CELLS_FIRST_ID, flvss->setAllCells_GetNextPair(cellValues)); } else { @@ -547,6 +549,7 @@ void TelemetrySimulator::FlvssEmulator::encodeAllCells() cellData1 = encodeCellPair(numCells, 0, cellFloats[0], cellFloats[1]); if (numCells > 2) cellData2 = encodeCellPair(numCells, 2, cellFloats[2], cellFloats[3]); else cellData2 = 0; if (numCells > 4) cellData3 = encodeCellPair(numCells, 4, cellFloats[4], cellFloats[5]); else cellData3 = 0; + if (numCells > 6) cellData4 = encodeCellPair(numCells, 6, cellFloats[6], cellFloats[7]); else cellData4 = 0; } void TelemetrySimulator::FlvssEmulator::splitIntoCells(double totalVolts) @@ -564,7 +567,7 @@ void TelemetrySimulator::FlvssEmulator::splitIntoCells(double totalVolts) numCells = numCells > MAXCELLS ? MAXCELLS : numCells; // force into valid cell count in case of input out of range } -uint32_t TelemetrySimulator::FlvssEmulator::setAllCells_GetNextPair(double cellValues[6]) +uint32_t TelemetrySimulator::FlvssEmulator::setAllCells_GetNextPair(double cellValues[MAXCELLS]) { numCells = 0; for (uint32_t i = 0; i < MAXCELLS; i++) { @@ -603,6 +606,9 @@ uint32_t TelemetrySimulator::FlvssEmulator::setAllCells_GetNextPair(double cellV case 4: cellData = cellData3; break; + case 6: + cellData = cellData4; + break; } nextCellNum += 2; return cellData; @@ -1198,6 +1204,10 @@ void TelemetrySimulator::on_saveTelemetryvalues_clicked() out<<"\r\n"; out << ui -> cell6 -> text(); out<<"\r\n"; + out << ui -> cell7 -> text(); + out<<"\r\n"; + out << ui -> cell8 -> text(); + out<<"\r\n"; out << ui -> aspeed -> text(); out<<"\r\n"; out << ui -> gps_alt -> text(); @@ -1330,6 +1340,14 @@ void TelemetrySimulator::on_loadTelemetryvalues_clicked() ns = n.toDouble(); ui -> cell6 -> setValue(ns); + n = in.readLine(); + ns = n.toDouble(); + ui -> cell7 -> setValue(ns); + + n = in.readLine(); + ns = n.toDouble(); + ui -> cell8 -> setValue(ns); + n = in.readLine(); ns = n.toDouble(); ui -> aspeed -> setValue(ns); diff --git a/companion/src/simulation/telemetrysimu.h b/companion/src/simulation/telemetrysimu.h index 34596f755..a5497b2c3 100644 --- a/companion/src/simulation/telemetrysimu.h +++ b/companion/src/simulation/telemetrysimu.h @@ -171,19 +171,20 @@ class TelemetrySimulator : public QWidget class FlvssEmulator { public: - uint32_t setAllCells_GetNextPair(double cellValues[6]); - static const uint32_t MAXCELLS = 6; + static const uint32_t MAXCELLS = 8; + uint32_t setAllCells_GetNextPair(double cellValues[MAXCELLS]); private: void encodeAllCells(); void splitIntoCells(double totalVolts); static uint32_t encodeCellPair(uint8_t cellNum, uint8_t firstCellNo, double cell1, double cell2); - double cellFloats[6]; + double cellFloats[MAXCELLS]; uint32_t nextCellNum; uint32_t numCells; uint32_t cellData1; uint32_t cellData2; uint32_t cellData3; + uint32_t cellData4; }; // FlvssEmulator class GPSEmulator diff --git a/companion/src/simulation/telemetrysimu.ui b/companion/src/simulation/telemetrysimu.ui index 1aa273773..1719ead22 100644 --- a/companion/src/simulation/telemetrysimu.ui +++ b/companion/src/simulation/telemetrysimu.ui @@ -2587,6 +2587,54 @@ hh:mm:ss + + + + + 0 + 0 + + + + + 8 + + + + 8.190000000000000 + + + 0.100000000000000 + + + 4.200000000000000 + + + + + + + + 0 + 0 + + + + + 8 + + + + 8.190000000000000 + + + 0.100000000000000 + + + 4.200000000000000 + + + @@ -3184,6 +3232,8 @@ Timestamp cell4 cell5 cell6 + cell7 + cell8 aspd_inst aspeed gpsa_inst diff --git a/radio/src/gui/128x64/model_telemetry_sensor.cpp b/radio/src/gui/128x64/model_telemetry_sensor.cpp index 9fe460415..925a0940f 100644 --- a/radio/src/gui/128x64/model_telemetry_sensor.cpp +++ b/radio/src/gui/128x64/model_telemetry_sensor.cpp @@ -229,7 +229,7 @@ void menuModelSensor(event_t event) case SENSOR_FIELD_PARAM2: if (sensor->type == TELEM_TYPE_CALCULATED) { if (sensor->formula == TELEM_FORMULA_CELL) { - sensor->cell.index = editChoice(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, 0, 8, attr, event); + sensor->cell.index = editChoice(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, TELEM_CELL_INDEX_LOWEST, TELEM_CELL_INDEX_LAST, attr, event); break; } else if (sensor->formula == TELEM_FORMULA_DIST) { diff --git a/radio/src/gui/212x64/model_telemetry_sensor.cpp b/radio/src/gui/212x64/model_telemetry_sensor.cpp index 93c004a52..b1e9b4f17 100644 --- a/radio/src/gui/212x64/model_telemetry_sensor.cpp +++ b/radio/src/gui/212x64/model_telemetry_sensor.cpp @@ -243,7 +243,7 @@ void menuModelSensor(event_t event) case SENSOR_FIELD_PARAM2: if (sensor->type == TELEM_TYPE_CALCULATED) { if (sensor->formula == TELEM_FORMULA_CELL) { - sensor->cell.index = editChoice(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, 0, 8, attr, event); + sensor->cell.index = editChoice(SENSOR_2ND_COLUMN, y, STR_CELLINDEX, STR_VCELLINDEX, sensor->cell.index, TELEM_CELL_INDEX_LOWEST, TELEM_CELL_INDEX_LAST, attr, event); break; } else if (sensor->formula == TELEM_FORMULA_DIST) { diff --git a/radio/src/gui/colorlcd/model_telemetry.cpp b/radio/src/gui/colorlcd/model_telemetry.cpp index dc1fa69bb..672458711 100644 --- a/radio/src/gui/colorlcd/model_telemetry.cpp +++ b/radio/src/gui/colorlcd/model_telemetry.cpp @@ -308,7 +308,7 @@ class SensorEditWindow : public Page { if (sensor->type == TELEM_TYPE_CALCULATED) { if (sensor->formula == TELEM_FORMULA_CELL) { new StaticText(sensorParametersWindow, grid.getLabelSlot(), STR_CELLINDEX, 0, COLOR_THEME_PRIMARY1); - new Choice(sensorParametersWindow, grid.getFieldSlot(), STR_VCELLINDEX, 0, 8, GET_SET_DEFAULT(sensor->cell.index)); + new Choice(sensorParametersWindow, grid.getFieldSlot(), STR_VCELLINDEX, TELEM_CELL_INDEX_LOWEST, TELEM_CELL_INDEX_LAST, GET_SET_DEFAULT(sensor->cell.index)); } else if (sensor->formula == TELEM_FORMULA_DIST) { new StaticText(sensorParametersWindow, grid.getLabelSlot(), STR_ALTSENSOR, 0, COLOR_THEME_PRIMARY1); diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index a27eeb134..277d2e651 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -94,8 +94,11 @@ enum { TELEM_CELL_INDEX_4, TELEM_CELL_INDEX_5, TELEM_CELL_INDEX_6, + TELEM_CELL_INDEX_7, + TELEM_CELL_INDEX_8, TELEM_CELL_INDEX_HIGHEST, TELEM_CELL_INDEX_DELTA, + TELEM_CELL_INDEX_LAST = TELEM_CELL_INDEX_DELTA }; PACK(struct CellValue diff --git a/radio/src/telemetry/telemetry_holders.h b/radio/src/telemetry/telemetry_holders.h index d345434c8..fa17e6b50 100644 --- a/radio/src/telemetry/telemetry_holders.h +++ b/radio/src/telemetry/telemetry_holders.h @@ -28,7 +28,7 @@ #define TELEMETRY_AVERAGE_COUNT 3 // we actually average one more reading! #define RAW_FRSKY_MINMAX(v) v.values[TELEMETRY_AVERAGE_COUNT-1] -#define MAX_CELLS 6 +#define MAX_CELLS 8 class TelemetryValue { public: diff --git a/radio/src/translations/cn.h b/radio/src/translations/cn.h index 3175bae8c..64f437e70 100644 --- a/radio/src/translations/cn.h +++ b/radio/src/translations/cn.h @@ -278,7 +278,7 @@ #define TR_VSENSORTYPES "自定义","运算" #define TR_VFORMULAS "加","平均值","最小值","最大值","乘","总计值","单节电池","消耗量","距离" #define TR_VPREC "0.--","0.0-","0.00" -#define TR_VCELLINDEX "最低值","1","2","3","4","5","6","最高值","差值" +#define TR_VCELLINDEX "最低值","1","2","3","4","5","6","7","8","最高值","差值" #define TR_TEXT_SIZE "标准","小","较小","中等","双倍" #define TR_SUBTRIMMODES STR_CHAR_DELTA "(中点)", "=(整体)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/cz.h b/radio/src/translations/cz.h index 0e2e902d2..7efbc720e 100644 --- a/radio/src/translations/cz.h +++ b/radio/src/translations/cz.h @@ -296,7 +296,7 @@ #define TR_VSENSORTYPES "Vlastní","Vypočtený" #define TR_VFORMULAS "Součet","Průměr","Min","Max","Násobení","Celkem","Článek","Spotřeba","Vzdálenost" #define TR_VPREC "X","X.X","X.XX" -#define TR_VCELLINDEX "Nízký","1","2","3","4","5","6","Nejvíce","Delta" +#define TR_VCELLINDEX "Nízký","1","2","3","4","5","6","7","8","Nejvíce","Delta" #define TR_SUBTRIMMODES STR_CHAR_DELTA"(pouze středy)","= (symetrický)" #define TR_TIMER_DIR TR("Zbývající", "Zobrazit zbývající"), TR("Uplynulý", "Zobrazit uplynulý") diff --git a/radio/src/translations/da.h b/radio/src/translations/da.h index 983ae413f..d6142a184 100644 --- a/radio/src/translations/da.h +++ b/radio/src/translations/da.h @@ -278,7 +278,7 @@ #define TR_VSENSORTYPES "Tilpasset","Beregnet" #define TR_VFORMULAS "Tillæg","Gennems.","Min","Max","Gange","Sum","Cell","Forbrug","Afstand" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Lavest","1","2","3","4","5","6","Højst","Delta" +#define TR_VCELLINDEX "Lavest","1","2","3","4","5","6","7","8","Højst","Delta" #define TR_TEXT_SIZE "Standard","Tynd","Lille","Medium","Dobbelt" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center kun)","= (symmetrisk)" #define TR_TIMER_DIR TR("Rest", "Vis rest"), TR("Gået tid", "Vis gået tid") diff --git a/radio/src/translations/de.h b/radio/src/translations/de.h index 2d6a0a8f0..755ae2c34 100644 --- a/radio/src/translations/de.h +++ b/radio/src/translations/de.h @@ -281,7 +281,7 @@ #define TR_VSENSORTYPES "Sensor","Berechnung" #define TR_VFORMULAS "Addieren","Mittelwert","Min","Max","Multiplizier","Gesamt","Zelle","Verbrauch","Distanz" #define TR_VPREC "0.--","0.0","0.00" -#define TR_VCELLINDEX "Niedrigst","1. Zelle","2. Zelle","3. Zelle","4. Zelle","5. Zelle","6. Zelle","Höchster","Differenz" +#define TR_VCELLINDEX "Niedrigst","1. Zelle","2. Zelle","3. Zelle","4. Zelle","5. Zelle","6. Zelle","7. Zelle","8. Zelle","Höchster","Differenz" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 9eedec587..adca52bb8 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -278,7 +278,7 @@ #define TR_VSENSORTYPES "Custom","Calculated" #define TR_VFORMULAS "Add","Average","Min","Max","Multiply","Totalize","Cell","Consumpt","Distance" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Lowest","1","2","3","4","5","6","Highest","Delta" +#define TR_VCELLINDEX "Lowest","1","2","3","4","5","6","7","8","Highest","Delta" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symmetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/es.h b/radio/src/translations/es.h index a0f2509da..7c6631fa3 100644 --- a/radio/src/translations/es.h +++ b/radio/src/translations/es.h @@ -278,7 +278,7 @@ #define TR_VSENSORTYPES "Custom","Calculado" #define TR_VFORMULAS "Suma","Media","Min","Máx","Multipl.","Total","Cell","Consumo","Distancia" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Menor","1","2","3","4","5","6","Mayor","Delta" +#define TR_VCELLINDEX "Menor","1","2","3","4","5","6","7","8","Mayor","Delta" #define TR_TEXT_SIZE "Normal","Muy pequeño","Pequeño","Medio","Doble" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/fi.h b/radio/src/translations/fi.h index 9c9c19735..e895280a5 100644 --- a/radio/src/translations/fi.h +++ b/radio/src/translations/fi.h @@ -296,7 +296,7 @@ #define TR_VSENSORTYPES "Custom","Calculated" #define TR_VFORMULAS "Add","Average","Min","Max","Multiply","Totalize","Cell","Kulutus","Etäisyys" #define TR_VPREC "0.--","0.0","0.00" -#define TR_VCELLINDEX "Alin","1","2","3","4","5","6","Korkein","Ero" +#define TR_VCELLINDEX "Alin","1","2","3","4","5","6","7","8","Korkein","Ero" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/fr.h b/radio/src/translations/fr.h index c56e913aa..87e7d299e 100644 --- a/radio/src/translations/fr.h +++ b/radio/src/translations/fr.h @@ -299,7 +299,7 @@ #define TR_VSENSORTYPES "Perso","Calculé" #define TR_VFORMULAS "Addition","Moyenne","Min","Max","Multipl.","Totalise","Elément","Consomm.","Distance" #define TR_VPREC "0.--","0.0","0.00" -#define TR_VCELLINDEX "Mini.","1","2","3","4","5","6","Maxi.","Diff." +#define TR_VCELLINDEX "Mini.","1","2","3","4","5","6","7","8","Maxi.","Diff." #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/it.h b/radio/src/translations/it.h index 81056d7c8..6ac860c53 100644 --- a/radio/src/translations/it.h +++ b/radio/src/translations/it.h @@ -283,7 +283,7 @@ #define TR_VSENSORTYPES "Person.","Calcolato" #define TR_VFORMULAS "Somma","Media","Min","Max","Moltipl","Totalizza","Cella","Consumo","Distanza" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Minore","1","2","3","4","5","6","Maggiore","Delta" +#define TR_VCELLINDEX "Minore","1","2","3","4","5","6","7","8","Maggiore","Delta" #define TR_TEXT_SIZE "Standard","Minusc.","Piccolo","Medio","Doppio" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Riman.", "Mostra Riman."), TR("Trasc.", "Mostra Trascorso") diff --git a/radio/src/translations/nl.h b/radio/src/translations/nl.h index 2333e3b59..5f6374eac 100644 --- a/radio/src/translations/nl.h +++ b/radio/src/translations/nl.h @@ -282,7 +282,7 @@ #define TR_VSENSORTYPES "Custom","Berekend" #define TR_VFORMULAS "Optellen","Gemiddeld","Min","Max","Vermenigvuld","Totaal","Cellen","Verbruik","Afstand" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Laagste","1e Cel","2e Cel","3e Cel","4e Cel","5e Cel","6e Cel","Hoogste","Delta" +#define TR_VCELLINDEX "Laagste","1e Cel","2e Cel","3e Cel","4e Cel","5e Cel","6e Cel","7e Cel","8e Cel","Hoogste","Delta" #define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" diff --git a/radio/src/translations/pl.h b/radio/src/translations/pl.h index bd60132bc..fdd6d1de1 100644 --- a/radio/src/translations/pl.h +++ b/radio/src/translations/pl.h @@ -278,7 +278,7 @@ #define TR_VSENSORTYPES "Użytkownik","Obliczone" #define TR_VFORMULAS "Dodaj","Średnie","Min","Max","Mnóż","Zliczani","Komórka","Zużycie","Zasięg" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Niskie","1","2","3","4","5","6","Wysokie","Delta" +#define TR_VCELLINDEX "Niskie","1","2","3","4","5","6","7","8","Wysokie","Delta" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/pt.h b/radio/src/translations/pt.h index 7a60845cc..b79429e43 100644 --- a/radio/src/translations/pt.h +++ b/radio/src/translations/pt.h @@ -276,7 +276,7 @@ #define TR_VSENSORTYPES "Custom","Calculated" #define TR_VFORMULAS "Add","Average","Min","Max","Multiply","Totalize","Cell","Consumpt","Distance" #define TR_VPREC "0.--","0.0 ","0.00" -#define TR_VCELLINDEX "Lowest","1","2","3","4","5","6","Highest","Delta" +#define TR_VCELLINDEX "Lowest","1","2","3","4","5","6","7","8","Highest","Delta" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed") diff --git a/radio/src/translations/se.h b/radio/src/translations/se.h index 8ab1bf605..acba24494 100644 --- a/radio/src/translations/se.h +++ b/radio/src/translations/se.h @@ -307,7 +307,7 @@ #define TR_VSENSORTYPES "Anpassad","Beräknad" #define TR_VFORMULAS "Addera","Medel","Min","Max","Multipl.","Summa","Cell","Förbrukning","Sträcka" #define TR_VPREC "0.--","0.0","0.00" -#define TR_VCELLINDEX "Lägsta","1","2","3","4","5","6","Högsta","Skillnad" +#define TR_VCELLINDEX "Lägsta","1","2","3","4","5","6","7","8","Högsta","Skillnad" #define TR_GYROS "GyrX","GyrY" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (endast center)","= (symmetrisk)" #define TR_TIMER_DIR TR("Återst.", "Visa återstående"), TR("Förbrukad", "Visa förbrukad") diff --git a/radio/src/translations/tw.h b/radio/src/translations/tw.h index 275629b27..7135d22a8 100644 --- a/radio/src/translations/tw.h +++ b/radio/src/translations/tw.h @@ -278,7 +278,7 @@ #define TR_VSENSORTYPES "自定義","運算" #define TR_VFORMULAS "加","平均值","最小值","最大值","乘","總計值","單節電池","消耗量","距離" #define TR_VPREC "0.--","0.0-","0.00" -#define TR_VCELLINDEX "最低值","1","2","3","4","5","6","最高值","差值" +#define TR_VCELLINDEX "最低值","1","2","3","4","5","6","7","8","最高值","差值" #define TR_TEXT_SIZE "標準","小","較小","中等","雙倍" #define TR_SUBTRIMMODES STR_CHAR_DELTA "(中点)","=(整體)" #define TR_TIMER_DIR TR("Remain", "Show Remain"), TR("Elaps.", "Show Elapsed")