mirror of
https://github.com/opentx/opentx.git
synced 2025-07-18 05:45:21 +03:00
Conversion fixes
This commit is contained in:
parent
348fff9a0d
commit
a04cdb32da
6 changed files with 62 additions and 41 deletions
|
@ -46,8 +46,20 @@
|
||||||
#define MAX_SCRIPTS 9
|
#define MAX_SCRIPTS 9
|
||||||
#define MAX_INPUTS 32
|
#define MAX_INPUTS 32
|
||||||
#define MAX_TRAINER_CHANNELS 16
|
#define MAX_TRAINER_CHANNELS 16
|
||||||
#define MAX_TELEMETRY_SENSORS 64
|
#define MAX_TELEMETRY_SENSORS 60
|
||||||
#define MAX_CUSTOM_SCREENS 5
|
#define MAX_CUSTOM_SCREENS 5
|
||||||
|
#elif defined(PCBX9)
|
||||||
|
#define MAX_MODELS 60
|
||||||
|
#define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
|
||||||
|
#define MAX_FLIGHT_MODES 9
|
||||||
|
#define MAX_MIXERS 64
|
||||||
|
#define MAX_EXPOS 64
|
||||||
|
#define MAX_LOGICAL_SWITCHES 64
|
||||||
|
#define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches
|
||||||
|
#define MAX_SCRIPTS 7
|
||||||
|
#define MAX_INPUTS 32
|
||||||
|
#define MAX_TRAINER_CHANNELS 16
|
||||||
|
#define MAX_TELEMETRY_SENSORS 60
|
||||||
#elif defined(PCBTARANIS)
|
#elif defined(PCBTARANIS)
|
||||||
#define MAX_MODELS 60
|
#define MAX_MODELS 60
|
||||||
#define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
|
#define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
|
||||||
|
|
|
@ -915,16 +915,16 @@ static inline void check_struct()
|
||||||
CHKSIZE(ModelData, 6117);
|
CHKSIZE(ModelData, 6117);
|
||||||
#elif defined(PCBX9E)
|
#elif defined(PCBX9E)
|
||||||
CHKSIZE(RadioData, 960);
|
CHKSIZE(RadioData, 960);
|
||||||
CHKSIZE(ModelData, 6550);
|
CHKSIZE(ModelData, 6554);
|
||||||
#elif defined(PCBX9D) || defined(PCBX9DP)
|
#elif defined(PCBX9D) || defined(PCBX9DP)
|
||||||
CHKSIZE(RadioData, 880);
|
CHKSIZE(RadioData, 880);
|
||||||
CHKSIZE(ModelData, 6281);
|
CHKSIZE(ModelData, 6541);
|
||||||
#elif defined(PCBSKY9X)
|
#elif defined(PCBSKY9X)
|
||||||
CHKSIZE(RadioData, 735);
|
CHKSIZE(RadioData, 735);
|
||||||
CHKSIZE(ModelData, 5279);
|
CHKSIZE(ModelData, 5279);
|
||||||
#elif defined(PCBHORUS)
|
#elif defined(PCBHORUS)
|
||||||
CHKSIZE(RadioData, 855);
|
CHKSIZE(RadioData, 855);
|
||||||
CHKSIZE(ModelData, 9726);
|
CHKSIZE(ModelData, 9674);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef CHKSIZE
|
#undef CHKSIZE
|
||||||
|
|
|
@ -6,7 +6,7 @@ if(PCB STREQUAL SKY9X OR PCB STREQUAL AR9X OR PCB STREQUAL 9XRPRO)
|
||||||
set(EEPROM_CONVERSIONS 216)
|
set(EEPROM_CONVERSIONS 216)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PCB STREQUAL X7 OR PCB STREQUAL XLITE)
|
if(PCB STREQUAL X7 OR PCB STREQUAL XLITE OR PCB STREQUAL X9E)
|
||||||
set(EEPROM_CONVERSIONS 218)
|
set(EEPROM_CONVERSIONS 218)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -901,7 +901,7 @@ void convertModelData_216_to_217(ModelData &model)
|
||||||
// PPM center range
|
// PPM center range
|
||||||
// Telemetry custom screens
|
// Telemetry custom screens
|
||||||
|
|
||||||
assert(sizeof(ModelData_v216) <= sizeof(ModelData));
|
static_assert(sizeof(ModelData_v216) <= sizeof(ModelData));
|
||||||
|
|
||||||
ModelData_v216 oldModel;
|
ModelData_v216 oldModel;
|
||||||
memcpy(&oldModel, &model, sizeof(oldModel));
|
memcpy(&oldModel, &model, sizeof(oldModel));
|
||||||
|
@ -1076,7 +1076,7 @@ void convertModelData_216_to_217(ModelData &model)
|
||||||
|
|
||||||
void convertModelData_217_to_218(ModelData &model)
|
void convertModelData_217_to_218(ModelData &model)
|
||||||
{
|
{
|
||||||
assert(sizeof(ModelData_v217) <= sizeof(ModelData));
|
static_assert(sizeof(ModelData_v217) <= sizeof(ModelData));
|
||||||
|
|
||||||
ModelData_v217 oldModel;
|
ModelData_v217 oldModel;
|
||||||
memcpy(&oldModel, &model, sizeof(oldModel));
|
memcpy(&oldModel, &model, sizeof(oldModel));
|
||||||
|
|
|
@ -34,7 +34,7 @@ typedef ModelData ModelData_v219;
|
||||||
|
|
||||||
void convertModelData_218_to_219(ModelData &model)
|
void convertModelData_218_to_219(ModelData &model)
|
||||||
{
|
{
|
||||||
assert(sizeof(ModelData_v218) <= sizeof(ModelData));
|
static_assert(sizeof(ModelData_v218) <= sizeof(ModelData));
|
||||||
|
|
||||||
ModelData_v218 oldModel;
|
ModelData_v218 oldModel;
|
||||||
memcpy(&oldModel, &model, sizeof(oldModel));
|
memcpy(&oldModel, &model, sizeof(oldModel));
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
#define LEN_FUNCTION_NAME_218 8
|
#define LEN_FUNCTION_NAME_218 8
|
||||||
#define MAX_CURVES_218 32
|
#define MAX_CURVES_218 32
|
||||||
#define MAX_CURVE_POINTS_218 512
|
#define MAX_CURVE_POINTS_218 512
|
||||||
#elif defined(CPUARM)
|
#else
|
||||||
#define LEN_MODEL_NAME_218 10
|
#define LEN_MODEL_NAME_218 10
|
||||||
#define LEN_TIMER_NAME_218 3
|
#define LEN_TIMER_NAME_218 3
|
||||||
#define LEN_FLIGHT_MODE_NAME_218 6
|
#define LEN_FLIGHT_MODE_NAME_218 6
|
||||||
|
@ -91,11 +91,6 @@
|
||||||
#define LEN_FUNCTION_NAME_218 6
|
#define LEN_FUNCTION_NAME_218 6
|
||||||
#define MAX_CURVES_218 16
|
#define MAX_CURVES_218 16
|
||||||
#define MAX_CURVE_POINTS_218 512
|
#define MAX_CURVE_POINTS_218 512
|
||||||
#else
|
|
||||||
#define LEN_MODEL_NAME_218 10
|
|
||||||
#define LEN_FLIGHT_MODE_NAME_218 6
|
|
||||||
#define MAX_CURVES_218 8
|
|
||||||
#define MAX_CURVE_POINTS_218 (112-MAX_CURVES_218)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBHORUS)
|
#if defined(PCBHORUS)
|
||||||
|
@ -261,24 +256,30 @@ PACK(typedef struct { // Logical Switches data
|
||||||
uint8_t duration;
|
uint8_t duration;
|
||||||
}) LogicalSwitchData_v218;
|
}) LogicalSwitchData_v218;
|
||||||
|
|
||||||
|
#if defined(PCBTARANIS)
|
||||||
|
#define CFN_SPARE_TYPE int32_t
|
||||||
|
#else
|
||||||
|
#define CFN_SPARE_TYPE int16_t
|
||||||
|
#endif
|
||||||
|
|
||||||
PACK(typedef struct {
|
PACK(typedef struct {
|
||||||
int16_t swtch:9;
|
int16_t swtch:9;
|
||||||
uint16_t func:7;
|
uint16_t func:7;
|
||||||
PACK(union {
|
PACK(union {
|
||||||
PACK(struct {
|
PACK(struct {
|
||||||
char name[8];
|
char name[LEN_FUNCTION_NAME_218];
|
||||||
}) play;
|
}) play;
|
||||||
|
|
||||||
PACK(struct {
|
PACK(struct {
|
||||||
int16_t val;
|
int16_t val;
|
||||||
uint8_t mode;
|
uint8_t mode;
|
||||||
uint8_t param;
|
uint8_t param;
|
||||||
int32_t spare2;
|
CFN_SPARE_TYPE spare2;
|
||||||
}) all;
|
}) all;
|
||||||
|
|
||||||
PACK(struct {
|
PACK(struct {
|
||||||
int32_t val1;
|
int32_t val1;
|
||||||
int32_t val2;
|
CFN_SPARE_TYPE val2;
|
||||||
}) clear;
|
}) clear;
|
||||||
});
|
});
|
||||||
uint8_t active;
|
uint8_t active;
|
||||||
|
@ -326,13 +327,13 @@ PACK(struct FrSkyTelemetryData_v217 {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBX12S)
|
#if defined(PCBX12S)
|
||||||
#define MODELDATA_EXTRA_218 uint8_t spare:3;uint8_t trainerMode:3;uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1];ScriptData scriptsData[MAX_SCRIPTS_218];char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218];;uint8_t potsWarnEnabled;;int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS];;
|
#define MODELDATA_EXTRA_218 uint8_t spare:3;uint8_t trainerMode:3;uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1];ScriptData scriptsData[MAX_SCRIPTS_218];char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218];;uint8_t potsWarnEnabled;;int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS];;
|
||||||
#elif defined(PCBX10)
|
#elif defined(PCBX10)
|
||||||
#define MODELDATA_EXTRA_218 uint8_t spare:3;;uint8_t trainerMode:3;;uint8_t potsWarnMode:2;; ModuleData_v218 moduleData[NUM_MODULES+1];ScriptData scriptsData[MAX_SCRIPTS_218];;char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218];;uint8_t potsWarnEnabled;;int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS];;uint8_t potsWarnSpares[NUM_DUMMY_ANAS];;
|
#define MODELDATA_EXTRA_218 uint8_t spare:3;;uint8_t trainerMode:3;;uint8_t potsWarnMode:2;; ModuleData_v218 moduleData[NUM_MODULES+1];ScriptData scriptsData[MAX_SCRIPTS_218];;char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218];;uint8_t potsWarnEnabled;;int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS];;uint8_t potsWarnSpares[NUM_DUMMY_ANAS];;
|
||||||
#elif defined(PCBTARANIS)
|
#elif defined(PCBTARANIS)
|
||||||
#define MODELDATA_EXTRA_218 uint8_t spare:3; uint8_t trainerMode:3; uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1]; ScriptData scriptsData[MAX_SCRIPTS_218]; char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS];
|
#define MODELDATA_EXTRA_218 uint8_t spare:3; uint8_t trainerMode:3; uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1]; ScriptData scriptsData[MAX_SCRIPTS_218]; char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS];
|
||||||
#elif defined(PCBSKY9X)
|
#elif defined(PCBSKY9X)
|
||||||
#define MODELDATA_EXTRA_218 uint8_t spare:6; uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1]; char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS]; uint8_t rxBattAlarms[2];
|
#define MODELDATA_EXTRA_218 uint8_t spare:6; uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1]; char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS]; uint8_t rxBattAlarms[2];
|
||||||
#else
|
#else
|
||||||
#define MODELDATA_EXTRA_218
|
#define MODELDATA_EXTRA_218
|
||||||
#endif
|
#endif
|
||||||
|
@ -382,11 +383,23 @@ PACK(typedef struct {
|
||||||
|
|
||||||
#if defined(PCBHORUS)
|
#if defined(PCBHORUS)
|
||||||
// TODO conversion for custom screens?
|
// TODO conversion for custom screens?
|
||||||
#else
|
#elif defined(PCBTARANIS)
|
||||||
uint8_t view;
|
uint8_t view;
|
||||||
#endif
|
#endif
|
||||||
}) ModelData_v218;
|
}) ModelData_v218;
|
||||||
|
|
||||||
|
#if defined(PCBHORUS)
|
||||||
|
static_assert(sizeof(ModelData_v218) == 9380);
|
||||||
|
#elif defined(PCBX9E)
|
||||||
|
static_assert(sizeof(ModelData_v218) == 6520);
|
||||||
|
#elif defined(PCBX9D)
|
||||||
|
static_assert(sizeof(ModelData_v218) == 6507);
|
||||||
|
#elif defined(PCBXLITE) || defined(PCBX7)
|
||||||
|
static_assert(sizeof(ModelData_v218) == 6025);
|
||||||
|
#elif defined(PCBSKY9X)
|
||||||
|
static_assert(sizeof(ModelData_v218) == 5188);
|
||||||
|
#endif
|
||||||
|
|
||||||
#define EXTRA_GENERAL_FIELDS_GENERAL_218 \
|
#define EXTRA_GENERAL_FIELDS_GENERAL_218 \
|
||||||
uint8_t backlightBright; \
|
uint8_t backlightBright; \
|
||||||
uint32_t globalTimer; \
|
uint32_t globalTimer; \
|
||||||
|
@ -453,12 +466,8 @@ PACK(typedef struct {
|
||||||
uint8_t rotarySteps; \
|
uint8_t rotarySteps; \
|
||||||
char switchNames[NUM_SWITCHES_218][LEN_SWITCH_NAME_218]; \
|
char switchNames[NUM_SWITCHES_218][LEN_SWITCH_NAME_218]; \
|
||||||
char anaNames[NUM_STICKS+NUM_POTS+NUM_SLIDERS][LEN_ANA_NAME_218];
|
char anaNames[NUM_STICKS+NUM_POTS+NUM_SLIDERS][LEN_ANA_NAME_218];
|
||||||
#elif defined(CPUARM)
|
|
||||||
#define EXTRA_GENERAL_FIELDS_218 EXTRA_GENERAL_FIELDS_GENERAL_218
|
|
||||||
#elif defined(PXX)
|
|
||||||
#define EXTRA_GENERAL_FIELDS_218 uint8_t countryCode;
|
|
||||||
#else
|
#else
|
||||||
#define EXTRA_GENERAL_FIELDS_218
|
#define EXTRA_GENERAL_FIELDS_218 EXTRA_GENERAL_FIELDS_GENERAL_218
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBHORUS)
|
#if defined(PCBHORUS)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue