diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index b9845163f..d565b8ad8 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -504,6 +504,7 @@ class GeneralSettings { unsigned int switchUnlockStates; unsigned int hw_uartMode; unsigned int potsType[8]; + unsigned int backlightColor; }; class CurveReference { diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index 90c5b5125..2be34c99f 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -2180,7 +2180,7 @@ class FrskyField: public StructField { rssiConversionTable[1] = RSSIConversionTable(1); if (IS_ARM(board)) { - for (int i=0; i<2; i++) { + for (int i=0; i < ((version >= 216) ? 4 : 2); i++) { Append(new UnsignedField<8>(frsky.channels[i].ratio, "Ratio")); Append(new SignedField<12>(frsky.channels[i].offset, "Offset")); Append(new UnsignedField<4>(frsky.channels[i].type, "Type")); @@ -2693,6 +2693,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo for (int i=0; i<4; i++) { internalField.Append(new UnsignedField<2>(potsType[i])); } + internalField.Append(new UnsignedField<8>(generalData.backlightColor)); } } } diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index af715fef8..2815e8904 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -833,7 +833,13 @@ void ConvertModel_215_to_216(ModelData &model) memcpy(g_model.gvars[i].name, oldModel.gvar_names[i], LEN_GVAR_NAME); } - memcpy(&g_model.frsky, &oldModel.frsky, sizeof(oldModel.frsky)); + memcpy(&g_model.frsky, &oldModel.frsky, 2*sizeof(FrSkyChannelData)); + // Gap for A3-A4 + uint8_t *dest = (uint8_t *)&g_model.frsky; + dest += 4*sizeof(FrSkyChannelData); + uint8_t *src = (uint8_t *)&oldModel.frsky; + src += 2*sizeof(FrSkyChannelData); + memcpy(dest, src, sizeof(oldModel.frsky) - 2*sizeof(FrSkyChannelData)); for (int i=0; i<3; i++) { if (g_model.frsky.screensType & (1<