From 005e74feeae9ac924e9e1146238ffc5cf9c3b4d8 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Wed, 4 Sep 2019 17:26:38 +0200 Subject: [PATCH] re-fix subType for PXX1 modules (#6708) re-fix subType for PXX1 modules --- .../src/firmwares/opentx/opentxeeprom.cpp | 27 +++++++----------- companion/src/tests/conversions.cpp | 1 + radio/src/tests/model_22_x10.otx | Bin 795 -> 795 bytes 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 5953705b2..7c4292ecf 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -2058,10 +2058,11 @@ class ModuleUnionField: public UnionField { class PxxField: public UnionField::TransformedMember { public: - PxxField(DataField * parent, ModuleData& module): + PxxField(DataField * parent, ModuleData& module, unsigned int version): UnionField::TransformedMember(parent, internalField), internalField(this, "Pxx"), - module(module) + module(module), + version(version) { ModuleData::PXX& pxx = module.pxx; internalField.Append(new UnsignedField<2>(this, pxx.power)); @@ -2073,7 +2074,7 @@ class ModuleUnionField: public UnionField { } bool select(const unsigned int& attr) const override { - return attr==PULSES_PXX_XJT_X16 || + return (attr >= PULSES_PXX_XJT_X16 && attr <= PULSES_PXX_XJT_LR12) || attr==PULSES_PXX_DJT || attr==PULSES_PXX_R9M || attr==PULSES_PXX_R9M_LITE; @@ -2089,13 +2090,17 @@ class ModuleUnionField: public UnionField { void afterImport() override { if (module.protocol == PULSES_PXX_XJT_X16) { - module.protocol += module.subType; + if (version <= 218) + module.protocol += module.rfProtocol; + else + module.protocol += module.subType; } } private: StructField internalField; ModuleData& module; + unsigned int version; }; class AccessField: public UnionField::TransformedMember { @@ -2163,7 +2168,7 @@ class ModuleUnionField: public UnionField { { if (version >= 219) Append(new AccessField(parent, module)); - Append(new PxxField(parent, module)); + Append(new PxxField(parent, module, version)); Append(new MultiField(parent, module)); Append(new PPMField(parent, module.ppm)); } @@ -2199,12 +2204,6 @@ class ModuleField: public TransformedField { if (module.protocol >= PULSES_LP45 && module.protocol <= PULSES_DSMX) { module.rfProtocol = module.protocol - PULSES_LP45; } - else if (module.protocol >= PULSES_PXX_XJT_X16 && module.protocol <= PULSES_PXX_XJT_LR12) { - module.subType = module.protocol - PULSES_PXX_XJT_X16; - } - else if (module.protocol >= PULSES_ACCESS_ISRM && module.protocol <= PULSES_ACCST_ISRM_D16) { - module.subType = module.protocol - PULSES_ACCESS_ISRM; - } } void afterImport() override @@ -2212,12 +2211,6 @@ class ModuleField: public TransformedField { if (module.protocol == PULSES_LP45) { module.protocol += module.rfProtocol; } - else if (module.protocol == PULSES_PXX_XJT_X16) { - module.protocol += module.subType; - } - else if (module.protocol == PULSES_ACCESS_ISRM) { - module.protocol += module.subType; - } } private: diff --git a/companion/src/tests/conversions.cpp b/companion/src/tests/conversions.cpp index 2e3560a0e..ec2db8e02 100644 --- a/companion/src/tests/conversions.cpp +++ b/companion/src/tests/conversions.cpp @@ -271,6 +271,7 @@ TEST(Conversions, ConversionX10From22) EXPECT_STREQ("Tes", model.flightModeData[0].name); EXPECT_EQ(10, model.flightModeData[0].gvars[0]); EXPECT_STREQ("Tes", model.gvarData[0].name); + EXPECT_EQ(PULSES_PXX_XJT_D8, model.moduleData[0].protocol); EXPECT_EQ(PULSES_PXX_R9M, model.moduleData[1].protocol); EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, model.moduleData[1].subType); EXPECT_STREQ("Rud", model.inputNames[0]); diff --git a/radio/src/tests/model_22_x10.otx b/radio/src/tests/model_22_x10.otx index e81996c2b2a7ffcc3131d2850dc39ec594425b68..c796f181e5fe32796dc73c5a68197e8aab5beec5 100644 GIT binary patch delta 340 zcmbQuHk*w%z?+#xgn@y9gF)CuWg_nx4j|=!?8*NP6CbMA_e>Sg5S7kwXK!D3_R>=4 zmtiX=tju@r7BKgg5xKQ?{=&_R=O4Uz{^65%rxlvKSb7B>`Zzc)R{Qkl!4G-<>56v_ z%GU4xRDAu^_2ONZUn|+DxhQPD;-auRHu7NU%k%6ewKq$RcIe$^__s+xscXtNTa8^J zd-P8AitN!{r{m0ZZ(>9}uiYI*Ru>nS_GKn}JTD2Py0QyiT=>J*^x&|DRsvuyt{4TqqUsS;{ChMaDTx^cWv2G d0%)>0lLIp_geFHZS;0eU@*E~}u;4W&R{-<)m306B delta 340 zcmbQuHk*w%z?+#xgn@y9gCWsbY9j9$4j|>PY^c#U@u7OXkhWrgR_+2>S(#mC-qZP( zMlW<)wvSiW>5fieK*sjEwsW$7dCt}Gsh7vI35Fm@e9nISf5i@-hkWmT zSWkU_J8j=I<2!lm7dI+6&0MRw@Xh~AeCtow+*vGmVqMU~(wkNvX0r+guG#X=;p5Ur zsd4L;J}9kAof-6jEw$dV;(MEjfS};p*-_usHG`*wGP}6^7JBm};@*cSkDx{C|Jc>; z%CO)JFxhf^e@ud~*)oU2-!5G+S}@lt-@m}9AhD-P;4mYfYrEXVo8B`vb8nyD@V`#$ zkHyul%)1KjZyddJI9$^DTZ~3%_rE`v*I(AuP&+cq%LNEdD(v5Vyv|mztNc3;N&rn3 aXL4W$hS20FCM$SIO`gMK4i>z|u7mkwv