From 67364789a816e8c79d1a34c8e548e2b06677a88c Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 8 Apr 2016 00:05:34 +0200 Subject: [PATCH] Implement real (struct size compatible) layout on Taranis --- companion/src/firmwares/opentx/opentxeeprom.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 373f4518d..b52428830 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -3170,17 +3170,19 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne if (IS_ARM(board) && version >= 215) { for (int module=0; module= 217) { - internalField.Append(new ConversionField< SignedField<4> >(modelData.moduleData[module].protocol, &protocolsConversionTable, "Protocol", ::QObject::tr("OpenTX doesn't accept this radio protocol"))); + internalField.Append(new ConversionField >(modelData.moduleData[module].protocol, &protocolsConversionTable, "Protocol", ::QObject::tr("OpenTX doesn't accept this radio protocol"))); internalField.Append(new SignedField<4>(subprotocols[module])); } else { internalField.Append(new SignedField<8>(subprotocols[module])); } internalField.Append(new UnsignedField<8>(modelData.moduleData[module].channelsStart)); - internalField.Append(new ConversionField< SignedField<8> >(modelData.moduleData[module].channelsCount, -8)); - if (version >= 217) - internalField.Append(new UnsignedField<8>(modelData.moduleData[module].failsafeMode)); - else + internalField.Append(new ConversionField >(modelData.moduleData[module].channelsCount, -8)); + if (version >= 217) { + internalField.Append(new UnsignedField<4>(modelData.moduleData[module].failsafeMode)); + internalField.Append(new UnsignedField<3>(modelData.moduleData[module].subType)); + internalField.Append(new BoolField<1>(modelData.moduleData[module].invertedSerial)); + } else internalField.Append(new ConversionField< UnsignedField<8> >(modelData.moduleData[module].failsafeMode, -1)); for (int i=0; i<32; i++) { internalField.Append(new SignedField<16>(modelData.moduleData[module].failsafeChannels[i]));