From 6e58c88b71b1dae7e3309d5c8e6364d58693ea7d Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 13 Aug 2019 23:14:30 +0200 Subject: [PATCH] fixed rssi alarms moved FrskyField to Frsky218Field and created VarioField --- companion/src/firmwares/modeldata.h | 1 + .../src/firmwares/opentx/opentxeeprom.cpp | 37 ++++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/companion/src/firmwares/modeldata.h b/companion/src/firmwares/modeldata.h index c4c0b0854..732434434 100644 --- a/companion/src/firmwares/modeldata.h +++ b/companion/src/firmwares/modeldata.h @@ -185,6 +185,7 @@ class ModelData { MavlinkData mavlink; unsigned int telemetryProtocol; FrSkyData frsky; + unsigned int rssiSource; RSSIAlarmData rssiAlarms; char bitmap[10+1]; diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index a187717ed..c990b6c89 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -1728,9 +1728,9 @@ class TelemetryCurrentSourceConversionTable: public ConversionTable } }; -class FrskyField: public StructField { +class Frsky218Field: public StructField { public: - FrskyField(DataField * parent, FrSkyData & frsky, RSSIAlarmData & rssiAlarms, Board::Type board, unsigned int version, unsigned int variant): + Frsky218Field(DataField * parent, FrSkyData & frsky, RSSIAlarmData & rssiAlarms, Board::Type board, unsigned int version, unsigned int variant): StructField(parent, "FrSky"), telemetryVarioSourceConversionTable(board, version), screenTypesConversionTable(board, version), @@ -1777,6 +1777,20 @@ class FrskyField: public StructField { TelemetryCurrentSourceConversionTable telemetryCurrentSourceConversionTable; }; +class VarioField: public StructField { + public: + VarioField(DataField * parent, FrSkyData & frsky, Board::Type board, unsigned int version, unsigned int variant): + StructField(parent, "Vario") + { + Append(new UnsignedField<7>(this, frsky.varioSource, "Vario Source")); + Append(new BoolField<1>(this, frsky.varioCenterSilent)); + Append(new SignedField<8>(this, frsky.varioCenterMax)); + Append(new SignedField<8>(this, frsky.varioCenterMin)); + Append(new SignedField<8>(this, frsky.varioMin)); + Append(new SignedField<8>(this, frsky.varioMax)); + } +}; + /* * TODO */ @@ -2029,20 +2043,23 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, Board::Type board, unsig } } - // TODO rename to VARIO - internalField.Append(new FrskyField(this, modelData.frsky, modelData.rssiAlarms, board, version, variant)); - - if (version >= 219) { - // TODO RSSI SOURCE - internalField.Append(new SpareBitsField<8>(this)); + if (version <= 218) { + internalField.Append(new Frsky218Field(this, modelData.frsky, modelData.rssiAlarms, board, version, variant)); + } + else { + internalField.Append(new VarioField(this, modelData.frsky, board, version, variant)); + internalField.Append(new UnsignedField<8>(this, modelData.rssiSource)); if (IS_TARANIS_X9(board)) { // TODO TOPBAR internalField.Append(new SpareBitsField<16>(this)); } - // TODO RSSI ALARMS - internalField.Append(new SpareBitsField<16>(this)); + internalField.Append(new BoolField<1>(this, modelData.rssiAlarms.disabled)); + internalField.Append(new SpareBitsField<1>(this)); + internalField.Append(new ConversionField >(this, modelData.rssiAlarms.warning, -45)); + internalField.Append(new SpareBitsField<2>(this)); + internalField.Append(new ConversionField >(this, modelData.rssiAlarms.critical, -42)); } if (IS_STM32(board) && version <= 218) {