From dd25e8221449ba7a5e4c5f95e4ae70483b217d4a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 9 Sep 2019 16:00:26 +0200 Subject: [PATCH] Fixes #6718 --- companion/src/tests/conversions.cpp | 7 +++++ .../conversions/conversions_218_219.cpp | 4 +++ radio/src/tests/conversions.cpp | 12 ++++++--- radio/src/tests/eeprom_22_x9d+.bin | Bin 32768 -> 32768 bytes radio/src/tests/eeprom_23_x9d+.bin | Bin 32768 -> 32768 bytes radio/src/tests/frsky.cpp | 25 +++++++++++++++--- 6 files changed, 41 insertions(+), 7 deletions(-) diff --git a/companion/src/tests/conversions.cpp b/companion/src/tests/conversions.cpp index ec2db8e02..7a78ec4ee 100644 --- a/companion/src/tests/conversions.cpp +++ b/companion/src/tests/conversions.cpp @@ -26,6 +26,12 @@ TEST(Conversions, ConversionX9DPFrom22) EXPECT_EQ(80, model.mixData[0].weight); EXPECT_EQ(900, model.limitData[0].max); // -100 EXPECT_EQ(80, model.expoData[0].weight); + + EXPECT_EQ(CurveReference::CURVE_REF_CUSTOM, model.expoData[0].curve.type); + EXPECT_EQ(1, model.expoData[0].curve.value); + EXPECT_EQ(CurveReference::CURVE_REF_EXPO, model.expoData[1].curve.type); + EXPECT_EQ(20, model.expoData[1].curve.value); + EXPECT_EQ(HELI_SWASH_TYPE_120X, model.swashRingData.type); EXPECT_EQ(10, model.flightModeData[0].gvars[0]); EXPECT_STREQ("Tes", model.gvarData[0].name); @@ -48,6 +54,7 @@ TEST(Conversions, ConversionX9DPFrom23) ASSERT_EQ(true, store.load(radioData)); const GeneralSettings& settings = radioData.generalSettings; + EXPECT_EQ(8, settings.speakerVolume); 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); diff --git a/radio/src/storage/conversions/conversions_218_219.cpp b/radio/src/storage/conversions/conversions_218_219.cpp index b385f64ae..a6d50ba85 100644 --- a/radio/src/storage/conversions/conversions_218_219.cpp +++ b/radio/src/storage/conversions/conversions_218_219.cpp @@ -153,6 +153,10 @@ void convertModelData_218_to_219(ModelData &model) memmove(&newModel.expoData[i], &oldModel.expoData[i], sizeof(ExpoData_v218)); newModel.expoData[i].srcRaw = convertSource_218_to_219(newModel.expoData[i].srcRaw); // from newModel to avoid overwrite newModel.expoData[i].swtch = convertSwitch_218_to_219(newModel.expoData[i].swtch); // from newModel to avoid overwrite +#if LCD_W == 212 + newModel.expoData[i].offset = oldModel.expoData[i].offset; // 212x64: expo name has been reduced to 6 chars instead of 8 + newModel.expoData[i].curve = oldModel.expoData[i].curve; // 212x64: expo name has been reduced to 6 chars instead of 8 +#endif } for (uint8_t i=0; i!s0V=Kye>Le!i$;?caOzaGkComaI z&STmvBCMzxmhPPlF>k}smnlW+%9pTH5#acFAu)`)Z UFFqkkX0>w8;ayOuYU2A_U6~WB#x_PuMCu2u`RFg`UfQS BBuM}O diff --git a/radio/src/tests/eeprom_23_x9d+.bin b/radio/src/tests/eeprom_23_x9d+.bin index 6070a1d3249abad1d071674cbbe4b4ab9cd7d3c1..902b22010056919d0d54f41462de67829ee8eb94 100644 GIT binary patch delta 97 zcmZo@U}|V!;$~%F6lQQ>U=U=8n#lc;nVBJG;{Q1;8yhBbOrFE2sKCHb4+D=3STFyt xW}GbY`)wVE0Q<9V&!0Vew)p|0H8a~~jz>2p*-l=-C_mYORgUr5=6KeHRRBhLB})JR delta 95 zcmZo@U}|V!;$~%F6lQQ>U|?p5oXGu=S&$)W;{Q2}k0#G&R8+37uV-KY5H$PysX6D$~u;|f^iT|EVR%W$kWZ4|gy08iW9#AD; diff --git a/radio/src/tests/frsky.cpp b/radio/src/tests/frsky.cpp index e33668265..27fdedf8e 100644 --- a/radio/src/tests/frsky.cpp +++ b/radio/src/tests/frsky.cpp @@ -56,7 +56,8 @@ TEST(FrSky, Vfas_0x39_HiPrecision) MODEL_RESET(); TELEMETRY_RESET(); EXPECT_EQ(telemetryItems[0].value, 0); - + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; // normal precision, resolution 0.1V @@ -77,7 +78,8 @@ TEST(FrSky, HubAltNegative) MODEL_RESET(); TELEMETRY_RESET(); EXPECT_EQ(telemetryItems[0].value, 0); - + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; // altimeter auto offset @@ -122,6 +124,8 @@ TEST(FrSky, Gps) { MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; EXPECT_EQ(telemetryItems[0].value, 0); @@ -181,6 +185,8 @@ TEST(FrSkySPORT, FrSkyDCells) { MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; uint8_t pkt1[] = { 0x7E, 0x98, 0x10, 0x06, 0x00, 0x07, 0xD0, 0x00, 0x00, 0x12 }; @@ -209,6 +215,8 @@ TEST(FrSkySPORT, frskySetCellVoltage) MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; // test that simulates 3 cell battery @@ -300,6 +308,8 @@ TEST(FrSkySPORT, StrangeCellsBug) { MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; uint8_t pkt[] = { 0x7E, 0x48, 0x10, 0x00, 0x03, 0x30, 0x15, 0x50, 0x81, 0xD5 }; @@ -316,6 +326,8 @@ TEST(FrSkySPORT, frskySetCellVoltageTwoSensors) MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; //sensor 1: 3 cell battery @@ -387,6 +399,8 @@ TEST(FrSkySPORT, frskyVfas) MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; // tests for Vfas @@ -426,10 +440,13 @@ TEST(FrSkySPORT, frskyCurrent) MODEL_RESET(); TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; allowNewSensors = true; // tests for Curr - generateSportFasCurrentPacket(packet, 0); sportProcessTelemetryPacket(packet); + generateSportFasCurrentPacket(packet, 0); + sportProcessTelemetryPacket(packet); g_model.telemetrySensors[0].custom.offset = -5; /* unit: 1/10 amps */ generateSportFasCurrentPacket(packet, 0); sportProcessTelemetryPacket(packet); EXPECT_EQ(telemetryItems[0].value, 0); @@ -459,6 +476,8 @@ TEST(FrSkySPORT, frskyCurrent) // test with positive offset TELEMETRY_RESET(); + telemetryStreaming = TELEMETRY_TIMEOUT10ms; + telemetryData.telemetryValid = 0x07; g_model.telemetrySensors[0].custom.offset = +5; /* unit: 1/10 amps */ generateSportFasCurrentPacket(packet, 0); sportProcessTelemetryPacket(packet);