diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h
index 14a8793a1..f91e6e70c 100644
--- a/companion/src/eeprominterface.h
+++ b/companion/src/eeprominterface.h
@@ -962,7 +962,8 @@ class SensorData {
TELEM_FORMULA_CELL,
TELEM_FORMULA_CONSUMPTION,
TELEM_FORMULA_DIST,
- TELEM_FORMULA_LAST = TELEM_FORMULA_DIST
+ TELEM_FORMULA_CONSTANT,
+ TELEM_FORMULA_LAST = TELEM_FORMULA_CONSTANT
};
enum {
diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp
index 9a399397f..c23938360 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.cpp
+++ b/companion/src/firmwares/opentx/opentxeeprom.cpp
@@ -2891,6 +2891,8 @@ class SensorField: public TransformedField {
_param = (sensor.gps) + (sensor.alt << 8);
else if (sensor.formula == SensorData::TELEM_FORMULA_CONSUMPTION || sensor.formula == SensorData::TELEM_FORMULA_TOTALIZE)
_param = (sensor.amps);
+ else if (sensor.formula == SensorData::TELEM_FORMULA_CONSTANT)
+ _offset = sensor.offset;
}
}
@@ -2914,6 +2916,8 @@ class SensorField: public TransformedField {
(sensor.gps = _sources[0], sensor.alt = _sources[1]);
else if (sensor.formula == SensorData::TELEM_FORMULA_CONSUMPTION || sensor.formula == SensorData::TELEM_FORMULA_TOTALIZE)
sensor.amps = _sources[0];
+ else if (sensor.formula == SensorData::TELEM_FORMULA_CONSTANT)
+ sensor.offset = _offset;
}
eepromImportDebug() << QString("imported %1").arg(internalField.getName());
}
diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp
index 9f997a47b..aee1be918 100644
--- a/companion/src/modeledit/telemetry.cpp
+++ b/companion/src/modeledit/telemetry.cpp
@@ -529,13 +529,16 @@ TelemetrySensorPanel::~TelemetrySensorPanel()
void TelemetrySensorPanel::update()
{
bool isConfigurable = false;
+ bool isUnitConfigurable = false;
+ bool isPrecConfigurable = false;
bool gpsFieldsDisplayed = false;
bool cellsFieldsDisplayed = false;
- bool consFieldsDisplayed = false;
+ bool consumptionFieldsDisplayed = false;
bool ratioFieldsDisplayed = false;
bool totalizeFieldsDisplayed = false;
bool sources12FieldsDisplayed = false;
bool sources34FieldsDisplayed = false;
+ bool constantFieldDisplayed = false;
lock = true;
ui->name->setText(sensor.label);
@@ -552,12 +555,15 @@ void TelemetrySensorPanel::update()
ui->formula->show();
ui->formula->setCurrentIndex(sensor.formula);
isConfigurable = (sensor.formula < SensorData::TELEM_FORMULA_CELL);
+ isUnitConfigurable = isConfigurable || (sensor.formula == SensorData::TELEM_FORMULA_DIST || sensor.formula == SensorData::TELEM_FORMULA_CONSTANT);
+ isPrecConfigurable = isUnitConfigurable || sensor.unit == SensorData::UNIT_CELLS;
gpsFieldsDisplayed = (sensor.formula == SensorData::TELEM_FORMULA_DIST);
cellsFieldsDisplayed = (sensor.formula == SensorData::TELEM_FORMULA_CELL);
- consFieldsDisplayed = (sensor.formula == SensorData::TELEM_FORMULA_CONSUMPTION);
+ consumptionFieldsDisplayed = (sensor.formula == SensorData::TELEM_FORMULA_CONSUMPTION);
sources12FieldsDisplayed = (sensor.formula <= SensorData::TELEM_FORMULA_MULTIPLY);
sources34FieldsDisplayed = (sensor.formula < SensorData::TELEM_FORMULA_MULTIPLY);
totalizeFieldsDisplayed = (sensor.formula == SensorData::TELEM_FORMULA_TOTALIZE);
+ constantFieldDisplayed = (sensor.formula == SensorData::TELEM_FORMULA_CONSTANT);
updateSourcesComboBox(ui->source1, true);
updateSourcesComboBox(ui->source2, true);
updateSourcesComboBox(ui->source3, true);
@@ -600,16 +606,17 @@ void TelemetrySensorPanel::update()
ui->ratio->setVisible(ratioFieldsDisplayed);
ui->offsetLabel->setVisible(ratioFieldsDisplayed && sensor.unit != SensorData::UNIT_RPMS);
ui->multiplierLabel->setVisible(sensor.unit == SensorData::UNIT_RPMS);
- ui->offset->setVisible(ratioFieldsDisplayed);
- ui->precLabel->setVisible(isConfigurable && sensor.unit != SensorData::UNIT_FAHRENHEIT);
- ui->prec->setVisible(isConfigurable && sensor.unit != SensorData::UNIT_FAHRENHEIT);
- ui->unit->setVisible((sensor.type == SensorData::TELEM_TYPE_CALCULATED && (sensor.formula == SensorData::TELEM_FORMULA_DIST)) || isConfigurable);
+ ui->valueLabel->setVisible(constantFieldDisplayed);
+ ui->offset->setVisible(ratioFieldsDisplayed || constantFieldDisplayed );
+ ui->precLabel->setVisible(isPrecConfigurable && sensor.unit != SensorData::UNIT_FAHRENHEIT);
+ ui->prec->setVisible(isPrecConfigurable && sensor.unit != SensorData::UNIT_FAHRENHEIT);
+ ui->unit->setVisible(isUnitConfigurable);
ui->gpsSensorLabel->setVisible(gpsFieldsDisplayed);
ui->gpsSensor->setVisible(gpsFieldsDisplayed);
ui->altSensorLabel->setVisible(gpsFieldsDisplayed);
ui->altSensor->setVisible(gpsFieldsDisplayed);
- ui->ampsSensorLabel->setVisible(consFieldsDisplayed || totalizeFieldsDisplayed);
- ui->ampsSensor->setVisible(consFieldsDisplayed || totalizeFieldsDisplayed);
+ ui->ampsSensorLabel->setVisible(consumptionFieldsDisplayed || totalizeFieldsDisplayed);
+ ui->ampsSensor->setVisible(consumptionFieldsDisplayed || totalizeFieldsDisplayed);
ui->cellsSensorLabel->setVisible(cellsFieldsDisplayed);
ui->cellsSensor->setVisible(cellsFieldsDisplayed);
ui->cellsIndex->setVisible(cellsFieldsDisplayed);
diff --git a/companion/src/modeledit/telemetry_sensor.ui b/companion/src/modeledit/telemetry_sensor.ui
index 046aeb3eb..c5c65c574 100644
--- a/companion/src/modeledit/telemetry_sensor.ui
+++ b/companion/src/modeledit/telemetry_sensor.ui
@@ -167,6 +167,11 @@
Dist
+ -
+
+ Constant
+
+
-
@@ -565,6 +570,13 @@
+ -
+
+
+ Value
+
+
+
-
diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h
index 294154582..eb4d6dbfd 100644
--- a/radio/src/datastructs.h
+++ b/radio/src/datastructs.h
@@ -664,6 +664,10 @@ PACK(struct TelemetrySensor {
uint8_t alt;
uint16_t spare;
}) dist;
+ PACK(struct {
+ uint8_t spare[2];
+ int16_t value;
+ }) constant;
uint32_t param;
};
NOBACKUP(
@@ -673,6 +677,7 @@ PACK(struct TelemetrySensor {
int32_t getValue(int32_t value, uint8_t unit, uint8_t prec) const;
bool isConfigurable() const;
bool isPrecConfigurable() const;
+ bool isUnitConfigurable() const;
int32_t getPrecMultiplier() const;
int32_t getPrecDivisor() const);
});
diff --git a/radio/src/gui/9x/menu_model_telemetry.cpp b/radio/src/gui/9x/menu_model_telemetry.cpp
index 2e4d2a524..cbf10d26f 100644
--- a/radio/src/gui/9x/menu_model_telemetry.cpp
+++ b/radio/src/gui/9x/menu_model_telemetry.cpp
@@ -344,6 +344,14 @@ void menuModelSensor(uint8_t event)
}
break;
}
+ else if (sensor->formula == TELEM_FORMULA_CONSTANT) {
+ lcd_putsLeft(y, STR_VALUE);
+ if (attr)
+ sensor->custom.offset = checkIncDec(event, sensor->constant.value, -30000, +30000, EE_MODEL|NO_INCDEC_MARKS|INCDEC_REP10);
+ if (sensor->prec > 0) attr |= (sensor->prec == 2 ? PREC2 : PREC1);
+ lcdDrawNumber(SENSOR_2ND_COLUMN, y, sensor->constant.value, LEFT|attr);
+ break;
+ }
}
else {
if (sensor->unit == UNIT_RPMS) {
diff --git a/radio/src/gui/horus/menu_model_telemetry.cpp b/radio/src/gui/horus/menu_model_telemetry.cpp
index 22a600e5a..53a8106b5 100644
--- a/radio/src/gui/horus/menu_model_telemetry.cpp
+++ b/radio/src/gui/horus/menu_model_telemetry.cpp
@@ -112,10 +112,10 @@ enum SensorFields {
#define SENSOR_2ND_COLUMN 140
#define SENSOR_3RD_COLUMN 280
-#define SENSOR_UNIT_ROWS ((sensor->type == TELEM_TYPE_CALCULATED && (sensor->formula == TELEM_FORMULA_DIST)) || sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
+#define SENSOR_UNIT_ROWS (sensor->isUnitConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
#define SENSOR_PREC_ROWS (sensor->isPrecConfigurable() && sensor->unit != UNIT_FAHRENHEIT ? (uint8_t)0 : HIDDEN_ROW)
#define SENSOR_PARAM1_ROWS (sensor->unit >= UNIT_FIRST_VIRTUAL ? HIDDEN_ROW : (uint8_t)0)
-#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE)) ? HIDDEN_ROW : (uint8_t)0)
+#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE || sensor->formula==TELEM_FORMULA_CONSTANT)) ? HIDDEN_ROW : (uint8_t)0)
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
#define SENSOR_AUTOOFFSET_ROWS (sensor->unit != UNIT_RPMS && sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
@@ -259,6 +259,13 @@ bool menuModelSensor(evt_t event)
}
break;
}
+ else if (sensor->formula == TELEM_FORMULA_CONSTANT) {
+ lcdDrawText(MENUS_MARGIN_LEFT, y, STR_VALUE);
+ if (attr) sensor->custom.offset = checkIncDec(event, sensor->constant.value, -30000, +30000, EE_MODEL|NO_INCDEC_MARKS|INCDEC_REP10);
+ if (sensor->prec > 0) attr |= (sensor->prec == 2 ? PREC2 : PREC1);
+ lcdDrawNumber(SENSOR_2ND_COLUMN, y, sensor->constant.value, LEFT|attr);
+ break;
+ }
}
else {
if (sensor->unit == UNIT_RPMS) {
diff --git a/radio/src/gui/taranis/menu_model_telemetry.cpp b/radio/src/gui/taranis/menu_model_telemetry.cpp
index e16c027df..0a58c2a90 100644
--- a/radio/src/gui/taranis/menu_model_telemetry.cpp
+++ b/radio/src/gui/taranis/menu_model_telemetry.cpp
@@ -111,10 +111,10 @@ enum SensorFields {
#define SENSOR_2ND_COLUMN (12*FW)
#define SENSOR_3RD_COLUMN (18*FW)
-#define SENSOR_UNIT_ROWS ((sensor->type == TELEM_TYPE_CALCULATED && (sensor->formula == TELEM_FORMULA_DIST)) || sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
+#define SENSOR_UNIT_ROWS (sensor->isUnitConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
#define SENSOR_PREC_ROWS (sensor->isPrecConfigurable() && sensor->unit != UNIT_FAHRENHEIT ? (uint8_t)0 : HIDDEN_ROW)
#define SENSOR_PARAM1_ROWS (sensor->unit >= UNIT_FIRST_VIRTUAL ? HIDDEN_ROW : (uint8_t)0)
-#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE)) ? HIDDEN_ROW : (uint8_t)0)
+#define SENSOR_PARAM2_ROWS (sensor->unit == UNIT_GPS || sensor->unit == UNIT_DATETIME || sensor->unit == UNIT_CELLS || (sensor->type==TELEM_TYPE_CALCULATED && (sensor->formula==TELEM_FORMULA_CONSUMPTION || sensor->formula==TELEM_FORMULA_TOTALIZE) || sensor->formula==TELEM_FORMULA_CONSTANT) ? HIDDEN_ROW : (uint8_t)0)
#define SENSOR_PARAM3_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
#define SENSOR_PARAM4_ROWS (sensor->type == TELEM_TYPE_CALCULATED && sensor->formula < TELEM_FORMULA_MULTIPLY) ? (uint8_t)0 : HIDDEN_ROW
#define SENSOR_AUTOOFFSET_ROWS (sensor->unit != UNIT_RPMS && sensor->isConfigurable() ? (uint8_t)0 : HIDDEN_ROW)
@@ -256,6 +256,14 @@ void menuModelSensor(uint8_t event)
}
break;
}
+ else if (sensor->formula == TELEM_FORMULA_CONSTANT) {
+ lcd_putsLeft(y, STR_VALUE);
+ if (attr) sensor->custom.offset = checkIncDec(event, sensor->constant.value, -30000, +30000, EE_MODEL|NO_INCDEC_MARKS|INCDEC_REP10);
+ if (sensor->prec > 0) attr |= (sensor->prec == 2 ? PREC2 : PREC1);
+ lcdDrawNumber(SENSOR_2ND_COLUMN, y, sensor->constant.value, LEFT|attr);
+ break;
+ }
+
}
else {
if (sensor->unit == UNIT_RPMS) {
diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h
index 71dd5ab26..bae913d26 100644
--- a/radio/src/myeeprom.h
+++ b/radio/src/myeeprom.h
@@ -375,7 +375,8 @@ enum TelemetrySensorFormula
TELEM_FORMULA_CELL,
TELEM_FORMULA_CONSUMPTION,
TELEM_FORMULA_DIST,
- TELEM_FORMULA_LAST = TELEM_FORMULA_DIST
+ TELEM_FORMULA_CONSTANT,
+ TELEM_FORMULA_LAST = TELEM_FORMULA_CONSTANT
};
#endif
diff --git a/radio/src/telemetry/telemetry_sensors.cpp b/radio/src/telemetry/telemetry_sensors.cpp
index 3654ddc4d..ac11968c4 100644
--- a/radio/src/telemetry/telemetry_sensors.cpp
+++ b/radio/src/telemetry/telemetry_sensors.cpp
@@ -428,6 +428,9 @@ void TelemetryItem::eval(const TelemetrySensor & sensor)
setValue(sensor, value, sensor.unit, sensor.prec);
break;
}
+ case TELEM_FORMULA_CONSTANT:
+ setValue(sensor, sensor.constant.value, sensor.unit, sensor.prec);
+ break;
default:
break;
@@ -629,6 +632,19 @@ bool TelemetrySensor::isConfigurable() const
return true;
}
+bool TelemetrySensor::isUnitConfigurable() const
+{
+ if (isConfigurable()) {
+ return true;
+ }
+ else if (type == TELEM_TYPE_CALCULATED && (formula == TELEM_FORMULA_DIST || formula == TELEM_FORMULA_CONSTANT)) {
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
bool TelemetrySensor::isPrecConfigurable() const
{
if (isConfigurable()) {
@@ -637,6 +653,9 @@ bool TelemetrySensor::isPrecConfigurable() const
else if (unit == UNIT_CELLS) {
return true;
}
+ else if (type == TELEM_TYPE_CALCULATED && formula == TELEM_FORMULA_CONSTANT) {
+ return true;
+ }
else {
return false;
}
diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt
index ee1f720a4..aa9f22565 100644
--- a/radio/src/translations/cz.h.txt
+++ b/radio/src/translations/cz.h.txt
@@ -596,7 +596,7 @@
#define TR_VSENSORTYPES "Vlastní\0 ""Vypočtený"
#define LEN_VFORMULAS "\012"
-#define TR_VFORMULAS "Součet\0 ""Průměr\0 ""Min\0 ""Max\0 ""Násobení ""Totalize ""Článek\0 ""Spotřeba ""Vzdálenost"
+#define TR_VFORMULAS "Součet\0 ""Průměr\0 ""Min\0 ""Max\0 ""Násobení ""Totalize ""Článek\0 ""Spotřeba ""Vzdálenost""Constant\0 "
#define LEN_VPREC "\004"
#define TR_VPREC "X ""X.X ""X.XX"
diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt
index 1b59ddc0b..d7d4c8585 100644
--- a/radio/src/translations/de.h.txt
+++ b/radio/src/translations/de.h.txt
@@ -600,7 +600,7 @@
#define TR_VSENSORTYPES "Sensor\0 ""Berechnung"
#define LEN_VFORMULAS "\014" // "\10" ursprünglich
-#define TR_VFORMULAS "Addieren\0 ""Mittelwert\0 ""Min\0 ""Max\0 ""Multiplizier""Gesamt\0 ""Zelle\0 ""Verbrauch\0 ""Distanz\0 "
+#define TR_VFORMULAS "Addieren\0 ""Mittelwert\0 ""Min\0 ""Max\0 ""Multiplizier""Gesamt\0 ""Zelle\0 ""Verbrauch\0 ""Distanz\0 ""Konstante\0 "
#define LEN_VPREC "\004" // "\005" Prec0 Prec1 Prec2 ursprünglich
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt
index 1cb043b23..dc002291e 100644
--- a/radio/src/translations/en.h.txt
+++ b/radio/src/translations/en.h.txt
@@ -608,7 +608,7 @@
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
#define LEN_VFORMULAS "\010"
-#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
+#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance""Constant"
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt
index 7b159d3fd..ca5f6df01 100644
--- a/radio/src/translations/es.h.txt
+++ b/radio/src/translations/es.h.txt
@@ -581,7 +581,7 @@
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
#define LEN_VFORMULAS "\010"
-#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
+#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance""Constant"
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt
index d6b752082..1379d1d99 100644
--- a/radio/src/translations/fi.h.txt
+++ b/radio/src/translations/fi.h.txt
@@ -581,7 +581,7 @@
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
#define LEN_VFORMULAS "\010"
-#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
+#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance""Constant"
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt
index 75d3acadd..08532bf2d 100644
--- a/radio/src/translations/fr.h.txt
+++ b/radio/src/translations/fr.h.txt
@@ -595,7 +595,7 @@
#define TR_VSENSORTYPES "Perso\0 ""Calculé\0 "
#define LEN_VFORMULAS "\010"
-#define TR_VFORMULAS "Addition""Moyenne\0""Min\0 ""Max\0 ""Multipl.""Totalise""Elément\0""Consomm.""Distance"
+#define TR_VFORMULAS "Addition""Moyenne\0""Min\0 ""Max\0 ""Multipl.""Totalise""Elément\0""Consomm.""Distance""Constant"
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt
index 5d7ab3e20..93379810d 100644
--- a/radio/src/translations/it.h.txt
+++ b/radio/src/translations/it.h.txt
@@ -595,7 +595,7 @@
#define TR_VSENSORTYPES "Custom\0 ""Calcolato\0"
#define LEN_VFORMULAS "\011"
-#define TR_VFORMULAS "Somma\0 ""Media\0 ""Min\0 ""Max\0 ""Moltipl\0 ""Totalizza""Cella\0 ""Consumo\0 ""Distanza\0"
+#define TR_VFORMULAS "Somma\0 ""Media\0 ""Min\0 ""Max\0 ""Moltipl\0 ""Totalizza""Cella\0 ""Consumo\0 ""Distanza\0""Constant\0"
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt
index aadb28954..dac314eca 100644
--- a/radio/src/translations/nl.h.txt
+++ b/radio/src/translations/nl.h.txt
@@ -600,7 +600,7 @@
#define TR_VSENSORTYPES "Custom\0 ""Berekend"
#define LEN_VFORMULAS "\014"
-#define TR_VFORMULAS "Optellen\0 ""Gemiddeld\0 ""Min\0 ""Max\0 ""Vermenigvuld""Totaal\0 ""Cellen\0 ""Verbruik\0 ""Afstand\0 "
+#define TR_VFORMULAS "Optellen\0 ""Gemiddeld\0 ""Min\0 ""Max\0 ""Vermenigvuld""Totaal\0 ""Cellen\0 ""Verbruik\0 ""Afstand\0 ""Constant\0 "
diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt
index 3e37d679f..e5a692960 100644
--- a/radio/src/translations/pl.h.txt
+++ b/radio/src/translations/pl.h.txt
@@ -597,7 +597,7 @@
#define TR_VSENSORTYPES "Użytkownik""Obliczone "
#define LEN_VFORMULAS "\010" /*8 decimal*/
-#define TR_VFORMULAS "Dodaj\0 ""Średnie\0""Min\0 ""Max\0 ""Mnóż\0 ""Zliczani""Komórka\0""Zużycie\0""Zasięg\0 "
+#define TR_VFORMULAS "Dodaj\0 ""Średnie\0""Min\0 ""Max\0 ""Mnóż\0 ""Zliczani""Komórka\0""Zużycie\0""Zasięg\0 ""Constant"
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"
diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt
index 64cd03599..fb15d6890 100644
--- a/radio/src/translations/pt.h.txt
+++ b/radio/src/translations/pt.h.txt
@@ -577,7 +577,7 @@
#define TR_VSENSORTYPES "Custom\0 ""Calculated"
#define LEN_VFORMULAS "\010"
-#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance"
+#define TR_VFORMULAS "Add\0 ""Average\0""Min\0 ""Max\0 ""Multiply""Totalize""Cell\0 ""Consumpt""Distance""Constant"
#define LEN_VPREC "\005"
#define TR_VPREC "PREC0""PREC1""PREC2"
diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt
index 828eb92d4..e685f9fea 100644
--- a/radio/src/translations/se.h.txt
+++ b/radio/src/translations/se.h.txt
@@ -606,7 +606,7 @@
#define TR_VSENSORTYPES "Egen\0 ""Beräknad"
#define LEN_VFORMULAS "\014"
-#define TR_VFORMULAS "Addera\0 ""Medelvärde\0 ""Min\0 ""Max\0 ""Multiplicera""Totalsumma\0 ""Cell\0 ""Förbrukning ""Sträcka "
+#define TR_VFORMULAS "Addera\0 ""Medelvärde\0 ""Min\0 ""Max\0 ""Multiplicera""Totalsumma\0 ""Cell\0 ""Förbrukning ""Sträcka ""Constant\0 "
#define LEN_VPREC "\004"
#define TR_VPREC "0.--""0.0 ""0.00"