Fix companion import

This fixes #6443
This commit is contained in:
3djc
2019-05-24 18:12:07 +02:00
parent f7b323e5cd
commit d8a34dc195
3 changed files with 17 additions and 4 deletions
@@ -118,7 +118,7 @@ class SwitchesConversionTable: public ConversionTable {
if (version >= 218) {
addConversion(RawSwitch(SWITCH_TYPE_TELEMETRY, -1), -val+offset);
addConversion(RawSwitch(SWITCH_TYPE_TELEMETRY, 1), val++);
for (int i=1; i<=CPN_MAX_SENSORS; i++) {
for (int i=1; i<=MAX_TELEMETRY_SENSORS(board, version); i++) {
addConversion(RawSwitch(SWITCH_TYPE_SENSOR, -i), -val+offset);
addConversion(RawSwitch(SWITCH_TYPE_SENSOR, i), val++);
}
@@ -248,7 +248,7 @@ class SourcesConversionTable: public ConversionTable {
addConversion(RawSource(SOURCE_TYPE_SPECIAL, 2), val++); // Timer1
addConversion(RawSource(SOURCE_TYPE_SPECIAL, 3), val++); // Timer2
addConversion(RawSource(SOURCE_TYPE_SPECIAL, 4), val++); // Timer3
for (unsigned i=0; i<CPN_MAX_SENSORS*3; ++i) {
for (unsigned i=0; i<MAX_TELEMETRY_SENSORS(board, version)*3; ++i) {
addConversion(RawSource(SOURCE_TYPE_TELEMETRY, i), val++);
}
}
@@ -2296,6 +2296,14 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, Board::Type board, unsig
internalField.Append(new CharField<216>(this, modelData.topbarData, false, "Top bar blob"));
internalField.Append(new SpareBitsField<8>(this)); // current view
}
else if (version >= 219) {
for (int i = 0; i < 4; i++) {
internalField.Append(new UnsignedField<2>(this, modelData.frsky.screens[i].type));
}
for (int i = 0; i < 4; i++) {
internalField.Append(new FrskyScreenField(this, modelData.frsky.screens[i], board, version, variant));
}
}
}
void OpenTxModelData::beforeExport()
@@ -2656,7 +2664,7 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
if (version >= 219) {
internalField.Append(new ZCharField<8>(this, generalData.registrationId, "PXX2 Registration ID"));
}
if (version >= 219 && (IS_TARANIS_XLITES(board) || IS_HORUS(board))) {
internalField.Append(new SignedField<8>(this, generalData.gyroMax, "Gyro full scale"));
internalField.Append(new SignedField<8>(this, generalData.gyroOffset, "Gyro Offset"));
@@ -34,7 +34,7 @@
#define TARANIS_X7_VARIANT 0x4000
#define TARANIS_XLITE_VARIANT 0x2000
#define TARANIS_XLITES_VARIANT 0x1000
#define TARANIS_X9LITE_VARIANT 0x0800
#define TARANIS_X9LITE_VARIANT 0x0800
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
@@ -963,6 +963,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
variantError = true;
}
}
else if (IS_TARANIS_X9LITE(board)) {
if (variant != TARANIS_X9LITE_VARIANT) {
variantError = true;
}
}
else if (IS_TARANIS(board)) {
if (variant != 0) {
variantError = true;