From db2130cedc24d548f75f957ad370bd83bcf457bd Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 23 Aug 2019 08:30:24 +0200 Subject: [PATCH] fixed module protocol ID conversion --- companion/src/firmwares/opentx/opentxeeprom.cpp | 6 +++--- companion/src/firmwares/opentx/opentxeeprom.h | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 1c8a0f994..15573053a 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -2112,7 +2112,7 @@ class ModuleUnionField: public UnionField { }; public: - ModuleUnionField(DataField * parent, ModuleData & module): + ModuleUnionField(DataField * parent, ModuleData & module, Board::Type board, unsigned int version): UnionField(parent, module.protocol) { Append(new AccessField(parent, module)); @@ -2129,7 +2129,7 @@ class ModuleField: public TransformedField { TransformedField(parent, internalField), internalField(this, "Module"), module(module), - protocolsConversionTable(board) + protocolsConversionTable(board, version) { internalField.Append(new ConversionField >(this, module.protocol, &protocolsConversionTable, "Protocol", DataField::tr("OpenTX doesn't accept this radio protocol"))); internalField.Append(new SignedField<4>(this, module.rfProtocol)); @@ -2144,7 +2144,7 @@ class ModuleField: public TransformedField { } } - internalField.Append(new ModuleUnionField(parent, module)); + internalField.Append(new ModuleUnionField(parent, module, board, version)); } virtual void beforeExport() diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h index 9785c5f7b..95f75ce19 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.h +++ b/companion/src/firmwares/opentx/opentxeeprom.h @@ -73,7 +73,7 @@ class OpenTxGeneralData: public TransformedField { class ProtocolsConversionTable: public ConversionTable { public: - ProtocolsConversionTable(Board::Type board) + ProtocolsConversionTable(Board::Type board, int version) { int val = 0; addConversion(PULSES_OFF, val++); @@ -83,8 +83,10 @@ class ProtocolsConversionTable: public ConversionTable addConversion(PULSES_PXX_XJT_D8, val); addConversion(PULSES_PXX_XJT_LR12, val++); - addConversion(PULSES_ACCESS_ISRM, val); - addConversion(PULSES_ACCST_ISRM_D16, val++); + if (version >= 219) { + addConversion(PULSES_ACCESS_ISRM, val); + addConversion(PULSES_ACCST_ISRM_D16, val++); + } addConversion(PULSES_LP45, val); addConversion(PULSES_DSM2, val);