WiP: conversions and storage format v220
This commit is contained in:
committed by
Raphael Coeffic
parent
ecb1146b13
commit
599bbdf314
+1
-28
@@ -729,7 +729,7 @@ PACK(struct TrainerData {
|
||||
NOBACKUP(uint8_t spare5:1 SKIP); \
|
||||
NOBACKUP(uint8_t blOffBright:7); \
|
||||
NOBACKUP(char bluetoothName[LEN_BLUETOOTH_NAME]);
|
||||
#elif defined(PCBTARANIS) || defined(PCBNV14)
|
||||
#elif defined(PCBTARANIS) //|| defined(PCBNV14)
|
||||
#if defined(STORAGE_BLUETOOTH)
|
||||
#define BLUETOOTH_FIELDS \
|
||||
uint8_t spare5 SKIP; \
|
||||
@@ -747,18 +747,6 @@ PACK(struct TrainerData {
|
||||
char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME]; \
|
||||
char anaNames[NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS][LEN_ANA_NAME]; \
|
||||
BLUETOOTH_FIELDS
|
||||
#elif defined(PCBSKY9X)
|
||||
#define EXTRA_GENERAL_FIELDS \
|
||||
int8_t txCurrentCalibration; \
|
||||
int8_t spare5 SKIP; \
|
||||
uint8_t mAhWarn; \
|
||||
uint16_t mAhUsed; \
|
||||
int8_t temperatureCalib; \
|
||||
uint8_t optrexDisplay; \
|
||||
uint8_t sticksGain; \
|
||||
uint8_t rotarySteps; \
|
||||
char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME]; \
|
||||
char anaNames[NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS][LEN_ANA_NAME];
|
||||
#else
|
||||
#define EXTRA_GENERAL_FIELDS
|
||||
#endif
|
||||
@@ -932,18 +920,6 @@ static inline void check_struct()
|
||||
CHKTYPE(TopBarPersistentData, 300);
|
||||
#elif defined(PCBNV14)
|
||||
// TODO
|
||||
#elif defined(PCBSKY9X)
|
||||
CHKSIZE(MixData, 20);
|
||||
CHKSIZE(ExpoData, 17);
|
||||
CHKSIZE(LimitData, 11);
|
||||
CHKSIZE(CustomFunctionData, 9);
|
||||
CHKSIZE(FlightModeData, 36);
|
||||
CHKSIZE(TimerData, 11);
|
||||
CHKSIZE(SwashRingData, 8);
|
||||
CHKSIZE(FrSkyBarData, 5);
|
||||
CHKSIZE(FrSkyLineData, 2);
|
||||
CHKSIZE(ModelHeader, 12);
|
||||
CHKTYPE(CurveHeader, 4);
|
||||
#else
|
||||
// Common for all variants
|
||||
CHKSIZE(LimitData, 5);
|
||||
@@ -986,9 +962,6 @@ static inline void check_struct()
|
||||
#elif defined(PCBX9D) || defined(PCBX9DP)
|
||||
CHKSIZE(RadioData, 898);
|
||||
CHKSIZE(ModelData, 6604);
|
||||
#elif defined(PCBSKY9X)
|
||||
CHKSIZE(RadioData, 735);
|
||||
CHKSIZE(ModelData, 5301);
|
||||
#elif defined(PCBHORUS)
|
||||
CHKSIZE(RadioData, 901);
|
||||
CHKSIZE(ModelData, 11020);
|
||||
|
||||
@@ -25,24 +25,9 @@ void convertRadioData(int version)
|
||||
{
|
||||
TRACE("convertRadioData(%d)", version);
|
||||
|
||||
#if STORAGE_CONVERSIONS < 217
|
||||
if (version == 216) {
|
||||
version = 217;
|
||||
convertRadioData_216_to_217(g_eeGeneral);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if STORAGE_CONVERSIONS < 218
|
||||
if (version == 217) {
|
||||
version = 218;
|
||||
convertRadioData_217_to_218(g_eeGeneral);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if STORAGE_CONVERSIONS < 219
|
||||
if (version == 218) {
|
||||
version = 219;
|
||||
convertRadioData_218_to_219(g_eeGeneral);
|
||||
#if STORAGE_CONVERSIONS < 220
|
||||
if (version == 219) {
|
||||
convertRadioData_219_to_220(g_eeGeneral);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -51,24 +36,10 @@ void convertModelData(int version)
|
||||
{
|
||||
TRACE("convertModelData(%d)", version);
|
||||
|
||||
#if STORAGE_CONVERSIONS < 217
|
||||
if (version == 216) {
|
||||
version = 217;
|
||||
convertModelData_216_to_217(g_model);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if STORAGE_CONVERSIONS < 218
|
||||
if (version == 217) {
|
||||
version = 218;
|
||||
convertModelData_217_to_218(g_model);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if STORAGE_CONVERSIONS < 219
|
||||
if (version == 218) {
|
||||
#if STORAGE_CONVERSIONS < 220
|
||||
if (version == 219) {
|
||||
version = 219;
|
||||
convertModelData_218_to_219(g_model);
|
||||
convertModelData_219_to_220(g_model);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -90,14 +61,8 @@ bool eeConvert()
|
||||
const char *msg = NULL;
|
||||
|
||||
switch (g_eeGeneral.version) {
|
||||
case 216:
|
||||
msg = "EEprom Data v216";
|
||||
break;
|
||||
case 217:
|
||||
msg = "EEprom Data v217";
|
||||
break;
|
||||
case 218:
|
||||
msg = "EEprom Data v218";
|
||||
case 219:
|
||||
msg = "EEprom Data v219";
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
@@ -106,9 +71,6 @@ bool eeConvert()
|
||||
int conversionVersionStart = g_eeGeneral.version;
|
||||
|
||||
// Information to the user and wait for key press
|
||||
#if defined(PCBSKY9X)
|
||||
g_eeGeneral.optrexDisplay = 0;
|
||||
#endif
|
||||
g_eeGeneral.backlightMode = e_backlight_mode_on;
|
||||
g_eeGeneral.backlightBright = 0;
|
||||
g_eeGeneral.contrast = 25;
|
||||
@@ -121,24 +83,10 @@ bool eeConvert()
|
||||
eeLoadGeneralSettingsData();
|
||||
int version = conversionVersionStart;
|
||||
|
||||
#if STORAGE_CONVERSIONS < 217
|
||||
if (version == 216) {
|
||||
version = 217;
|
||||
convertRadioData_216_to_217(g_eeGeneral);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if STORAGE_CONVERSIONS < 218
|
||||
if (version == 217) {
|
||||
version = 218;
|
||||
convertRadioData_217_to_218(g_eeGeneral);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if STORAGE_CONVERSIONS < 219
|
||||
if (version == 218) {
|
||||
version = 219;
|
||||
convertRadioData_218_to_219(g_eeGeneral);
|
||||
#if STORAGE_CONVERSIONS < 220
|
||||
if (version == 219) {
|
||||
version = 220;
|
||||
convertRadioData_219_to_220(g_eeGeneral);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -24,14 +24,19 @@ void convertModelData(int version);
|
||||
bool eeConvert();
|
||||
void eeConvertModel(int id, int version);
|
||||
|
||||
// Conversions 216 to 217
|
||||
void convertModelData_216_to_217(ModelData &model);
|
||||
void convertRadioData_216_to_217(RadioData &settings);
|
||||
// // Conversions 216 to 217
|
||||
// void convertModelData_216_to_217(ModelData &model);
|
||||
// void convertRadioData_216_to_217(RadioData &settings);
|
||||
|
||||
// Conversions 217 to 218
|
||||
void convertModelData_217_to_218(ModelData &model);
|
||||
void convertRadioData_217_to_218(RadioData &settings);
|
||||
// // Conversions 217 to 218
|
||||
// void convertModelData_217_to_218(ModelData &model);
|
||||
// void convertRadioData_217_to_218(RadioData &settings);
|
||||
|
||||
// Conversions 218 to 219
|
||||
void convertModelData_218_to_219(ModelData &model);
|
||||
void convertRadioData_218_to_219(RadioData &settings);
|
||||
// // Conversions 218 to 219
|
||||
// void convertModelData_218_to_219(ModelData &model);
|
||||
// void convertRadioData_218_to_219(RadioData &settings);
|
||||
|
||||
|
||||
// Conversions 219 to 220
|
||||
void convertModelData_219_to_220(ModelData &model);
|
||||
void convertRadioData_219_to_220(RadioData &settings);
|
||||
|
||||
@@ -68,6 +68,18 @@
|
||||
|
||||
typedef TimerData TimerData_v220;
|
||||
|
||||
static void convertToStr(char* str, size_t len)
|
||||
{
|
||||
for (int c = 0; c < len; c++) {
|
||||
str[c] = zchar2char(str[c]);
|
||||
}
|
||||
// Trim string
|
||||
while(len > 0 && str[len-1]) {
|
||||
if (str[len - 1] != ' ' && str[len - 1] != '\0') break;
|
||||
str[--len] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
void convertModelData_219_to_220(ModelData &model)
|
||||
{
|
||||
ModelData* oldModelAllocated = (ModelData*)malloc(sizeof(ModelData));
|
||||
@@ -76,11 +88,77 @@ void convertModelData_219_to_220(ModelData &model)
|
||||
memcpy(&oldModel, &model, sizeof(ModelData));
|
||||
ModelData& newModel = (ModelData&)model;
|
||||
|
||||
convertToStr(model.header.name, LEN_MODEL_NAME_219);
|
||||
|
||||
for (uint8_t i=0; i<MAX_TIMERS_219; i++) {
|
||||
//TODO: convert to new timers v220
|
||||
//TimerData & timer = newModel.timers[i];
|
||||
TimerData& timer = newModel.timers[i];
|
||||
convertToStr(timer.name, LEN_TIMER_NAME_219);
|
||||
}
|
||||
|
||||
// MixData::name
|
||||
for (uint8_t i=0; i<MAX_MIXERS_219; ++i) {
|
||||
convertToStr(model.mixData[i].name, LEN_EXPOMIX_NAME_219);
|
||||
}
|
||||
|
||||
// LimitData::name
|
||||
for (uint8_t i=0; i<MAX_OUTPUT_CHANNELS_219; ++i) {
|
||||
convertToStr(model.limitData[i].name, LEN_CHANNEL_NAME_219);
|
||||
}
|
||||
|
||||
// ExpoData::name
|
||||
for (uint8_t i=0; i<MAX_EXPOS_219; ++i) {
|
||||
convertToStr(model.expoData[i].name, LEN_EXPOMIX_NAME_219);
|
||||
}
|
||||
|
||||
// CurveHeader.name
|
||||
for (uint8_t i=0; i<MAX_CURVES_219; ++i) {
|
||||
convertToStr(model.expoData[i].name, LEN_CURVE_NAME_219);
|
||||
}
|
||||
|
||||
// CustomFunctionData::play.name
|
||||
for (uint8_t i = 0; i < MAX_SPECIAL_FUNCTIONS_219; ++i) {
|
||||
CustomFunctionData* cfn = &(model.customFn[i]);
|
||||
if (cfn->func == FUNC_PLAY_TRACK || cfn->func == FUNC_BACKGND_MUSIC) {
|
||||
convertToStr(cfn->play.name, LEN_FUNCTION_NAME_219);
|
||||
}
|
||||
}
|
||||
|
||||
// GVarData::name ?
|
||||
for (uint8_t i=0; i<MAX_GVARS_219; ++i) {
|
||||
convertToStr(model.gvars[i].name, LEN_GVAR_NAME_219);
|
||||
}
|
||||
|
||||
// ScriptData::name ?
|
||||
// ScriptData::file ?
|
||||
for (uint8_t i=0; i<MAX_SCRIPTS_219; ++i) {
|
||||
convertToStr(model.scriptsData[i].file, LEN_SCRIPT_FILENAME);
|
||||
convertToStr(model.scriptsData[i].name, LEN_SCRIPT_NAME);
|
||||
}
|
||||
|
||||
// Input names
|
||||
for (uint8_t i=0; i<MAX_INPUTS_219; ++i) {
|
||||
convertToStr(model.inputNames[i], LEN_INPUT_NAME_219);
|
||||
}
|
||||
|
||||
// Telemetry names
|
||||
for (uint8_t i=0; i<MAX_TELEMETRY_SENSORS_219; ++i) {
|
||||
convertToStr(model.telemetrySensors[i].label, TELEM_LABEL_LEN_219);
|
||||
}
|
||||
|
||||
// FlightModeData name
|
||||
for (uint8_t i=0; i<MAX_FLIGHT_MODES_219; ++i) {
|
||||
convertToStr(model.flightModeData[i].name, LEN_FLIGHT_MODE_NAME_219);
|
||||
}
|
||||
|
||||
//
|
||||
// TODO: convert all names from zchar to "normal" chars
|
||||
//
|
||||
|
||||
// g_model.header.bitmap ???? really ????
|
||||
// TelemetryScriptData::file ?
|
||||
// ModuleData::pxx2.receiverName
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
// Clear CustomScreenData + TopBarPersistentData
|
||||
// as they cannot be converted (missing option types)
|
||||
@@ -89,9 +167,6 @@ void convertModelData_219_to_220(ModelData &model)
|
||||
sizeof(newModel.topbarData));
|
||||
//TODO: set defaults as with new model
|
||||
#endif
|
||||
|
||||
//TODO: convert all names from zchar to "normal" chars
|
||||
|
||||
free(oldModelAllocated);
|
||||
}
|
||||
|
||||
@@ -117,20 +192,19 @@ void convertRadioData_219_to_220(RadioData & settings)
|
||||
defaultTheme->init();
|
||||
#endif
|
||||
|
||||
//
|
||||
// TODO: convert all names from zchar to "normal" chars
|
||||
//
|
||||
// g_model.telemetrySensors[i].label
|
||||
// g_model.header.name
|
||||
// g_model.header.bitmap // ???? really ????
|
||||
// timer.name
|
||||
// fm->name
|
||||
// expo->name
|
||||
// g_model.inputNames[chn]
|
||||
// mix->name
|
||||
// CurveHeader.name
|
||||
// cfn->play.name
|
||||
// limit->name
|
||||
for (int i = 0; i < NUM_SWITCHES_219; ++i) {
|
||||
char* sw_name = &(settings.switchNames[i][0]);
|
||||
convertToStr(sw_name, LEN_SWITCH_NAME_219);
|
||||
}
|
||||
|
||||
for (int i = 0; i < NUM_STICKS_219 + NUM_POTS_219 + NUM_SLIDERS_219; ++i) {
|
||||
char* sw_name = &(settings.anaNames[i][0]);
|
||||
convertToStr(sw_name, LEN_ANA_NAME_219);
|
||||
}
|
||||
|
||||
#if defined(PCBHORUS) || defined(PCBNV14)
|
||||
convertToStr(settings.bluetoothName, LEN_BLUETOOTH_NAME_219);
|
||||
#endif
|
||||
|
||||
free(oldSettingsAllocated);
|
||||
}
|
||||
|
||||
@@ -43,6 +43,25 @@
|
||||
#error "Unsupported Conversion for Radio"
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#define NUM_POTS_219 5
|
||||
#define NUM_SLIDERS_219 4
|
||||
#elif defined(PCBX9LITE)
|
||||
#define NUM_POTS_219 1
|
||||
#define NUM_SLIDERS_219 0
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(PCBXLITE) || defined(PCBX7)
|
||||
#define NUM_POTS_219 2
|
||||
#define NUM_SLIDERS_219 0
|
||||
#elif defined(PCBX9E)
|
||||
#define NUM_POTS_219 4
|
||||
#define NUM_SLIDERS_219 4
|
||||
#else
|
||||
#define NUM_POTS_219 3
|
||||
#define NUM_SLIDERS_219 2
|
||||
#endif
|
||||
|
||||
#define NUM_STICKS_219 4
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#define LEN_SWITCH_NAME_219 3
|
||||
#define LEN_ANA_NAME_219 3
|
||||
@@ -55,6 +74,7 @@
|
||||
#endif
|
||||
|
||||
#define LEN_GVAR_NAME_219 3
|
||||
#define TELEM_LABEL_LEN_219 4
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#define LEN_MODEL_NAME_219 15
|
||||
|
||||
+124
-166
@@ -31,106 +31,14 @@ void loadEEPROMFile(const char * filename)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9DP)
|
||||
#warning "TODO Make those tests on conversions work!"
|
||||
//TEST(Conversions, ConversionX9DPFrom22)
|
||||
//{
|
||||
// loadEEPROMFile(TESTS_PATH "/eeprom_22_x9d+.bin");
|
||||
//
|
||||
// eepromOpen();
|
||||
// eeLoadGeneralSettingsData();
|
||||
// convertRadioData_218_to_219(g_eeGeneral);
|
||||
// eeConvertModel(0, 218);
|
||||
// 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(CURVE_REF_CUSTOM, g_model.expoData[0].curve.type);
|
||||
// EXPECT_EQ(1, g_model.expoData[0].curve.value);
|
||||
// EXPECT_EQ(CURVE_REF_EXPO, g_model.expoData[1].curve.type);
|
||||
// EXPECT_EQ(20, g_model.expoData[1].curve.value);
|
||||
// EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
// EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]);
|
||||
// EXPECT_ZSTREQ("Tes", g_model.gvars[0].name);
|
||||
// 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("Thr", g_model.inputNames[0]);
|
||||
// EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
// EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
// 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);
|
||||
//
|
||||
//#if defined(INTERNAL_MODULE_PXX2)
|
||||
// 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);
|
||||
//#else
|
||||
// EXPECT_EQ(MODULE_TYPE_NONE, g_model.moduleData[INTERNAL_MODULE].type);
|
||||
//#endif
|
||||
//
|
||||
// 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) && !defined(PCBXLITES)
|
||||
TEST(Conversions, ConversionXLiteFrom22)
|
||||
TEST(Conversions, ConversionX9DPFrom23)
|
||||
{
|
||||
loadEEPROMFile(TESTS_PATH "/eeprom_22_xlite.bin");
|
||||
loadEEPROMFile(TESTS_PATH "/eeprom_23_x9d+.bin");
|
||||
|
||||
eepromOpen();
|
||||
eeLoadGeneralSettingsData();
|
||||
convertRadioData_218_to_219(g_eeGeneral);
|
||||
eeConvertModel(0, 218);
|
||||
convertRadioData_219_to_220(g_eeGeneral);
|
||||
eeConvertModel(0, 219);
|
||||
eeLoadModel(0);
|
||||
|
||||
EXPECT_EQ(-30, g_eeGeneral.vBatMin);
|
||||
@@ -142,87 +50,137 @@ TEST(Conversions, ConversionXLiteFrom22)
|
||||
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_STREQ("Tes", g_eeGeneral.switchNames[0]); // ZSTREQ
|
||||
EXPECT_EQ(SWITCH_3POS, SWITCH_CONFIG(0));
|
||||
|
||||
EXPECT_ZSTREQ("Test", g_model.header.name);
|
||||
EXPECT_EQ(MODULE_TYPE_R9M_PXX1, g_model.moduleData[EXTERNAL_MODULE].type);
|
||||
EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, g_model.moduleData[EXTERNAL_MODULE].subType);
|
||||
EXPECT_STREQ("Test", g_model.header.name); // ZSTREQ
|
||||
EXPECT_EQ(TMRMODE_COUNT - 1 + SWSRC_SA0, g_model.timers[0].mode); // new!
|
||||
EXPECT_EQ(80, g_model.mixData[0].weight);
|
||||
EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.mixData[4].srcRaw);
|
||||
EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_model.mixData[4].swtch);
|
||||
EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
EXPECT_ZSTREQ("Thr", g_model.inputNames[0]);
|
||||
|
||||
EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
EXPECT_EQ(8, g_model.telemetrySensors[0].frskyInstance.physID);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
|
||||
EXPECT_EQ(LS_FUNC_VPOS, g_model.logicalSw[0].func);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.logicalSw[0].v1);
|
||||
EXPECT_EQ(0, g_model.logicalSw[0].v2);
|
||||
|
||||
EXPECT_EQ(TELEMETRY_SCREEN_TYPE_VALUES, g_model.screensType & 0x03);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.screens[0].lines[0].sources[0]);
|
||||
EXPECT_EQ(MIXSRC_TIMER3, g_model.screens[0].lines[0].sources[1]);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBX7)
|
||||
TEST(Conversions, ConversionX7From22)
|
||||
{
|
||||
loadEEPROMFile(TESTS_PATH "/eeprom_22_x7.bin");
|
||||
|
||||
eepromOpen();
|
||||
eeLoadGeneralSettingsData();
|
||||
convertRadioData_218_to_219(g_eeGeneral);
|
||||
eeConvertModel(0, 218);
|
||||
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(MODULE_TYPE_R9M_PXX1, g_model.moduleData[EXTERNAL_MODULE].type);
|
||||
EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, g_model.moduleData[EXTERNAL_MODULE].subType);
|
||||
EXPECT_EQ(80, g_model.mixData[0].weight);
|
||||
EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.mixData[4].srcRaw);
|
||||
EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_model.mixData[4].swtch);
|
||||
EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
EXPECT_ZSTREQ("Thr", g_model.inputNames[0]);
|
||||
|
||||
EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
EXPECT_EQ(9, g_model.telemetrySensors[0].frskyInstance.physID);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
|
||||
EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]);
|
||||
EXPECT_ZSTREQ("FMtest", g_model.flightModeData[1].name);
|
||||
EXPECT_EQ(45, g_model.flightModeData[1].swtch);
|
||||
EXPECT_ZSTREQ("Tes", g_model.gvars[0].name);
|
||||
EXPECT_STREQ("Tes", g_model.gvars[0].name); // ZSTREQ
|
||||
EXPECT_STREQ("Test", g_model.flightModeData[0].name); // ZSTREQ
|
||||
|
||||
EXPECT_EQ(LS_FUNC_VPOS, g_model.logicalSw[0].func);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.logicalSw[0].v1);
|
||||
EXPECT_EQ(0, g_model.logicalSw[0].v2);
|
||||
#if defined(INTERNAL_MODULE_PXX2)
|
||||
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);
|
||||
#else
|
||||
EXPECT_EQ(MODULE_TYPE_NONE, g_model.moduleData[INTERNAL_MODULE].type);
|
||||
#endif
|
||||
|
||||
EXPECT_EQ(TELEMETRY_SCREEN_TYPE_VALUES, g_model.screensType & 0x03);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.screens[0].lines[0].sources[0]);
|
||||
EXPECT_EQ(MIXSRC_TIMER3, g_model.screens[0].lines[0].sources[1]);
|
||||
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_STREQ("Rud", g_model.inputNames[0]); // ZSTREQ
|
||||
EXPECT_STREQ("Tes", g_model.telemetrySensors[0].label); // ZSTREQ
|
||||
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) && !defined(PCBXLITES)
|
||||
// TEST(Conversions, ConversionXLiteFrom22)
|
||||
// {
|
||||
// loadEEPROMFile(TESTS_PATH "/eeprom_22_xlite.bin");
|
||||
|
||||
// eepromOpen();
|
||||
// eeLoadGeneralSettingsData();
|
||||
// convertRadioData_218_to_219(g_eeGeneral);
|
||||
// eeConvertModel(0, 218);
|
||||
// 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(MODULE_TYPE_R9M_PXX1, g_model.moduleData[EXTERNAL_MODULE].type);
|
||||
// EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, g_model.moduleData[EXTERNAL_MODULE].subType);
|
||||
// EXPECT_EQ(80, g_model.mixData[0].weight);
|
||||
// EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
// EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.mixData[4].srcRaw);
|
||||
// EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_model.mixData[4].swtch);
|
||||
// EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
// EXPECT_ZSTREQ("Thr", g_model.inputNames[0]);
|
||||
|
||||
// EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
// EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
// EXPECT_EQ(8, g_model.telemetrySensors[0].frskyInstance.physID);
|
||||
// EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
|
||||
// EXPECT_EQ(LS_FUNC_VPOS, g_model.logicalSw[0].func);
|
||||
// EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.logicalSw[0].v1);
|
||||
// EXPECT_EQ(0, g_model.logicalSw[0].v2);
|
||||
|
||||
// EXPECT_EQ(TELEMETRY_SCREEN_TYPE_VALUES, g_model.screensType & 0x03);
|
||||
// EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.screens[0].lines[0].sources[0]);
|
||||
// EXPECT_EQ(MIXSRC_TIMER3, g_model.screens[0].lines[0].sources[1]);
|
||||
// }
|
||||
// #endif
|
||||
|
||||
// #if defined(PCBX7)
|
||||
// TEST(Conversions, ConversionX7From22)
|
||||
// {
|
||||
// loadEEPROMFile(TESTS_PATH "/eeprom_22_x7.bin");
|
||||
|
||||
// eepromOpen();
|
||||
// eeLoadGeneralSettingsData();
|
||||
// convertRadioData_218_to_219(g_eeGeneral);
|
||||
// eeConvertModel(0, 218);
|
||||
// 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(MODULE_TYPE_R9M_PXX1, g_model.moduleData[EXTERNAL_MODULE].type);
|
||||
// EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, g_model.moduleData[EXTERNAL_MODULE].subType);
|
||||
// EXPECT_EQ(80, g_model.mixData[0].weight);
|
||||
// EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
// EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.mixData[4].srcRaw);
|
||||
// EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_model.mixData[4].swtch);
|
||||
// EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
// EXPECT_ZSTREQ("Thr", g_model.inputNames[0]);
|
||||
|
||||
// EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
// EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
// EXPECT_EQ(9, g_model.telemetrySensors[0].frskyInstance.physID);
|
||||
// EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
|
||||
// EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]);
|
||||
// EXPECT_ZSTREQ("FMtest", g_model.flightModeData[1].name);
|
||||
// EXPECT_EQ(45, g_model.flightModeData[1].swtch);
|
||||
// EXPECT_ZSTREQ("Tes", g_model.gvars[0].name);
|
||||
|
||||
// EXPECT_EQ(LS_FUNC_VPOS, g_model.logicalSw[0].func);
|
||||
// EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.logicalSw[0].v1);
|
||||
// EXPECT_EQ(0, g_model.logicalSw[0].v2);
|
||||
|
||||
// EXPECT_EQ(TELEMETRY_SCREEN_TYPE_VALUES, g_model.screensType & 0x03);
|
||||
// EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.screens[0].lines[0].sources[0]);
|
||||
// EXPECT_EQ(MIXSRC_TIMER3, g_model.screens[0].lines[0].sources[1]);
|
||||
// }
|
||||
// #endif
|
||||
|
||||
#if 0 //TODO defined(PCBX10) && !defined(RADIO_FAMILY_T16)
|
||||
TEST(Conversions, ConversionX10From22)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user