Merge pull request #534 from opentx/kilrah/FAS_Offset_compensation
Kilrah/fas offset compensation
This commit is contained in:
@@ -51,7 +51,8 @@ enum BoardEnum {
|
||||
BOARD_TARANIS_REV4a
|
||||
};
|
||||
|
||||
#define IS_STOCK(board) (board==BOARD_STOCK || board==BOARD_M128)
|
||||
#define IS_9X(board) (board==BOARD_STOCK || board==BOARD_M128)
|
||||
#define IS_STOCK(board) (board==BOARD_STOCK)
|
||||
#define IS_2560(board) (board==BOARD_GRUVIN9X || board==BOARD_MEGA2560)
|
||||
#define IS_ARM(board) (board==BOARD_SKY9X || board==BOARD_TARANIS || board==BOARD_TARANIS_REV4a)
|
||||
#define IS_TARANIS(board) (board==BOARD_TARANIS || board==BOARD_TARANIS_REV4a)
|
||||
@@ -758,6 +759,9 @@ class FrSkyData {
|
||||
int varioCenterMin; // if increment in 0.2m/s = 3.0m/s max
|
||||
int varioCenterMax;
|
||||
int varioMax;
|
||||
bool mAhPersistent;
|
||||
unsigned int storedMah;
|
||||
int fasOffset;
|
||||
|
||||
void clear() { memset(this, 0, sizeof(FrSkyData)); rssiAlarms[0].clear(2, 45); rssiAlarms[1].clear(3, 42); varioSource = 2/*VARIO*/; }
|
||||
};
|
||||
@@ -1015,7 +1019,9 @@ enum Capability {
|
||||
LuaInputs,
|
||||
LimitsPer1000,
|
||||
EnhancedCurves,
|
||||
TelemetryInternalAlarms
|
||||
TelemetryInternalAlarms,
|
||||
HasFasOffset,
|
||||
HasMahPersistent
|
||||
};
|
||||
|
||||
enum UseContext {
|
||||
|
||||
@@ -1717,10 +1717,9 @@ class FrskyField: public StructField {
|
||||
Append(new ConversionField< SignedField<6> >(frsky.rssiAlarms[i].value, -45+i*3));
|
||||
}
|
||||
if (version >= 216) {
|
||||
// TODO uint16_t mAhPersistent:1;
|
||||
// uint16_t storedMah:15;
|
||||
// int8_t fasOffset;
|
||||
Append(new SpareBitsField<24>());
|
||||
Append(new BoolField<1>(frsky.mAhPersistent));
|
||||
Append(new UnsignedField<15>(frsky.storedMah));
|
||||
Append(new SignedField<8>(frsky.fasOffset));
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -2044,7 +2043,7 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE
|
||||
internalField.Append(new SpareBitsField<1>());
|
||||
|
||||
internalField.Append(new UnsignedField<8>(generalData.inactivityTimer));
|
||||
if (IS_STOCK(board) && version >= 215) {
|
||||
if (IS_9X(board) && version >= 215) {
|
||||
internalField.Append(new UnsignedField<3>(generalData.mavbaud));
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -690,6 +690,10 @@ int Open9xInterface::getCapability(const Capability capability)
|
||||
case EnhancedCurves:
|
||||
case TelemetryInternalAlarms:
|
||||
return IS_TARANIS(board);
|
||||
case HasFasOffset:
|
||||
return (IS_STOCK(board) ? false : true);
|
||||
case HasMahPersistent:
|
||||
return (IS_ARM(board) ? true : false);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@@ -1050,6 +1054,7 @@ void RegisterOpen9xFirmwares()
|
||||
open9x->addOption("novario", QObject::tr("No vario support"));
|
||||
open9x->addOption("nogps", QObject::tr("No GPS support"));
|
||||
open9x->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen"));
|
||||
open9x->addOption("fasoffset", QObject::tr("Allow compensating for offset errors in FrSky FAS current sensors"));
|
||||
open9x->addOptions(fai_options);
|
||||
firmwares.push_back(open9x);
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ void TelemetryPanel::setup()
|
||||
else {
|
||||
ui->AltitudeGPS_ChkB->setChecked(model.frsky.FrSkyGpsAlt);
|
||||
}
|
||||
|
||||
|
||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||
ui->AltitudeToolbar_ChkB->setChecked(model.frsky.altitudeDisplayed);
|
||||
}
|
||||
@@ -484,6 +484,32 @@ void TelemetryPanel::setup()
|
||||
} else {
|
||||
ui->frskyProtoCB->addItem(tr("Winged Shadow How High (not supported)"));
|
||||
}
|
||||
|
||||
ui->variousGB->hide();
|
||||
if (!(GetEepromInterface()->getCapability(HasFasOffset)) && !(firmware_id.contains("fasoffset"))) {
|
||||
ui->fasOffset_label->hide();
|
||||
ui->fasOffset_DSB->hide();
|
||||
}
|
||||
else {
|
||||
ui->fasOffset_DSB->setValue(model.frsky.fasOffset/10.0);
|
||||
ui->variousGB->show();
|
||||
}
|
||||
|
||||
if (!(GetEepromInterface()->getCapability(HasMahPersistent))) {
|
||||
ui->mahCount_label->hide();
|
||||
ui->mahCount_SB->hide();
|
||||
ui->mahCount_ChkB->hide();
|
||||
}
|
||||
else {
|
||||
if (model.frsky.mAhPersistent) {
|
||||
ui->mahCount_ChkB->setChecked(true);
|
||||
ui->mahCount_SB->setValue(model.frsky.storedMah);
|
||||
}
|
||||
else {
|
||||
ui->mahCount_SB->setDisabled(true);
|
||||
}
|
||||
ui->variousGB->show();
|
||||
}
|
||||
|
||||
ui->frskyProtoCB->setCurrentIndex(model.frsky.usrProto);
|
||||
ui->frskyUnitsCB->setCurrentIndex(model.frsky.imperial);
|
||||
@@ -717,6 +743,25 @@ void TelemetryPanel::on_varioLimitCenterMax_DSB_editingFinished()
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void TelemetryPanel::on_fasOffset_DSB_editingFinished()
|
||||
{
|
||||
model.frsky.fasOffset = ui->fasOffset_DSB->value()*10;
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void TelemetryPanel::on_mahCount_SB_editingFinished()
|
||||
{
|
||||
model.frsky.storedMah = ui->mahCount_SB->value();
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void TelemetryPanel::on_mahCount_ChkB_toggled(bool checked)
|
||||
{
|
||||
model.frsky.mAhPersistent = checked;
|
||||
ui->mahCount_SB->setDisabled(!checked);
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void TelemetryPanel::telBarUpdate()
|
||||
{
|
||||
int index;
|
||||
|
||||
@@ -74,6 +74,9 @@ class TelemetryPanel : public ModelPanel
|
||||
void on_varioLimitCenterMin_DSB_editingFinished();
|
||||
void on_varioLimitMinOff_ChkB_toggled(bool checked);
|
||||
void on_varioLimitCenterMax_DSB_editingFinished();
|
||||
void on_fasOffset_DSB_editingFinished();
|
||||
void on_mahCount_SB_editingFinished();
|
||||
void on_mahCount_ChkB_toggled(bool checked);
|
||||
void telBarCBcurrentIndexChanged(int index);
|
||||
void ScreenTypeCBcurrentIndexChanged(int index);
|
||||
void telMaxSBeditingFinished();
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>692</width>
|
||||
<height>540</height>
|
||||
<height>568</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0,1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0,0,1">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_14" stretch="0,0,0">
|
||||
<property name="sizeConstraint">
|
||||
@@ -770,6 +770,106 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="variousGB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Various</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<property name="topMargin">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="mahCount_SB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>32767</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" alignment="Qt::AlignHCenter">
|
||||
<widget class="QLabel" name="mahCount_label">
|
||||
<property name="text">
|
||||
<string>mAh count</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" alignment="Qt::AlignHCenter">
|
||||
<widget class="QLabel" name="fasOffset_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>FAS Offset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="mahCount_ChkB">
|
||||
<property name="text">
|
||||
<string>Persistent mAh</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QDoubleSpinBox" name="fasOffset_DSB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<double>-1.500000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>1.500000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>0.100000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
|
||||
@@ -159,6 +159,10 @@ PPM_UNIT = PERCENT_PREC1
|
||||
# Values = YES, NO
|
||||
FRSKY_HUB = YES
|
||||
|
||||
# FrSky FAS current sensor offset compensation
|
||||
# Values = YES, NO
|
||||
FAS_OFFSET = NO
|
||||
|
||||
# WS HowHigh
|
||||
# Values = YES, NO
|
||||
WS_HOW_HIGH = YES
|
||||
@@ -332,6 +336,10 @@ ifeq ($(PCB), $(filter $(PCB), STD 9X 9XR))
|
||||
ifeq ($(SP22), YES)
|
||||
CPPDEFS += -DSP22
|
||||
endif
|
||||
|
||||
ifeq ($(FAS_OFFSET), YES)
|
||||
CPPDEFS += -DFAS_OFFSET
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PCB), $(filter $(PCB), STD128 9X128 9XR128))
|
||||
|
||||
@@ -5167,6 +5167,9 @@ enum menuModelTelemetryItems {
|
||||
#endif
|
||||
ITEM_TELEMETRY_USR_VOLTAGE_SOURCE,
|
||||
ITEM_TELEMETRY_USR_CURRENT_SOURCE,
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
ITEM_TELEMETRY_FAS_OFFSET,
|
||||
#endif
|
||||
#if defined(CPUARM)
|
||||
ITEM_TELEMTETRY_PERSISTENT_MAH,
|
||||
#endif
|
||||
@@ -5247,9 +5250,15 @@ enum menuModelTelemetryItems {
|
||||
#define VARIO_RANGE_ROWS 3
|
||||
#endif
|
||||
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
#define IF_FAS_OFFSET(x) x,
|
||||
#else
|
||||
#define IF_FAS_OFFSET(x)
|
||||
#endif
|
||||
|
||||
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_CPUARM(0) IF_VARIO(LABEL(Vario)) IF_VARIO(0) IF_VARIO(VARIO_RANGE_ROWS) CASE_PCBTARANIS(LABEL(TopBar)) CASE_PCBTARANIS(0) 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_FAS_OFFSET(0) IF_CPUARM(0) IF_VARIO(LABEL(Vario)) IF_VARIO(0) IF_VARIO(VARIO_RANGE_ROWS) CASE_PCBTARANIS(LABEL(TopBar)) CASE_PCBTARANIS(0) 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;
|
||||
|
||||
@@ -5419,6 +5428,16 @@ void menuModelTelemetry(uint8_t event)
|
||||
lcd_putsiAtt(TELEM_COL2, y, STR_VOLTSRC, g_model.frsky.currentSource, attr);
|
||||
if (attr) CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.currentSource, 3);
|
||||
break;
|
||||
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
case ITEM_TELEMETRY_FAS_OFFSET:
|
||||
lcd_putsLeft(y, STR_FAS_OFFSET);
|
||||
lcd_outdezAtt(TELEM_COL2, y, g_model.frsky.fasOffset, attr|LEFT|PREC1);
|
||||
lcd_outdezAtt(TELEM_COL2+6*FW, y, frskyData.hub.current, LEFT|PREC1);
|
||||
lcd_putc(TELEM_COL2+8*FW, y, 'A');
|
||||
if (attr) g_model.frsky.fasOffset = checkIncDec(event, g_model.frsky.fasOffset, -15, 15, EE_MODEL);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
case ITEM_TELEMTETRY_PERSISTENT_MAH:
|
||||
|
||||
@@ -191,6 +191,12 @@ void parseTelemHubByte(uint8_t byte)
|
||||
break;
|
||||
|
||||
case offsetof(FrskySerialData, current):
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
if(((int16_t)frskyData.hub.current + g_model.frsky.fasOffset)>0)
|
||||
frskyData.hub.current += g_model.frsky.fasOffset;
|
||||
else
|
||||
frskyData.hub.current = 0;
|
||||
#endif
|
||||
if (frskyData.hub.current > frskyData.hub.maxCurrent)
|
||||
frskyData.hub.maxCurrent = frskyData.hub.current;
|
||||
break;
|
||||
|
||||
@@ -200,6 +200,10 @@ void processHubPacket(uint8_t id, uint16_t value)
|
||||
break;
|
||||
|
||||
case CURRENT_ID:
|
||||
if(((int16_t)frskyData.hub.current + g_model.frsky.fasOffset)>0)
|
||||
frskyData.hub.current += g_model.frsky.fasOffset;
|
||||
else
|
||||
frskyData.hub.current = 0;
|
||||
if (frskyData.hub.current > frskyData.hub.maxCurrent)
|
||||
frskyData.hub.maxCurrent = frskyData.hub.current;
|
||||
break;
|
||||
@@ -382,6 +386,10 @@ void processSportPacket(uint8_t *packet)
|
||||
}
|
||||
else if (appId >= CURR_FIRST_ID && appId <= CURR_LAST_ID) {
|
||||
frskyData.hub.current = SPORT_DATA_U32(packet);
|
||||
if(((int16_t)frskyData.hub.current + g_model.frsky.fasOffset)>0)
|
||||
frskyData.hub.current += g_model.frsky.fasOffset;
|
||||
else
|
||||
frskyData.hub.current = 0;
|
||||
if (frskyData.hub.current > frskyData.hub.maxCurrent)
|
||||
frskyData.hub.maxCurrent = frskyData.hub.current;
|
||||
}
|
||||
|
||||
@@ -267,6 +267,10 @@ const pm_char STR_EEPROMOVERFLOW[] PROGMEM = TR_EEPROMOVERFLOW;
|
||||
const pm_char STR_TRIMS2OFFSETS[] PROGMEM = TR_TRIMS2OFFSETS;
|
||||
const pm_char STR_MENURADIOSETUP[] PROGMEM = TR_MENURADIOSETUP;
|
||||
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
const pm_char STR_FAS_OFFSET[] PROGMEM = TR_FAS_OFFSET;
|
||||
#endif
|
||||
|
||||
#if defined(CPUM2560) || defined(CPUARM)
|
||||
const pm_char STR_MENUDATEANDTIME[] PROGMEM = TR_MENUDATEANDTIME;
|
||||
#endif
|
||||
|
||||
@@ -448,6 +448,10 @@ extern const pm_char STR_INVERT_THR[];
|
||||
extern const pm_char STR_AND_SWITCH[];
|
||||
extern const pm_char STR_CF[];
|
||||
|
||||
#if defined(FAS_OFFSET) || !defined(CPUM64)
|
||||
extern const pm_char STR_FAS_OFFSET[];
|
||||
#endif
|
||||
|
||||
#if defined(DSM2) || defined(PXX)
|
||||
extern const pm_char STR_RXNUM[];
|
||||
#endif
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
#define TR_LOWALARM INDENT "Nízký Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritický Alarm"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -663,6 +663,7 @@
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritisch Alarm"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -667,6 +667,7 @@
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Critical Alarm"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
#define TR_LOWALARM INDENT "Alarme basse"
|
||||
#define TR_CRITICALALARM INDENT "Alarme critique"
|
||||
#define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh",INDENT "Enregistrer mAh")
|
||||
#define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
#define TR_LOWALARM INDENT "Allarme Basso"
|
||||
#define TR_CRITICALALARM INDENT "Allarme Critico"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -661,6 +661,7 @@
|
||||
#define TR_LOWALARM INDENT "Alarm niski"
|
||||
#define TR_CRITICALALARM INDENT "Alarm krytyczny"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -660,6 +660,7 @@
|
||||
#define TR_LOWALARM INDENT "Low Alarm"
|
||||
#define TR_CRITICALALARM INDENT "Critical Alarm"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
@@ -663,6 +663,7 @@
|
||||
#define TR_LOWALARM INDENT "Låg-alarm"
|
||||
#define TR_CRITICALALARM INDENT "Kritiskt alarm"
|
||||
#define TR_PERSISTENT_MAH INDENT "Store mAh"
|
||||
#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset")
|
||||
|
||||
#if defined(MAVLINK)
|
||||
#define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI"
|
||||
|
||||
Reference in New Issue
Block a user