diff --git a/companion/src/tests/conversions.cpp b/companion/src/tests/conversions.cpp index c199c7851..e734448f5 100644 --- a/companion/src/tests/conversions.cpp +++ b/companion/src/tests/conversions.cpp @@ -10,8 +10,6 @@ TEST(Conversions, ConversionX9DPFrom22) RadioData radioData; Storage store = Storage(RADIO_TESTS_PATH "/eeprom_22_x9d+.bin"); - ASSERT_EQ(true, store.load(radioData)); - ASSERT_EQ(true, store.load(radioData)); const GeneralSettings& settings = radioData.generalSettings; @@ -42,6 +40,59 @@ TEST(Conversions, ConversionX9DPFrom22) EXPECT_EQ(RawSource(SOURCE_TYPE_TELEMETRY,0).toValue(), model.logicalSw[0].val1); } +TEST(Conversions, ConversionX9DPFrom23) +{ + RadioData radioData; + Storage store = Storage(RADIO_TESTS_PATH "/eeprom_23_x9d+.bin"); + + ASSERT_EQ(true, store.load(radioData)); + + const GeneralSettings& settings = radioData.generalSettings; + EXPECT_EQ(RawSwitch(SWITCH_TYPE_TELEMETRY, 1), settings.customFn[0].swtch); + EXPECT_EQ(FuncLogs, settings.customFn[0].func); + EXPECT_EQ(20, settings.customFn[0].param); + + EXPECT_STREQ("Tes", settings.switchName[0]); + EXPECT_EQ(Board::SWITCH_3POS, settings.switchConfig[0]); + + const ModelData & model1 = radioData.models[0]; + EXPECT_STREQ("Test", model1.name); + EXPECT_EQ(RawSwitch(SWITCH_TYPE_SWITCH, SWITCH_SA0), model1.timers[0].mode); + EXPECT_EQ(80, model1.mixData[0].weight); + EXPECT_EQ(900, model1.limitData[0].max); // -100 + EXPECT_EQ(80, model1.expoData[0].weight); +// EXPECT_EQ(HELI_SWASH_TYPE_120X, model1.swashRingData.type); + EXPECT_EQ(10, model1.flightModeData[0].gvars[0]); + EXPECT_STREQ("Tes", model1.gvarData[0].name); + EXPECT_EQ(PULSES_ACCST_ISRM_D16, model1.moduleData[0].protocol); + EXPECT_EQ(PULSES_PXX_R9M, model1.moduleData[1].protocol); + EXPECT_EQ(MODULE_SUBTYPE_R9M_FCC, model1.moduleData[1].subType); + EXPECT_STREQ("Rud", model1.inputNames[0]); + EXPECT_STREQ("Tes", model1.sensorData[0].label); + EXPECT_EQ(10, model1.sensorData[0].id); + EXPECT_EQ(10, model1.sensorData[0].instance); + EXPECT_EQ(RawSource(SOURCE_TYPE_TELEMETRY,0).toValue(), model1.logicalSw[0].val1); + + const ModelData & model2 = radioData.models[1]; + EXPECT_STREQ("Test", model2.name); + EXPECT_EQ(RawSwitch(SWITCH_TYPE_SWITCH, SWITCH_SA0), model2.timers[0].mode); + EXPECT_EQ(80, model2.mixData[0].weight); + EXPECT_EQ(900, model2.limitData[0].max); // -100 + EXPECT_EQ(80, model2.expoData[0].weight); +// EXPECT_EQ(HELI_SWASH_TYPE_120X, model2.swashRingData.type); + EXPECT_EQ(10, model2.flightModeData[0].gvars[0]); + EXPECT_STREQ("Tes", model2.gvarData[0].name); + EXPECT_EQ(PULSES_ACCESS_ISRM, model2.moduleData[0].protocol); + EXPECT_EQ(0, model2.moduleData[0].subType); + EXPECT_EQ(PULSES_PXX_R9M, model2.moduleData[1].protocol); + EXPECT_EQ(MODULE_SUBTYPE_R9M_FCC, model2.moduleData[1].subType); + EXPECT_STREQ("Rud", model2.inputNames[0]); + EXPECT_STREQ("Tes", model2.sensorData[0].label); + EXPECT_EQ(10, model2.sensorData[0].id); + EXPECT_EQ(10, model2.sensorData[0].instance); + EXPECT_EQ(RawSource(SOURCE_TYPE_TELEMETRY,0).toValue(), model2.logicalSw[0].val1); +} + TEST(Conversions, ConversionX7From22) { RadioData radioData; diff --git a/radio/src/tests/conversions.cpp b/radio/src/tests/conversions.cpp index 85c4343d6..7777732f1 100644 --- a/radio/src/tests/conversions.cpp +++ b/radio/src/tests/conversions.cpp @@ -45,14 +45,14 @@ TEST(Conversions, ConversionX9DPFrom22) EXPECT_EQ(8, g_eeGeneral.speakerVolume); EXPECT_EQ('e', g_eeGeneral.ttsLanguage[0]); EXPECT_EQ('n', g_eeGeneral.ttsLanguage[1]); - + EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_eeGeneral.customFn[0].swtch); EXPECT_EQ(FUNC_LOGS, g_eeGeneral.customFn[0].func); EXPECT_EQ(20, g_eeGeneral.customFn[0].all.val); EXPECT_ZSTREQ("Tes", g_eeGeneral.switchNames[0]); EXPECT_EQ(SWITCH_3POS, SWITCH_CONFIG(0)); - + EXPECT_ZSTREQ("Test", g_model.header.name); EXPECT_EQ(TMRMODE_COUNT - 1 + SWSRC_SA0, g_model.timers[0].mode); EXPECT_EQ(80, g_model.mixData[0].weight); @@ -69,6 +69,48 @@ TEST(Conversions, ConversionX9DPFrom22) EXPECT_EQ(9, g_model.telemetrySensors[0].frskyInstance.physID); EXPECT_EQ(MIXSRC_FIRST_TELEM, g_model.logicalSw[0].v1); } + +TEST(Conversions, ConversionX9DPFrom23) +{ + loadEEPROMFile(TESTS_PATH "/eeprom_23_x9d+.bin"); + + eepromOpen(); + eeLoadGeneralSettingsData(); + eeLoadModel(0); + + EXPECT_EQ(-30, g_eeGeneral.vBatMin); + EXPECT_EQ(8, g_eeGeneral.speakerVolume); + EXPECT_EQ('e', g_eeGeneral.ttsLanguage[0]); + EXPECT_EQ('n', g_eeGeneral.ttsLanguage[1]); + + EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_eeGeneral.customFn[0].swtch); + EXPECT_EQ(FUNC_LOGS, g_eeGeneral.customFn[0].func); + EXPECT_EQ(20, g_eeGeneral.customFn[0].all.val); + + EXPECT_ZSTREQ("Tes", g_eeGeneral.switchNames[0]); + EXPECT_EQ(SWITCH_3POS, SWITCH_CONFIG(0)); + + EXPECT_ZSTREQ("Test", g_model.header.name); + EXPECT_EQ(TMRMODE_COUNT - 1 + SWSRC_SA0, g_model.timers[0].mode); + EXPECT_EQ(80, g_model.mixData[0].weight); + EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0 + EXPECT_EQ(80, g_model.expoData[0].weight); + EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]); + EXPECT_ZSTREQ("Tes", g_model.gvars[0].name); + EXPECT_ZSTREQ("Test", g_model.flightModeData[0].name); + + EXPECT_EQ(MODULE_TYPE_ISRM_PXX2, g_model.moduleData[INTERNAL_MODULE].type); + EXPECT_EQ(MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, g_model.moduleData[INTERNAL_MODULE].subType); + + EXPECT_EQ(MODULE_TYPE_R9M_PXX1, g_model.moduleData[EXTERNAL_MODULE].type); + EXPECT_EQ(MODULE_SUBTYPE_R9M_FCC, g_model.moduleData[EXTERNAL_MODULE].subType); + + EXPECT_ZSTREQ("Rud", g_model.inputNames[0]); + EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label); + EXPECT_EQ(10, g_model.telemetrySensors[0].id); + EXPECT_EQ(10, g_model.telemetrySensors[0].frskyInstance.physID); + EXPECT_EQ(MIXSRC_FIRST_TELEM, g_model.logicalSw[0].v1); +} #endif #if defined(PCBXLITE) diff --git a/radio/src/tests/eeprom_23_x9d+.bin b/radio/src/tests/eeprom_23_x9d+.bin new file mode 100644 index 000000000..6070a1d32 Binary files /dev/null and b/radio/src/tests/eeprom_23_x9d+.bin differ