#6702 fixed (+non regression test added)
This commit is contained in:
@@ -118,6 +118,8 @@ inline int MAX_SWITCHES_POSITION(Board::Type board, int version)
|
||||
return Boards::getCapability(board, Board::SwitchPositions) - 2 * 3;
|
||||
if (IS_TARANIS_X9D(board))
|
||||
return 8 * 3;
|
||||
if (IS_TARANIS_XLITE(board))
|
||||
return 4 * 3;
|
||||
}
|
||||
|
||||
if (IS_TARANIS_X9D(board)) {
|
||||
@@ -157,8 +159,8 @@ class SwitchesConversionTable: public ConversionTable {
|
||||
public:
|
||||
SwitchesConversionTable(Board::Type board, unsigned int version, bool timer=false)
|
||||
{
|
||||
int val=0;
|
||||
int offset=0;
|
||||
int val = 0;
|
||||
int offset = 0;
|
||||
if (timer) {
|
||||
offset = 4;
|
||||
for (int i=0; i<5; i++) {
|
||||
|
||||
@@ -90,6 +90,49 @@ TEST(Conversions, ConversionX7From22)
|
||||
EXPECT_EQ(RawSource(SOURCE_TYPE_SPECIAL,4), screen.body.lines[0].source[1]);
|
||||
}
|
||||
|
||||
TEST(Conversions, ConversionXLiteFrom22)
|
||||
{
|
||||
RadioData radioData;
|
||||
Storage store = Storage(RADIO_TESTS_PATH "/eeprom_22_xlite.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& model = radioData.models[0];
|
||||
EXPECT_STREQ("Test", model.name);
|
||||
EXPECT_EQ(PULSES_PXX_R9M, model.moduleData[1].protocol);
|
||||
EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, model.moduleData[1].subType);
|
||||
|
||||
EXPECT_EQ(80, model.mixData[0].weight);
|
||||
EXPECT_EQ(80, model.expoData[0].weight);
|
||||
|
||||
EXPECT_EQ(RawSource(SOURCE_TYPE_PPM,0), model.mixData[4].srcRaw);
|
||||
EXPECT_EQ(RawSwitch(SWITCH_TYPE_TELEMETRY, 1), model.mixData[4].swtch);
|
||||
EXPECT_EQ(HELI_SWASH_TYPE_120X, model.swashRingData.type);
|
||||
EXPECT_STREQ("Thr", model.inputNames[0]);
|
||||
|
||||
EXPECT_STREQ("Tes", model.sensorData[0].label);
|
||||
EXPECT_EQ(10, model.sensorData[0].id);
|
||||
EXPECT_EQ(8, model.sensorData[0].instance);
|
||||
EXPECT_EQ(900, model.limitData[0].max); // -100
|
||||
|
||||
EXPECT_EQ(LS_FN_VPOS, model.logicalSw[0].func);
|
||||
EXPECT_EQ(RawSource(SOURCE_TYPE_PPM,0).toValue(), model.logicalSw[0].val1);
|
||||
EXPECT_EQ(0, model.logicalSw[0].val2);
|
||||
|
||||
const FrSkyScreenData& screen = model.frsky.screens[0];
|
||||
EXPECT_EQ(TELEMETRY_SCREEN_NUMBERS, screen.type);
|
||||
EXPECT_EQ(RawSource(SOURCE_TYPE_PPM,0), screen.body.lines[0].source[0]);
|
||||
EXPECT_EQ(RawSource(SOURCE_TYPE_SPECIAL,4), screen.body.lines[0].source[1]);
|
||||
}
|
||||
|
||||
|
||||
bool loadFile(QByteArray & filedata, const QString & filename)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user