From f50a91ac709cc9de59aebee9f98b3715f2e59860 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Wed, 9 Jun 2021 08:05:36 +0200 Subject: [PATCH] Fix "wonky timer" --- .../conversions/conversions_219_220.cpp | 8 ++++++-- radio/src/tests/conversions.cpp | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/radio/src/storage/conversions/conversions_219_220.cpp b/radio/src/storage/conversions/conversions_219_220.cpp index 8743b2889..a865c6a8b 100644 --- a/radio/src/storage/conversions/conversions_219_220.cpp +++ b/radio/src/storage/conversions/conversions_219_220.cpp @@ -116,12 +116,16 @@ void convertModelData_219_to_220(ModelData &model) if (timer_219.mode >= TMRMODE_START) { timer_219.mode += 1; } - if (timer_219.mode < TMRMODE_COUNT) { + if (timer_219.mode < TMRMODE_COUNT + && timer_219.mode >=0) { timer.mode = timer_219.mode; } else { timer.mode = TMRMODE_START; - timer.swtch = timer_219.mode - (TMRMODE_COUNT - 1); + if (timer_219.mode > 0) + timer.swtch = timer_219.mode - (TMRMODE_COUNT - 1); + else + timer.swtch = timer_219.mode; } timer.start = timer_219.start; diff --git a/radio/src/tests/conversions.cpp b/radio/src/tests/conversions.cpp index 6b5ff0dbc..87c8c5cc5 100644 --- a/radio/src/tests/conversions.cpp +++ b/radio/src/tests/conversions.cpp @@ -81,6 +81,24 @@ TEST(Conversions, ConversionX9DPFrom23) EXPECT_STRNEQ("abc.wav", g_model.customFn[1].play.name); } + +TEST(Conversions, ConversionX9DPFrom23_2) +{ + loadEEPROMFile(TESTS_PATH "/eeprom_23_x9d+2.bin"); + + eepromOpen(); + eeLoadGeneralSettingsData(); + convertRadioData_219_to_220(g_eeGeneral); + eeConvertModel(6, 219); + eeLoadModel(6); + + EXPECT_EQ(710, g_eeGeneral.calib[0].spanNeg); + EXPECT_EQ(944, g_eeGeneral.calib[0].mid); + EXPECT_EQ(770, g_eeGeneral.calib[0].spanPos); + + EXPECT_EQ(TMRMODE_START, g_model.timers[0].mode); // new! + EXPECT_EQ(-SWSRC_SA0, g_model.timers[0].swtch); // new! +} #endif // #if defined(PCBXLITE) && !defined(PCBXLITES)