From f8ab3770e4a2b2bb227f45e95aac8297c376c791 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sat, 9 Oct 2021 13:28:39 +0200 Subject: [PATCH] Updated generated yaml parser structs --- radio/src/dataconstants.h | 5 - radio/src/datastructs.h | 48 ++- radio/src/myeeprom.h | 8 +- radio/src/storage/yaml/CMakeLists.txt | 9 +- radio/src/storage/yaml/yaml_datastructs.cpp | 15 +- .../storage/yaml/yaml_datastructs_funcs.cpp | 98 ++++++- ...cts_x9dp.cpp => yaml_datastructs_nv14.cpp} | 276 +++++++++++------- .../src/storage/yaml/yaml_datastructs_t12.cpp | 133 ++++++--- .../src/storage/yaml/yaml_datastructs_t8.cpp | 141 ++++++--- .../storage/yaml/yaml_datastructs_tlite.cpp | 133 ++++++--- .../storage/yaml/yaml_datastructs_tx12.cpp | 133 ++++++--- .../src/storage/yaml/yaml_datastructs_x10.cpp | 134 ++++++--- .../storage/yaml/yaml_datastructs_x12s.cpp | 133 ++++++--- .../src/storage/yaml/yaml_datastructs_x7.cpp | 133 ++++++--- .../src/storage/yaml/yaml_datastructs_x9d.cpp | 141 ++++++--- .../src/storage/yaml/yaml_datastructs_x9e.cpp | 133 ++++++--- .../storage/yaml/yaml_datastructs_x9lite.cpp | 133 ++++++--- .../storage/yaml/yaml_datastructs_x9lites.cpp | 133 ++++++--- .../storage/yaml/yaml_datastructs_xlite.cpp | 133 ++++++--- .../storage/yaml/yaml_datastructs_xlites.cpp | 133 ++++++--- radio/src/targets/nv14/CMakeLists.txt | 5 + radio/src/targets/taranis/CMakeLists.txt | 6 +- tools/generate-yaml.sh | 107 +++++++ 23 files changed, 1649 insertions(+), 674 deletions(-) rename radio/src/storage/yaml/{yaml_datastructs_x9dp.cpp => yaml_datastructs_nv14.cpp} (75%) create mode 100755 tools/generate-yaml.sh diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index b43013d3c..d1f4351d7 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -765,13 +765,8 @@ enum MixSources { MIXSRC_TX_VOLTAGE, LUA_EXPORT("tx-voltage", "Transmitter battery voltage [volts]") MIXSRC_TX_TIME, LUA_EXPORT("clock", "RTC clock [minutes from midnight]") -#if defined(INTERNAL_GPS) MIXSRC_TX_GPS, MIXSRC_FIRST_RESERVE SKIP, -#else - MIXSRC_FIRST_RESERVE SKIP, - MIXSRC_RESERVE2 SKIP, -#endif MIXSRC_RESERVE3 SKIP, MIXSRC_RESERVE4 SKIP, MIXSRC_LAST_RESERVE SKIP, diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index e33784736..38232478c 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -76,11 +76,11 @@ PACK(struct MixData { uint16_t srcRaw:10 CUST(r_mixSrcRaw,w_mixSrcRaw); // srcRaw=0 means not used uint16_t carryTrim:1; uint16_t mixWarn:2; // mixer warning - uint16_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means := + uint16_t mltpx:2 ENUM(MixerMultiplex); uint16_t spare:1 SKIP; int32_t offset:14; int32_t swtch:9 CUST(r_swtchSrc,w_swtchSrc); - uint32_t flightModes:9; + uint32_t flightModes:9; //TODO ?? CurveRef curve; uint8_t delayUp; uint8_t delayDown; @@ -100,7 +100,7 @@ PACK(struct ExpoData { int16_t carryTrim:6; uint32_t chn:5; int32_t swtch:9 CUST(r_swtchSrc,w_swtchSrc); - uint32_t flightModes:9; + uint32_t flightModes:9; //TODO ?? int32_t weight:8 CUST(in_read_weight,in_write_weight); int32_t spare:1 SKIP; NOBACKUP(char name[LEN_EXPOMIX_NAME]); @@ -229,9 +229,9 @@ PACK(struct GVarData { PACK(struct TimerData { uint32_t start:22; - int32_t swtch:10; + int32_t swtch:10 CUST(r_swtchSrc,w_swtchSrc); int32_t value:22; - uint32_t mode:3; // timer mode (OFF, ON, Start, THs, TH%, THt) + uint32_t mode:3 ENUM(TimerModes); uint32_t countdownBeep:2; uint32_t minuteBeep:1; uint32_t persistent:2; @@ -461,7 +461,6 @@ PACK(struct ModuleData { uint8_t racingMode:1; char receiverName[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_NAME]; } pxx2); -#if defined(AFHDS2) NOBACKUP(struct { uint8_t rx_id[4]; uint8_t mode:3; @@ -477,8 +476,6 @@ PACK(struct ModuleData { rx_freq[1] = 0; } } flysky); -#endif -#if defined(AFHDS3) NOBACKUP(PACK(struct { uint8_t bindPower:3; uint8_t runPower:3; @@ -499,7 +496,6 @@ PACK(struct ModuleData { rx_freq[1] = value >> 8; } } afhds3)); -#endif } NAME(mod) FUNC(select_mod_type); // Helper functions to set both of the rfProto protocol at the same time @@ -810,15 +806,15 @@ PACK(struct TrainerData { PACK(struct RadioData { NOBACKUP(uint8_t version); - NOBACKUP(uint16_t variant); + NOBACKUP(uint16_t variant SKIP); CalibData calib[NUM_STICKS + STORAGE_NUM_POTS + STORAGE_NUM_SLIDERS + STORAGE_NUM_MOUSE_ANALOGS]; - NOBACKUP(uint16_t chkSum); + NOBACKUP(uint16_t chkSum SKIP); N_HORUS_FIELD(int8_t currModel); N_HORUS_FIELD(uint8_t contrast); NOBACKUP(uint8_t vBatWarn); NOBACKUP(int8_t txVoltageCalibration); - uint8_t backlightMode:3; - int8_t antennaMode:2; + uint8_t backlightMode:3 ENUM(BacklightMode); + int8_t antennaMode:2 ENUM(AntennaModes); uint8_t disableRtcWarning:1; uint8_t keysBacklight:1; int8_t spare1:1 SKIP; @@ -826,7 +822,7 @@ PACK(struct RadioData { NOBACKUP(uint8_t view); // index of view in main screen NOBACKUP(BUZZER_FIELD); /* 2bits */ NOBACKUP(uint8_t fai:1); - NOBACKUP(int8_t beepMode:2); // -2=quiet, -1=only alarms, 0=no keys, 1=all + NOBACKUP(int8_t beepMode:2 ENUM(BeeperMode) CUST(r_beeperMode,w_beeperMode)); NOBACKUP(uint8_t alarmsFlash:1); NOBACKUP(uint8_t disableMemoryWarning:1); NOBACKUP(uint8_t disableAlarmWarning:1); @@ -836,20 +832,20 @@ PACK(struct RadioData { NOBACKUP(uint8_t inactivityTimer); uint8_t telemetryBaudrate:3; SPLASH_MODE; /* 3bits */ - int8_t hapticMode:2; // -2=quiet, -1=only alarms, 0=no keys, 1=all + int8_t hapticMode:2 CUST(r_beeperMode,w_beeperMode); int8_t switchesDelay; NOBACKUP(uint8_t lightAutoOff); NOBACKUP(uint8_t templateSetup); // RETA order for receiver channels NOBACKUP(int8_t PPM_Multiplier); - NOBACKUP(int8_t hapticLength); + NOBACKUP(int8_t hapticLength CUST(r_5pos,w_5pos)); N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t spare2 SKIP)); N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t stickReverse)); - NOBACKUP(int8_t beepLength:3); - NOBACKUP(int8_t hapticStrength:3); + NOBACKUP(int8_t beepLength:3 CUST(r_5pos,w_5pos)); + NOBACKUP(int8_t hapticStrength:3 CUST(r_5pos,w_5pos)); NOBACKUP(uint8_t gpsFormat:1); NOBACKUP(uint8_t unexpectedShutdown:1); - NOBACKUP(uint8_t speakerPitch); - NOBACKUP(int8_t speakerVolume); + NOBACKUP(uint8_t speakerPitch CUST(r_spPitch,w_spPitch)); + NOBACKUP(int8_t speakerVolume CUST(r_vol,w_vol)); NOBACKUP(int8_t vBatMin CUST(r_vbat_min,w_vbat_min)); NOBACKUP(int8_t vBatMax CUST(r_vbat_max,w_vbat_max)); @@ -867,12 +863,12 @@ PACK(struct RadioData { NOBACKUP(uint8_t jackMode:2); NOBACKUP(uint8_t sportUpdatePower:1 SKIP); NOBACKUP(char ttsLanguage[2]); - NOBACKUP(int8_t beepVolume:4); - NOBACKUP(int8_t wavVolume:4); - NOBACKUP(int8_t varioVolume:4); - NOBACKUP(int8_t backgroundVolume:4); - NOBACKUP(int8_t varioPitch); - NOBACKUP(int8_t varioRange); + NOBACKUP(int8_t beepVolume:4 CUST(r_5pos,w_5pos)); + NOBACKUP(int8_t wavVolume:4 CUST(r_5pos,w_5pos)); + NOBACKUP(int8_t varioVolume:4 CUST(r_5pos,w_5pos)); + NOBACKUP(int8_t backgroundVolume:4 CUST(r_5pos,w_5pos)); + NOBACKUP(int8_t varioPitch CUST(r_vPitch,w_vPitch)); + NOBACKUP(int8_t varioRange CUST(r_vPitch,w_vPitch)); NOBACKUP(int8_t varioRepeat); CustomFunctionData customFn[MAX_SPECIAL_FUNCTIONS] FUNC(cfn_is_active); diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 23afbc136..fda84317a 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -157,9 +157,11 @@ enum CurveRefType { #define TRIM_LAST TRIM_AIL #endif -#define MLTPX_ADD 0 -#define MLTPX_MUL 1 -#define MLTPX_REP 2 +enum MixerMultiplex { + MLTPX_ADD = 0, + MLTPX_MUL = 1, + MLTPX_REP = 2, +}; #define GV1_SMALL 128 #define GV1_LARGE 1024 diff --git a/radio/src/storage/yaml/CMakeLists.txt b/radio/src/storage/yaml/CMakeLists.txt index 458201e53..386a1e2f4 100644 --- a/radio/src/storage/yaml/CMakeLists.txt +++ b/radio/src/storage/yaml/CMakeLists.txt @@ -6,10 +6,15 @@ set(SRC ${SRC} storage/yaml/yaml_tree_walker.cpp storage/yaml/yaml_modelslist.cpp storage/yaml/yaml_datastructs.cpp) +# Warning: this file must be kept in sync with 'yaml_datastructs.cpp' +# in the same directory. + if(PCB STREQUAL X12S) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x12s.cpp) elseif(PCB STREQUAL X10) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x10.cpp) +elseif(PCB STREQUAL NV14) + set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_nv14.cpp) elseif(PCB STREQUAL X7) if(PCBREV STREQUAL T12) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t12.cpp) @@ -32,10 +37,8 @@ elseif(PCB STREQUAL XLITES) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_xlites.cpp) elseif(PCB STREQUAL X9E) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9e.cpp) -elseif(PCB STREQUAL X9D) +elseif((PCB STREQUAL X9D) OR (PCB STREQUAL X9D+)) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9d.cpp) -elseif(PCB STREQUAL X9D+) - set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9dp.cpp) else() message(FATAL_ERROR "PCB '${PCB}' is not supported by YAML storage") endif() diff --git a/radio/src/storage/yaml/yaml_datastructs.cpp b/radio/src/storage/yaml/yaml_datastructs.cpp index 27f4b6109..c5cfeced6 100644 --- a/radio/src/storage/yaml/yaml_datastructs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs.cpp @@ -22,12 +22,17 @@ #include "opentx.h" #include "yaml_node.h" +// Warning: this file must be kept in sync with the CMakeLists.txt +// in the same directory. + #include "yaml_datastructs_funcs.cpp" -#if defined(PCBX10) - #include "yaml_datastructs_x10.cpp" -#elif defined(PCBX12S) +#if defined(PCBX12S) #include "yaml_datastructs_x12s.cpp" +#elif defined(PCBX10) + #include "yaml_datastructs_x10.cpp" +#elif defined(PCBNV14) + #include "yaml_datastructs_nv14.cpp" #elif defined(PCBX7) #if defined(RADIO_T12) #include "yaml_datastructs_t12.cpp" @@ -50,10 +55,8 @@ #include "yaml_datastructs_xlites.cpp" #elif defined(PCBX9E) #include "yaml_datastructs_x9e.cpp" -#elif defined(PCBX9D) +#elif defined(PCBX9D) || defined(PCBX9DP) #include "yaml_datastructs_x9d.cpp" -#elif defined(PCBX9DP) - #include "yaml_datastructs_x9dp.cpp" #else #error "Board not supported by YAML storage" #endif diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index 187c69f5c..bc27df350 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -141,7 +141,8 @@ static uint8_t select_mod_type(uint8_t* data, uint32_t bitoffs) data += bitoffs >> 3UL; data -= offsetof(ModuleData, ppm); - switch(((ModuleData*)data)->type) { + ModuleData* mod_data = reinterpret_cast(data); + switch(mod_data->type) { case MODULE_TYPE_NONE: case MODULE_TYPE_PPM: case MODULE_TYPE_DSM2: @@ -162,8 +163,11 @@ static uint8_t select_mod_type(uint8_t* data, uint32_t bitoffs) case MODULE_TYPE_R9M_LITE_PRO_PXX2: case MODULE_TYPE_XJT_LITE_PXX2: return 5; - case MODULE_TYPE_AFHDS3: - return 7; + case MODULE_TYPE_FLYSKY: + if (mod_data->subType == FLYSKY_SUBTYPE_AFHDS2A) + return 6; + if (mod_data->subType == FLYSKY_SUBTYPE_AFHDS3) + return 7; } return 0; } @@ -171,6 +175,7 @@ static uint8_t select_mod_type(uint8_t* data, uint32_t bitoffs) static uint8_t select_custom_fn(uint8_t* data, uint32_t bitoffs) { // always use 'all' + //TODO return 1; } @@ -298,8 +303,19 @@ static uint32_t r_swtchSrc(const YamlNode* node, const char* val, uint8_t val_le ival = SWSRC_FIRST_LOGICAL_SWITCH + yaml_str2int(val+1, val_len-1) - 1; } - //TODO: Flight modes ('FM[0-9]') - //TODO: Sensors ('Sensor[0-9]') + else if (val_len == 3 + && val[0] == 'F' + && val[1] == 'M' + && (val[2] >= '0' && val[2] <= '9')) { + + ival = SWSRC_FIRST_FLIGHT_MODE + (val[3] - '0'); + } + else if (val_len >= 2 + && val[0] == 'T' + && (val[1] >= '0' && val[1] <= '9')) { + + ival = SWSRC_FIRST_SENSOR + yaml_str2int(val+1, val_len-1) - 1; + } else { ival = yaml_parse_enum(enum_SwitchSources, val, val_len); } @@ -340,14 +356,16 @@ static bool w_swtchSrc(const YamlNode* node, uint32_t val, yaml_writer_func wf, else if (sval >= SWSRC_FIRST_FLIGHT_MODE && sval <= SWSRC_LAST_FLIGHT_MODE) { - //TODO - return true; + wf(opaque, "FM", 2); + str = yaml_unsigned2str(sval - SWSRC_FIRST_FLIGHT_MODE + 1); + return wf(opaque,str, strlen(str)); } else if (sval >= SWSRC_FIRST_SENSOR && sval <= SWSRC_LAST_SENSOR) { - //TODO - return true; + wf(opaque, "T", 2); + str = yaml_unsigned2str(sval - SWSRC_FIRST_SENSOR + 1); + return wf(opaque,str, strlen(str)); } str = yaml_output_enum(sval, enum_SwitchSources); @@ -469,3 +487,65 @@ static bool w_swtchWarn(const YamlNode* node, uint32_t val, yaml_writer_func wf, return true; } + +extern const struct YamlIdStr enum_BeeperMode[]; + +static uint32_t r_beeperMode(const YamlNode* node, const char* val, uint8_t val_len) +{ + return yaml_parse_enum(enum_BeeperMode, val, val_len); +} + +static bool w_beeperMode(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) +{ + int32_t sval = yaml_to_signed(val,node->size); + const char* str = yaml_output_enum(sval, enum_BeeperMode); + return wf(opaque, str, strlen(str)); +} + +static uint32_t r_5pos(const YamlNode* node, const char* val, uint8_t val_len) +{ + return (uint32_t)(yaml_str2int(val, val_len) - 2); +} + +static bool w_5pos(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) +{ + int32_t sval = yaml_to_signed(val,node->size); + char* s = yaml_signed2str(sval + 2); + return wf(opaque, s, strlen(s)); +} + +static uint32_t r_vol(const YamlNode* node, const char* val, uint8_t val_len) +{ + return (uint32_t)(yaml_str2int(val, val_len) - VOLUME_LEVEL_DEF); +} + +static bool w_vol(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) +{ + int32_t sval = yaml_to_signed(val,node->size); + char* s = yaml_signed2str(sval + VOLUME_LEVEL_DEF); + return wf(opaque, s, strlen(s)); +} + +static uint32_t r_spPitch(const YamlNode* node, const char* val, uint8_t val_len) +{ + return (uint32_t)(yaml_str2int(val, val_len) / 15); +} + +static bool w_spPitch(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) +{ + char* s = yaml_signed2str(val * 15); + return wf(opaque, s, strlen(s)); +} + +static uint32_t r_vPitch(const YamlNode* node, const char* val, uint8_t val_len) +{ + return (uint32_t)(yaml_str2int(val, val_len) / 10); +} + +static bool w_vPitch(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) +{ + int32_t sval = yaml_to_signed(val,node->size); + char* s = yaml_signed2str(sval * 10); + return wf(opaque, s, strlen(s)); +} + diff --git a/radio/src/storage/yaml/yaml_datastructs_x9dp.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp similarity index 75% rename from radio/src/storage/yaml/yaml_datastructs_x9dp.cpp rename to radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 2a978e441..a391ad232 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9dp.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,30 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_ZoneOptionValueEnum[] = { + { ZOV_Unsigned, "Unsigned" }, + { ZOV_Signed, "Signed" }, + { ZOV_Bool, "Bool" }, + { ZOV_String, "String" }, + { 0, NULL } +}; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -41,9 +89,6 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_Ail, "Ail" }, { MIXSRC_POT1, "POT1" }, { MIXSRC_POT2, "POT2" }, - { MIXSRC_POT3, "POT3" }, - { MIXSRC_SLIDER1, "SLIDER1" }, - { MIXSRC_SLIDER2, "SLIDER2" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_CYC1, "CYC1" }, { MIXSRC_CYC2, "CYC2" }, @@ -60,7 +105,6 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_SF, "SF" }, { MIXSRC_SG, "SG" }, { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, { MIXSRC_SW1, "SW1" }, { MIXSRC_CH1, "CH1" }, { MIXSRC_CH2, "CH2" }, @@ -81,6 +125,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -136,9 +181,6 @@ const struct YamlIdStr enum_SwitchSources[] = { { SWSRC_SH0, "SH0" }, { SWSRC_SH1, "SH1" }, { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, { SWSRC_TrimRudLeft, "TrimRudLeft" }, { SWSRC_TrimRudRight, "TrimRudRight" }, { SWSRC_TrimEleDown, "TrimEleDown" }, @@ -172,7 +214,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -207,32 +249,32 @@ static const struct YamlNode struct_TrainerData[] = { YAML_END }; static const struct YamlNode struct_anonymous_1[] = { - YAML_STRING("name", 8), + YAML_STRING("name", 6), YAML_END }; static const struct YamlNode struct_anonymous_2[] = { YAML_SIGNED( "val", 16 ), YAML_UNSIGNED( "mode", 8 ), YAML_UNSIGNED( "param", 8 ), - YAML_PADDING( 32 ), + YAML_PADDING( 16 ), YAML_END }; static const struct YamlNode struct_anonymous_3[] = { YAML_SIGNED( "val1", 32 ), - YAML_PADDING( 32 ), + YAML_PADDING( 16 ), YAML_END }; static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 64, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, struct_anonymous_3, NULL), + YAML_STRUCT("play", 48, struct_anonymous_1, NULL), + YAML_STRUCT("all", 48, struct_anonymous_2, NULL), + YAML_STRUCT("clear", 48, struct_anonymous_3, NULL), YAML_END }; static const struct YamlNode struct_CustomFunctionData[] = { YAML_IDX, YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), YAML_ENUM("func", 7, enum_Functions), - YAML_UNION("fp", 64, union_anonymous_0_elmts, select_custom_fn), + YAML_UNION("fp", 48, union_anonymous_0_elmts, select_custom_fn), YAML_UNSIGNED( "active", 8 ), YAML_END }; @@ -241,17 +283,34 @@ static const struct YamlNode struct_string_24[] = { YAML_STRING("val", 3), YAML_END }; +static const struct YamlNode union_ZoneOptionValue_elmts[] = { + YAML_UNSIGNED( "unsignedValue", 32 ), + YAML_SIGNED( "signedValue", 32 ), + YAML_UNSIGNED( "boolValue", 32 ), + YAML_STRING("stringValue", 8), + YAML_END +}; +static const struct YamlNode struct_ZoneOptionValueTyped[] = { + YAML_IDX, + YAML_ENUM("type", 32, enum_ZoneOptionValueEnum), + YAML_UNION("value", 64, union_ZoneOptionValue_elmts, select_zov), + YAML_END +}; +static const struct YamlNode struct_OpenTxTheme__PersistentData[] = { + YAML_ARRAY("options", 96, 5, struct_ZoneOptionValueTyped, NULL), + YAML_END +}; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 9, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -259,7 +318,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -268,19 +327,21 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "adjustRTC", 1 ), YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_PADDING( 3 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_PADDING( 8 ), + YAML_UNSIGNED( "stickReverse", 8 ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -297,27 +358,29 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), - YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), + YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 32 ), + YAML_UNSIGNED( "aux2SerialMode", 4 ), YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), - YAML_ARRAY("switchNames", 24, 9, struct_string_24, NULL), + YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), + YAML_ARRAY("slidersConfig", 1, 8, struct_sliderConfig, nullptr), + YAML_ARRAY("switchNames", 24, 8, struct_string_24, NULL), YAML_ARRAY("anaNames", 24, 9, struct_string_24, NULL), - YAML_PADDING( 8 ), + YAML_STRING("currModelFilename", 17), + YAML_PADDING( 1 ), + YAML_UNSIGNED( "blOffBright", 7 ), YAML_STRING("bluetoothName", 10), + YAML_STRING("themeName", 8), + YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), - YAML_STRING("currModelFilename", 17), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { @@ -326,17 +389,17 @@ static const struct YamlNode struct_unsigned_8[] = { YAML_END }; static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 12), + YAML_STRING("name", 15), YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_STRING("bitmap", 10), + YAML_STRING("bitmap", 14), YAML_END }; static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -356,7 +419,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -474,7 +537,7 @@ static const struct YamlNode struct_VarioData[] = { }; static const struct YamlNode struct_RssiAlarmData[] = { YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), + YAML_UNSIGNED( "flysky_telemetry", 1 ), YAML_SIGNED( "warning", 6 ), YAML_PADDING( 2 ), YAML_SIGNED( "critical", 6 ), @@ -527,6 +590,25 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_ARRAY("receiverName", 64, 3, struct_string_64, NULL), YAML_END }; +static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { + YAML_UNSIGNED( "bindPower", 3 ), + YAML_UNSIGNED( "runPower", 3 ), + YAML_UNSIGNED( "emi", 1 ), + YAML_UNSIGNED( "telemetry", 1 ), + YAML_UNSIGNED( "failsafeTimeout", 16 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), + YAML_END +}; static const struct YamlNode union_anonymous_4_elmts[] = { YAML_ARRAY("raw", 8, 25, struct_unsigned_8, NULL), YAML_STRUCT("ppm", 16, struct_anonymous_5, NULL), @@ -534,6 +616,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -560,7 +644,7 @@ static const struct YamlNode struct_TrainerModuleData[] = { }; static const struct YamlNode union_ScriptDataInput_elmts[] = { YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED( "source", 16 ), + YAML_UNSIGNED( "source", 8 ), YAML_END }; static const struct YamlNode union_ScriptDataInput[] = { @@ -580,61 +664,61 @@ static const struct YamlNode struct_string_32[] = { YAML_STRING("val", 4), YAML_END }; -static const struct YamlNode union_anonymous_10_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_12[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_12, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_14[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_14, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_15, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_16, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_17, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_18, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_10_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_11_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -647,44 +731,37 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_13_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; -static const struct YamlNode struct_FrSkyBarData[] = { +static const struct YamlNode struct_WidgetPersistentData[] = { + YAML_ARRAY("options", 96, 5, struct_ZoneOptionValueTyped, NULL), + YAML_END +}; +static const struct YamlNode struct_ZonePersistentData[] = { YAML_IDX, - YAML_UNSIGNED( "source", 16 ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), + YAML_STRING("widgetName", 10), + YAML_STRUCT("widgetData", 480, struct_WidgetPersistentData, NULL), YAML_END }; -static const struct YamlNode struct_unsigned_16[] = { +static const struct YamlNode struct_LayoutPersistentData[] = { + YAML_ARRAY("zones", 576, 10, struct_ZonePersistentData, NULL), + YAML_ARRAY("options", 96, 10, struct_ZoneOptionValueTyped, NULL), + YAML_END +}; +static const struct YamlNode struct_CustomScreenData[] = { YAML_IDX, - YAML_UNSIGNED( "val", 16 ), + YAML_STRING("LayoutId", 10), + YAML_STRUCT("layoutData", 6720, struct_LayoutPersistentData, NULL), YAML_END }; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 3, struct_unsigned_16, NULL), - YAML_END -}; -static const struct YamlNode struct_TelemetryScriptData[] = { - YAML_STRING("file", 6), - YAML_ARRAY("inputs", 16, 8, struct_signed_16, NULL), - YAML_END -}; -static const struct YamlNode union_TelemetryScreenData_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 48, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -static const struct YamlNode union_TelemetryScreenData[] = { - YAML_IDX, - YAML_UNION("u", 192, union_TelemetryScreenData_elmts, NULL), +static const struct YamlNode struct_TopBarPersistentData[] = { + YAML_ARRAY("zones", 576, 2, struct_ZonePersistentData, NULL), + YAML_ARRAY("options", 96, 1, struct_ZoneOptionValueTyped, NULL), YAML_END }; static const struct YamlNode struct_ModelData[] = { - YAML_STRUCT("header", 192, struct_ModelHeader, NULL), + YAML_STRUCT("header", 248, struct_ModelHeader, NULL), YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), YAML_UNSIGNED( "telemetryProtocol", 3 ), YAML_UNSIGNED( "thrTrim", 1 ), @@ -704,17 +781,14 @@ static const struct YamlNode struct_ModelData[] = { YAML_ARRAY("curves", 32, 32, struct_CurveHeader, NULL), YAML_ARRAY("points", 8, 512, struct_signed_8, NULL), YAML_ARRAY("logicalSw", 72, 64, struct_LogicalSwitchData, NULL), - YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), + YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_STRUCT("swashR", 64, struct_SwashRingData, NULL), YAML_ARRAY("flightModeData", 320, 9, struct_FlightModeData, fmd_is_active), YAML_UNSIGNED( "thrTraceSrc", 8 ), - YAML_UNSIGNED( "switchWarningState", 32 ), - YAML_UNSIGNED( "switchWarningEnable", 16 ), + YAML_UNSIGNED_CUST( "switchWarningState", 32, r_swtchWarn, w_swtchWarn ), YAML_ARRAY("gvars", 56, 9, struct_GVarData, NULL), YAML_STRUCT("varioData", 40, struct_VarioData, NULL), YAML_UNSIGNED( "rssiSource", 8 ), - YAML_UNSIGNED( "voltsSource", 8 ), - YAML_UNSIGNED( "altitudeSource", 8 ), YAML_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), YAML_PADDING( 3 ), YAML_UNSIGNED( "thrTrimSw", 3 ), @@ -722,19 +796,19 @@ static const struct YamlNode struct_ModelData[] = { YAML_ARRAY("moduleData", 232, 2, struct_ModuleData, NULL), YAML_ARRAY("failsafeChannels", 16, 32, struct_signed_16, NULL), YAML_STRUCT("trainerData", 40, struct_TrainerModuleData, NULL), - YAML_ARRAY("scriptsData", 192, 7, struct_ScriptData, NULL), + YAML_ARRAY("scriptsData", 192, 9, struct_ScriptData, NULL), YAML_ARRAY("inputNames", 32, 32, struct_string_32, NULL), YAML_UNSIGNED( "potsWarnEnabled", 8 ), YAML_ARRAY("potsWarnPosition", 8, 5, struct_signed_8, NULL), YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_UNSIGNED( "screensType", 8 ), - YAML_ARRAY("screens", 192, 4, union_TelemetryScreenData, NULL), + YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL), + YAML_STRUCT("topbarData", 1248, struct_TopBarPersistentData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_STRING("modelRegistrationID", 8), YAML_END }; static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 192, struct_ModelHeader, NULL), + YAML_STRUCT("header", 248, struct_ModelHeader, NULL), YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/yaml/yaml_datastructs_t12.cpp index fc2de09a6..bb99cd833 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t12.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -77,6 +118,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -165,7 +207,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -236,15 +278,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -252,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -262,18 +304,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -290,12 +332,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -326,9 +368,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -348,7 +390,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -520,12 +562,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -535,7 +587,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -577,61 +630,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -644,7 +697,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_t8.cpp b/radio/src/storage/yaml/yaml_datastructs_t8.cpp index e1f34b27d..bb99cd833 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t8.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t8.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -77,6 +118,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -165,7 +207,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -236,15 +278,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -252,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -262,18 +304,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -290,12 +332,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -326,9 +368,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -348,7 +390,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -519,6 +561,25 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_ARRAY("receiverName", 64, 3, struct_string_64, NULL), YAML_END }; +static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { + YAML_UNSIGNED( "bindPower", 3 ), + YAML_UNSIGNED( "runPower", 3 ), + YAML_UNSIGNED( "emi", 1 ), + YAML_UNSIGNED( "telemetry", 1 ), + YAML_UNSIGNED( "failsafeTimeout", 16 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), + YAML_END +}; static const struct YamlNode union_anonymous_4_elmts[] = { YAML_ARRAY("raw", 8, 25, struct_unsigned_8, NULL), YAML_STRUCT("ppm", 16, struct_anonymous_5, NULL), @@ -526,6 +587,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -567,61 +630,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_10_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_12[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_12, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_14[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_14, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_15, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_16, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_17, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_18, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_10_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_11_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -634,7 +697,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_13_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp index fc2de09a6..bb99cd833 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -77,6 +118,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -165,7 +207,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -236,15 +278,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -252,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -262,18 +304,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -290,12 +332,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -326,9 +368,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -348,7 +390,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -520,12 +562,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -535,7 +587,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -577,61 +630,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -644,7 +697,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp index 7a88c336a..29ed5ef37 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -77,6 +118,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -165,7 +207,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -236,15 +278,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -252,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -262,18 +304,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -290,12 +332,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -326,9 +368,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -348,7 +390,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -520,12 +562,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -535,7 +587,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -577,61 +630,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -644,7 +697,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 5a5479957..a65a97de0 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -40,6 +64,23 @@ const struct YamlIdStr enum_ZoneOptionValueEnum[] = { { ZOV_String, "String" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -95,6 +136,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -193,7 +235,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -281,13 +323,13 @@ static const struct YamlNode struct_OpenTxTheme__PersistentData[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 15, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -295,7 +337,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -305,18 +347,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_PADDING( 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -333,12 +375,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -355,6 +397,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("themeName", 8), YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRING("ownerRegistrationID", 8), + YAML_SIGNED( "uartSampleMode", 2 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { @@ -371,9 +414,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -393,7 +436,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -565,12 +608,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -580,7 +633,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -627,61 +681,61 @@ static const struct YamlNode struct_string_32[] = { YAML_STRING("val", 4), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -694,7 +748,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_WidgetPersistentData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index df848eaf5..1e4703333 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -40,6 +64,23 @@ const struct YamlIdStr enum_ZoneOptionValueEnum[] = { { ZOV_String, "String" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -194,7 +235,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -282,13 +323,13 @@ static const struct YamlNode struct_OpenTxTheme__PersistentData[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 15, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -296,7 +337,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -306,18 +347,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_PADDING( 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -334,12 +375,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 72, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -356,6 +397,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("themeName", 8), YAML_STRUCT("themeData", 480, struct_OpenTxTheme__PersistentData, NULL), YAML_STRING("ownerRegistrationID", 8), + YAML_SIGNED( "uartSampleMode", 2 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { @@ -372,9 +414,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -394,7 +436,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -566,12 +608,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -581,7 +633,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -628,61 +681,61 @@ static const struct YamlNode struct_string_32[] = { YAML_STRING("val", 4), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -695,7 +748,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_WidgetPersistentData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x7.cpp b/radio/src/storage/yaml/yaml_datastructs_x7.cpp index fc2de09a6..bb99cd833 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x7.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x7.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -77,6 +118,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -165,7 +207,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -236,15 +278,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -252,7 +294,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -262,18 +304,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -290,12 +332,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -326,9 +368,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -348,7 +390,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -520,12 +562,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -535,7 +587,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -577,61 +630,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -644,7 +697,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp index 2a978e441..4534d0548 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -81,6 +122,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -172,7 +214,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -243,15 +285,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 9, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -259,7 +301,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -269,18 +311,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -297,12 +339,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -334,9 +376,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -356,7 +398,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -527,6 +569,25 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_ARRAY("receiverName", 64, 3, struct_string_64, NULL), YAML_END }; +static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { + YAML_UNSIGNED( "bindPower", 3 ), + YAML_UNSIGNED( "runPower", 3 ), + YAML_UNSIGNED( "emi", 1 ), + YAML_UNSIGNED( "telemetry", 1 ), + YAML_UNSIGNED( "failsafeTimeout", 16 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), + YAML_END +}; static const struct YamlNode union_anonymous_4_elmts[] = { YAML_ARRAY("raw", 8, 25, struct_unsigned_8, NULL), YAML_STRUCT("ppm", 16, struct_anonymous_5, NULL), @@ -534,6 +595,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -580,61 +643,61 @@ static const struct YamlNode struct_string_32[] = { YAML_STRING("val", 4), YAML_END }; -static const struct YamlNode union_anonymous_10_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_12[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_12, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_14[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_14, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_15, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_16, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_17, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_18, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_10_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_11_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -647,7 +710,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_13_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp index ba286e560..b219622d6 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -93,6 +134,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -211,7 +253,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -282,15 +324,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -298,7 +340,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -308,18 +350,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -336,12 +378,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -373,9 +415,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -395,7 +437,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -567,12 +609,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -582,7 +634,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -629,61 +682,61 @@ static const struct YamlNode struct_string_32[] = { YAML_STRING("val", 4), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -696,7 +749,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp index ccdd8f071..7acb1cc7c 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -73,6 +114,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -152,7 +194,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -223,15 +265,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 5, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -239,7 +281,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -249,18 +291,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -277,12 +319,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -311,9 +353,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -333,7 +375,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -505,12 +547,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -520,7 +572,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -562,61 +615,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -629,7 +682,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp index 79a29f41d..95ca3f117 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -75,6 +116,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -160,7 +202,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -231,15 +273,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 5, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -247,7 +289,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -257,18 +299,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -285,12 +327,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -321,9 +363,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -343,7 +385,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -515,12 +557,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -530,7 +582,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -572,61 +625,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -639,7 +692,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp index 48bd6b028..eb75a1fee 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -75,6 +116,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -157,7 +199,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -228,15 +270,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -244,7 +286,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -254,18 +296,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -282,12 +324,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -318,9 +360,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -340,7 +382,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -512,12 +554,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -527,7 +579,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -569,61 +622,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -636,7 +689,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index 4e176f40f..4df9eb39c 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -4,6 +4,30 @@ // Enums first // +const struct YamlIdStr enum_BacklightMode[] = { + { e_backlight_mode_off, "backlight_mode_off" }, + { e_backlight_mode_keys, "backlight_mode_keys" }, + { e_backlight_mode_sticks, "backlight_mode_sticks" }, + { e_backlight_mode_all, "backlight_mode_all" }, + { e_backlight_mode_on, "backlight_mode_on" }, + { 0, NULL } +}; +const struct YamlIdStr enum_AntennaModes[] = { + { ANTENNA_MODE_INTERNAL, "MODE_INTERNAL" }, + { ANTENNA_MODE_ASK, "MODE_ASK" }, + { ANTENNA_MODE_PER_MODEL, "MODE_PER_MODEL" }, + { ANTENNA_MODE_EXTERNAL, "MODE_EXTERNAL" }, + { ANTENNA_MODE_FIRST, "MODE_FIRST" }, + { ANTENNA_MODE_LAST, "MODE_LAST" }, + { 0, NULL } +}; +const struct YamlIdStr enum_BeeperMode[] = { + { e_mode_quiet, "mode_quiet" }, + { e_mode_alarms, "mode_alarms" }, + { e_mode_nokeys, "mode_nokeys" }, + { e_mode_all, "mode_all" }, + { 0, NULL } +}; const struct YamlIdStr enum_Functions[] = { { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, { FUNC_TRAINER, "TRAINER" }, @@ -33,6 +57,23 @@ const struct YamlIdStr enum_Functions[] = { { FUNC_MAX, "MAX" }, { 0, NULL } }; +const struct YamlIdStr enum_TimerModes[] = { + { TMRMODE_OFF, "OFF" }, + { TMRMODE_ON, "ON" }, + { TMRMODE_START, "START" }, + { TMRMODE_THR, "THR" }, + { TMRMODE_THR_REL, "THR_REL" }, + { TMRMODE_THR_START, "THR_START" }, + { TMRMODE_COUNT, "COUNT" }, + { TMRMODE_MAX, "MAX" }, + { 0, NULL } +}; +const struct YamlIdStr enum_MixerMultiplex[] = { + { MLTPX_ADD, "ADD" }, + { MLTPX_MUL, "MUL" }, + { MLTPX_REP, "REP" }, + { 0, NULL } +}; const struct YamlIdStr enum_MixSources[] = { { MIXSRC_NONE, "NONE" }, { MIXSRC_Rud, "Rud" }, @@ -77,6 +118,7 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_GVAR1, "GVAR1" }, { MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" }, { MIXSRC_TX_TIME, "TX_TIME" }, + { MIXSRC_TX_GPS, "TX_GPS" }, { MIXSRC_TIMER1, "TIMER1" }, { MIXSRC_TIMER2, "TIMER2" }, { MIXSRC_TIMER3, "TIMER3" }, @@ -159,7 +201,7 @@ const struct YamlIdStr enum_ModuleType[] = { { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, { MODULE_TYPE_SBUS, "TYPE_SBUS" }, { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_AFHDS3, "TYPE_AFHDS3" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, { MODULE_TYPE_COUNT, "TYPE_COUNT" }, { MODULE_TYPE_MAX, "TYPE_MAX" }, { 0, NULL } @@ -230,15 +272,15 @@ static const struct YamlNode struct_string_24[] = { }; static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "version", 8 ), - YAML_UNSIGNED( "variant", 16 ), + YAML_PADDING( 16 ), YAML_ARRAY("calib", 48, 6, struct_CalibData, NULL), - YAML_UNSIGNED( "chkSum", 16 ), + YAML_PADDING( 16 ), YAML_SIGNED( "currModel", 8 ), YAML_UNSIGNED( "contrast", 8 ), YAML_UNSIGNED( "vBatWarn", 8 ), YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_UNSIGNED( "backlightMode", 3 ), - YAML_SIGNED( "antennaMode", 2 ), + YAML_ENUM("backlightMode", 3, enum_BacklightMode), + YAML_ENUM("antennaMode", 2, enum_AntennaModes), YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), @@ -246,7 +288,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED( "beepMode", 2 ), + YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), YAML_UNSIGNED( "alarmsFlash", 1 ), YAML_UNSIGNED( "disableMemoryWarning", 1 ), YAML_UNSIGNED( "disableAlarmWarning", 1 ), @@ -256,18 +298,18 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "inactivityTimer", 8 ), YAML_UNSIGNED( "telemetryBaudrate", 3 ), YAML_SIGNED( "splashMode", 3 ), - YAML_SIGNED( "hapticMode", 2 ), + YAML_SIGNED_CUST( "hapticMode", 2, r_beeperMode, w_beeperMode ), YAML_SIGNED( "switchesDelay", 8 ), YAML_UNSIGNED( "lightAutoOff", 8 ), YAML_UNSIGNED( "templateSetup", 8 ), YAML_SIGNED( "PPM_Multiplier", 8 ), - YAML_SIGNED( "hapticLength", 8 ), - YAML_SIGNED( "beepLength", 3 ), - YAML_SIGNED( "hapticStrength", 3 ), + YAML_SIGNED_CUST( "hapticLength", 8, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "beepLength", 3, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "hapticStrength", 3, r_5pos, w_5pos ), YAML_UNSIGNED( "gpsFormat", 1 ), YAML_UNSIGNED( "unexpectedShutdown", 1 ), - YAML_UNSIGNED( "speakerPitch", 8 ), - YAML_SIGNED( "speakerVolume", 8 ), + YAML_UNSIGNED_CUST( "speakerPitch", 8, r_spPitch, w_spPitch ), + YAML_SIGNED_CUST( "speakerVolume", 8, r_vol, w_vol ), YAML_SIGNED_CUST( "vBatMin", 8, r_vbat_min, w_vbat_min ), YAML_SIGNED_CUST( "vBatMax", 8, r_vbat_max, w_vbat_max ), YAML_UNSIGNED( "backlightBright", 8 ), @@ -284,12 +326,12 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "jackMode", 2 ), YAML_PADDING( 1 ), YAML_STRING("ttsLanguage", 2), - YAML_SIGNED( "beepVolume", 4 ), - YAML_SIGNED( "wavVolume", 4 ), - YAML_SIGNED( "varioVolume", 4 ), - YAML_SIGNED( "backgroundVolume", 4 ), - YAML_SIGNED( "varioPitch", 8 ), - YAML_SIGNED( "varioRange", 8 ), + YAML_SIGNED_CUST( "beepVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "wavVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "backgroundVolume", 4, r_5pos, w_5pos ), + YAML_SIGNED_CUST( "varioPitch", 8, r_vPitch, w_vPitch ), + YAML_SIGNED_CUST( "varioRange", 8, r_vPitch, w_vPitch ), YAML_SIGNED( "varioRepeat", 8 ), YAML_ARRAY("customFn", 88, 64, struct_CustomFunctionData, cfn_is_active), YAML_UNSIGNED( "auxSerialMode", 4 ), @@ -322,9 +364,9 @@ static const struct YamlNode struct_ModelHeader[] = { static const struct YamlNode struct_TimerData[] = { YAML_IDX, YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED( "swtch", 10 ), + YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), YAML_SIGNED( "value", 22 ), - YAML_UNSIGNED( "mode", 3 ), + YAML_ENUM("mode", 3, enum_TimerModes), YAML_UNSIGNED( "countdownBeep", 2 ), YAML_UNSIGNED( "minuteBeep", 1 ), YAML_UNSIGNED( "persistent", 2 ), @@ -344,7 +386,7 @@ static const struct YamlNode struct_MixData[] = { YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), YAML_UNSIGNED( "carryTrim", 1 ), YAML_UNSIGNED( "mixWarn", 2 ), - YAML_UNSIGNED( "mltpx", 2 ), + YAML_ENUM("mltpx", 2, enum_MixerMultiplex), YAML_PADDING( 1 ), YAML_SIGNED( "offset", 14 ), YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), @@ -516,12 +558,22 @@ static const struct YamlNode struct_anonymous_9[] = { YAML_END }; static const struct YamlNode struct_anonymous_10[] = { + YAML_ARRAY("rx_id", 8, 4, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 3 ), + YAML_UNSIGNED( "rfPower", 1 ), + YAML_UNSIGNED( "reserved", 4 ), + YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_END +}; +static const struct YamlNode struct_anonymous_11[] = { YAML_UNSIGNED( "bindPower", 3 ), YAML_UNSIGNED( "runPower", 3 ), YAML_UNSIGNED( "emi", 1 ), YAML_UNSIGNED( "telemetry", 1 ), YAML_UNSIGNED( "failsafeTimeout", 16 ), YAML_ARRAY("rx_freq", 8, 2, struct_unsigned_8, NULL), + YAML_UNSIGNED( "mode", 2 ), + YAML_UNSIGNED( "reserved", 6 ), YAML_END }; static const struct YamlNode union_anonymous_4_elmts[] = { @@ -531,7 +583,8 @@ static const struct YamlNode union_anonymous_4_elmts[] = { YAML_STRUCT("pxx", 16, struct_anonymous_7, NULL), YAML_STRUCT("sbus", 16, struct_anonymous_8, NULL), YAML_STRUCT("pxx2", 200, struct_anonymous_9, NULL), - YAML_STRUCT("afhds3", 48, struct_anonymous_10, NULL), + YAML_STRUCT("flysky", 56, struct_anonymous_10, NULL), + YAML_STRUCT("afhds3", 64, struct_anonymous_11, NULL), YAML_END }; static const struct YamlNode struct_ModuleData[] = { @@ -573,61 +626,61 @@ static const struct YamlNode struct_ScriptData[] = { YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), YAML_END }; -static const struct YamlNode union_anonymous_11_elmts[] = { +static const struct YamlNode union_anonymous_12_elmts[] = { YAML_UNSIGNED( "id", 16 ), YAML_UNSIGNED( "persistentValue", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_13[] = { +static const struct YamlNode struct_anonymous_14[] = { YAML_UNSIGNED( "physID", 5 ), YAML_UNSIGNED( "rxIndex", 3 ), YAML_END }; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_13, NULL), +static const struct YamlNode union_anonymous_13_elmts[] = { + YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), YAML_UNSIGNED( "instance", 8 ), YAML_UNSIGNED( "formula", 8 ), YAML_END }; -static const struct YamlNode struct_anonymous_15[] = { +static const struct YamlNode struct_anonymous_16[] = { YAML_UNSIGNED( "ratio", 16 ), YAML_SIGNED( "offset", 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_16[] = { +static const struct YamlNode struct_anonymous_17[] = { YAML_UNSIGNED( "source", 8 ), YAML_UNSIGNED( "index", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode struct_anonymous_17[] = { +static const struct YamlNode struct_anonymous_18[] = { YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), YAML_END }; -static const struct YamlNode struct_anonymous_18[] = { +static const struct YamlNode struct_anonymous_19[] = { YAML_UNSIGNED( "source", 8 ), YAML_PADDING( 24 ), YAML_END }; -static const struct YamlNode struct_anonymous_19[] = { +static const struct YamlNode struct_anonymous_20[] = { YAML_UNSIGNED( "gps", 8 ), YAML_UNSIGNED( "alt", 8 ), YAML_PADDING( 16 ), YAML_END }; -static const struct YamlNode union_anonymous_14_elmts[] = { - YAML_STRUCT("custom", 32, struct_anonymous_15, NULL), - YAML_STRUCT("cell", 32, struct_anonymous_16, NULL), - YAML_STRUCT("calc", 32, struct_anonymous_17, NULL), - YAML_STRUCT("consumption", 32, struct_anonymous_18, NULL), - YAML_STRUCT("dist", 32, struct_anonymous_19, NULL), +static const struct YamlNode union_anonymous_15_elmts[] = { + YAML_STRUCT("custom", 32, struct_anonymous_16, NULL), + YAML_STRUCT("cell", 32, struct_anonymous_17, NULL), + YAML_STRUCT("calc", 32, struct_anonymous_18, NULL), + YAML_STRUCT("consumption", 32, struct_anonymous_19, NULL), + YAML_STRUCT("dist", 32, struct_anonymous_20, NULL), YAML_UNSIGNED( "param", 32 ), YAML_END }; static const struct YamlNode struct_TelemetrySensor[] = { YAML_IDX, - YAML_UNION("id1", 16, union_anonymous_11_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_12_elmts, select_id2), + YAML_UNION("id1", 16, union_anonymous_12_elmts, select_id1), + YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), YAML_STRING("label", 4), YAML_UNSIGNED( "subId", 8 ), YAML_UNSIGNED( "type", 1 ), @@ -640,7 +693,7 @@ static const struct YamlNode struct_TelemetrySensor[] = { YAML_UNSIGNED( "persistent", 1 ), YAML_UNSIGNED( "onlyPositive", 1 ), YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_14_elmts, select_sensor_cfg), + YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), YAML_END }; static const struct YamlNode struct_FrSkyBarData[] = { diff --git a/radio/src/targets/nv14/CMakeLists.txt b/radio/src/targets/nv14/CMakeLists.txt index f98789ac5..5324ccd56 100644 --- a/radio/src/targets/nv14/CMakeLists.txt +++ b/radio/src/targets/nv14/CMakeLists.txt @@ -28,6 +28,11 @@ else() set(LINKER_SCRIPT targets/nv14/stm32f4_flash.ld) endif() +if(YAML_STORAGE) + set(STORAGE_FORMAT YAML) + set(STORAGE_CONVERT SDCARD_RAW) +endif() + set(RTC_BACKUP_RAM YES) set(PPM_LIMITS_SYMETRICAL YES) # for size report script diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 592889249..737b5bacb 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -62,7 +62,7 @@ elseif(PCB STREQUAL X9D+) set(LCD_DRIVER lcd_driver_spi.cpp) set(GVAR_SCREEN model_gvars.cpp) set(PCBREV 2014 CACHE STRING "PCB Revision") - set(AFHDS3 NO) + #set(AFHDS3 NO) add_definitions(-DPCBREV=${PCBREV}) add_definitions(-DMANUFACTURER_FRSKY) if (${PCBREV} STREQUAL 2019) @@ -119,7 +119,7 @@ elseif(PCB STREQUAL X9D) set(GVAR_SCREEN model_gvars.cpp) set(STATUS_LEDS NO) add_definitions(-DMANUFACTURER_FRSKY) - set(AFHDS3 NO) + #set(AFHDS3 NO) elseif(PCB STREQUAL X7) set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(HAPTIC YES) @@ -173,7 +173,7 @@ elseif(PCB STREQUAL X7) elseif(PCBREV STREQUAL T8) option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) set(EXTERNAL_MODULE NO) - set(AFHDS3 NO) + #set(AFHDS3 NO) set(FLAVOUR t8) set(NAVIGATION_TYPE x7) set(CPU_TYPE STM32F2) diff --git a/tools/generate-yaml.sh b/tools/generate-yaml.sh new file mode 100755 index 000000000..eb8dea179 --- /dev/null +++ b/tools/generate-yaml.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +# Stops on first error, echo on +set -e +set -x + +# Add GCC_ARM to PATH +if [[ -n ${GCC_ARM} ]] ; then + export PATH=${GCC_ARM}:$PATH +fi + +: ${FLAVOR:="t12;t8;tlite;tx12;tx16s;x12s;nv14;x7;x9d;x9dp;x9e;x9lite;x9lites;xlite;xlites"} +: ${SRCDIR:=$(dirname $(pwd)/"$0")/..} + +: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -DDISABLE_COMPANION=YES -Wno-dev -DYAML_STORAGE=YES "} + +# wipe build directory clean +rm -rf build && mkdir -p build && cd build + +target_names=$(echo "$FLAVOR" | tr '[:upper:]' '[:lower:]' | tr ';' '\n') + +for target_name in $target_names +do + BUILD_OPTIONS=${COMMON_OPTIONS} + + echo "Generating YAML structures for ${target_name}" + case $target_name in + + x9lite) + BUILD_OPTIONS+="-DPCB=X9LITE" + ;; + x9lites) + BUILD_OPTIONS+="-DPCB=X9LITES" + ;; + x7) + BUILD_OPTIONS+="-DPCB=X7" + ;; + x7-access) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=ACCESS -DPXX1=YES" + ;; + t12) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T12 -DINTERNAL_MODULE_MULTI=ON" + ;; + tx12) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TX12" + ;; + t8) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T8" + ;; + tlite) + BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=TLITE" + ;; + xlite) + BUILD_OPTIONS+="-DPCB=XLITE" + ;; + xlites) + BUILD_OPTIONS+="-DPCB=XLITES" + ;; + x9d) + BUILD_OPTIONS+="-DPCB=X9D" + ;; + x9dp) + BUILD_OPTIONS+="-DPCB=X9D+" + ;; + x9dp2019) + BUILD_OPTIONS+="-DPCB=X9D+ -DPCBREV=2019" + ;; + x9e) + BUILD_OPTIONS+="-DPCB=X9E" + ;; + x10) + BUILD_OPTIONS+="-DPCB=X10" + ;; + x10-access) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=EXPRESS -DPXX1=YES" + ;; + x12s) + BUILD_OPTIONS+="-DPCB=X12S" + ;; + t16) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=T16 -DINTERNAL_MODULE_MULTI=ON" + ;; + t16-fs) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=T16 -DINTERNAL_MODULE_MULTI=ON -DFLYSKY_HALL_STICKS=ON" + ;; + t18) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=T18" + ;; + t18-fs) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=T18 -DFLYSKY_HALL_STICKS=ON" + ;; + tx16s) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=TX16S -DINTERNAL_GPS=ON" + ;; + tx16s-fs) + BUILD_OPTIONS+="-DPCB=X10 -DPCBREV=TX16S -DFLYSKY_HALL_STICKS=ON" + ;; + nv14) + BUILD_OPTIONS+="-DPCB=NV14" + ;; + esac + + cmake ${BUILD_OPTIONS} "${SRCDIR}" + make yaml_data + + rm -f CMakeCache.txt +done