Skip to content

Commit

Permalink
chore: inconsistencies in yaml conversion files (#5460)
Browse files Browse the repository at this point in the history
- some radios without rotary encoders storing rotenc settings
- x12s and x10s datastructs were identical
  • Loading branch information
philmoz authored Aug 22, 2024
1 parent 005bd19 commit 8cfa5b4
Show file tree
Hide file tree
Showing 6 changed files with 940 additions and 88 deletions.
14 changes: 9 additions & 5 deletions radio/src/storage/yaml/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ endif()
# 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)
if((PCB STREQUAL X10) OR (PCB STREQUAL X12S))
if(PCBREV STREQUAL T15)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t15.cpp)
else()
Expand All @@ -31,6 +29,8 @@ elseif(PCB STREQUAL X7)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_tpro.cpp)
elseif((PCBREV STREQUAL T20) OR (PCBREV STREQUAL T20V2))
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t20.cpp)
elseif((PCBREV STREQUAL COMMANDO8) OR (PCBREV STREQUAL LR3PRO) OR (PCBREV STREQUAL T8) OR (PCBREV STREQUAL T12) OR (PCBREV STREQUAL TLITE))
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_xlite.cpp)
else()
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_128x64.cpp)
endif()
Expand All @@ -39,13 +39,17 @@ elseif(PCB STREQUAL X9LITE)
elseif(PCB STREQUAL X9LITES)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_128x64.cpp)
elseif(PCB STREQUAL XLITE)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_128x64.cpp)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_xlite.cpp)
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) OR (PCB STREQUAL X9D+))
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9d.cpp)
if(PCBREV STREQUAL 2019)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9dp2019.cpp)
else()
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9d.cpp)
endif()
else()
message(FATAL_ERROR "PCB '${PCB}' is not supported by YAML storage")
endif()
Expand Down
24 changes: 14 additions & 10 deletions radio/src/storage/yaml/yaml_datastructs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,12 @@
#include "yaml_inputs.inc"
#include "yaml_datastructs_funcs.cpp"

#if defined(PCBX12S)
#include "yaml_datastructs_x12s.cpp"
#elif defined(PCBX10)
#if defined(RADIO_T15)
#include "yaml_datastructs_t15.cpp"
#else
#include "yaml_datastructs_x10.cpp"
#endif
#if defined(PCBX10) || defined(PCBX12S)
#if defined(RADIO_T15)
#include "yaml_datastructs_t15.cpp"
#else
#include "yaml_datastructs_x10.cpp"
#endif
#elif defined(PCBNV14)
#include "yaml_datastructs_nv14.cpp"
#elif defined(PCBPL18)
Expand All @@ -45,19 +43,25 @@
#include "yaml_datastructs_tpro.cpp"
#elif defined(RADIO_FAMILY_T20)
#include "yaml_datastructs_t20.cpp"
#elif defined(RADIO_COMMANDO8) || defined(RADIO_LR3PRO) || defined(RADIO_T8) || defined(RADIO_T12) || defined(RADIO_TLITE)
#include "yaml_datastructs_xlite.cpp"
#else
#include "yaml_datastructs_128x64.cpp"
#endif
#elif defined(PCBX9LITE)
#include "yaml_datastructs_128x64.cpp"
#elif defined(PCBXLITE) && !defined(PCBXLITES)
#include "yaml_datastructs_128x64.cpp"
#include "yaml_datastructs_xlite.cpp"
#elif defined(PCBXLITES)
#include "yaml_datastructs_xlites.cpp"
#elif defined(PCBX9E)
#include "yaml_datastructs_x9e.cpp"
#elif defined(PCBX9D) || defined(PCBX9DP)
#include "yaml_datastructs_x9d.cpp"
#if PCBREV < 2019
#include "yaml_datastructs_x9d.cpp"
#else
#include "yaml_datastructs_x9dp2019.cpp"
#endif
#else
#error "Board not supported by YAML storage"
#endif
Expand Down
2 changes: 2 additions & 0 deletions radio/src/storage/yaml/yaml_datastructs_funcs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2239,12 +2239,14 @@ static void r_carryTrim(void* user, uint8_t* data, uint32_t bitoffs,
yaml_put_bits(data, i, bitoffs, 6);
}

#if defined(ROTARY_ENCODER_NAVIGATION) && !defined(USE_HATS_AS_KEYS)
static void r_rotEncDirection(void* user, uint8_t* data, uint32_t bitoffs,
const char* val, uint8_t val_len)
{
uint32_t i = yaml_str2uint(val, val_len);
yaml_put_bits(data, i, bitoffs, 2);
}
#endif

static void r_telemetryBaudrate(void* user, uint8_t* data, uint32_t bitoffs,
const char* val, uint8_t val_len)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,6 @@ const struct YamlIdStr enum_Functions[] = {
{ FUNC_BACKLIGHT, "BACKLIGHT" },
{ FUNC_SCREENSHOT, "SCREENSHOT" },
{ FUNC_RACING_MODE, "RACING_MODE" },
{ FUNC_DISABLE_TOUCH, "DISABLE_TOUCH" },
{ FUNC_SET_SCREEN, "SET_SCREEN" },
{ FUNC_DISABLE_AUDIO_AMP, "DISABLE_AUDIO_AMP" },
{ FUNC_RGB_LED, "RGB_LED" },
{ FUNC_LCD_TO_VIDEO, "LCD_TO_VIDEO" },
Expand All @@ -107,14 +105,6 @@ const struct YamlIdStr enum_MixerMultiplex[] = {
};
const struct YamlIdStr enum_MixSources[] = {
{ MIXSRC_NONE, "NONE" },
{ MIXSRC_TILT_X, "TILT_X" },
{ MIXSRC_TILT_Y, "TILT_Y" },
{ MIXSRC_SPACEMOUSE_A, "SPACEMOUSE_A" },
{ MIXSRC_SPACEMOUSE_B, "SPACEMOUSE_B" },
{ MIXSRC_SPACEMOUSE_C, "SPACEMOUSE_C" },
{ MIXSRC_SPACEMOUSE_D, "SPACEMOUSE_D" },
{ MIXSRC_SPACEMOUSE_E, "SPACEMOUSE_E" },
{ MIXSRC_SPACEMOUSE_F, "SPACEMOUSE_F" },
{ MIXSRC_MIN, "MIN" },
{ MIXSRC_MAX, "MAX" },
{ MIXSRC_TX_VOLTAGE, "TX_VOLTAGE" },
Expand Down Expand Up @@ -198,15 +188,6 @@ const struct YamlIdStr enum_TelemetrySensorType[] = {
{ TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" },
{ 0, NULL }
};
const struct YamlIdStr enum_ZoneOptionValueEnum[] = {
{ ZOV_Unsigned, "Unsigned" },
{ ZOV_Signed, "Signed" },
{ ZOV_Bool, "Bool" },
{ ZOV_String, "String" },
{ ZOV_Source, "Source" },
{ ZOV_Color, "Color" },
{ 0, NULL }
};
const struct YamlIdStr enum_USBJoystickIfMode[] = {
{ USBJOYS_JOYSTICK, "JOYSTICK" },
{ USBJOYS_GAMEPAD, "GAMEPAD" },
Expand Down Expand Up @@ -288,8 +269,10 @@ static const struct YamlNode struct_RadioData[] = {
YAML_PADDING( 2 ),
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_CUSTOM("board",nullptr,w_board),
YAML_ARRAY("calib", 48, 20, struct_CalibData, NULL),
YAML_ARRAY("calib", 48, 12, struct_CalibData, NULL),
YAML_PADDING( 16 ),
YAML_SIGNED( "currModel", 8 ),
YAML_UNSIGNED( "contrast", 8 ),
YAML_UNSIGNED( "vBatWarn", 8 ),
YAML_SIGNED( "txVoltageCalibration", 8 ),
YAML_ENUM("backlightMode", 3, enum_BacklightMode),
Expand Down Expand Up @@ -355,26 +338,16 @@ static const struct YamlNode struct_RadioData[] = {
YAML_ARRAY("serialPort", 8, 4, struct_serialConfig, nullptr),
YAML_ARRAY("sticksConfig", 0, MAX_STICKS, struct_stickConfig, stick_name_valid),
YAML_ARRAY("slidersConfig", 0, MAX_POTS, struct_sliderConfig, nullptr),
YAML_ARRAY("potsConfig", 4, 16, struct_potConfig, nullptr),
YAML_ARRAY("potsConfig", 4, 8, struct_potConfig, nullptr),
YAML_ARRAY("switchConfig", 2, 32, struct_switchConfig, nullptr),
YAML_ARRAY("flexSwitches", 0, MAX_FLEX_SWITCHES, struct_flexSwitch, flex_sw_valid),
YAML_STRING("currModelFilename", 17),
YAML_UNSIGNED( "modelQuickSelect", 1 ),
YAML_UNSIGNED( "blOffBright", 7 ),
YAML_UNSIGNED( "backlightColor", 8 ),
YAML_STRING("bluetoothName", 10),
YAML_STRING("ownerRegistrationID", 8),
YAML_CUSTOM("rotEncDirection",r_rotEncDirection,nullptr),
YAML_UNSIGNED( "rotEncMode", 3 ),
YAML_SIGNED( "uartSampleMode", 2 ),
YAML_PADDING( 3 ),
YAML_SIGNED( "imuMax", 8 ),
YAML_SIGNED( "imuOffset", 8 ),
YAML_STRING("selectedTheme", 26),
YAML_UNSIGNED( "labelSingleSelect", 1 ),
YAML_UNSIGNED( "labelMultiMode", 1 ),
YAML_UNSIGNED( "favMultiMode", 1 ),
YAML_UNSIGNED( "modelSelectLayout", 2 ),
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
YAML_UNSIGNED( "radioGFDisabled", 1 ),
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
Expand All @@ -387,7 +360,7 @@ static const struct YamlNode struct_RadioData[] = {
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
YAML_PADDING( 6 ),
YAML_PADDING( 4 ),
YAML_END
};
static const struct YamlNode struct_unsigned_8[] = {
Expand All @@ -396,10 +369,9 @@ static const struct YamlNode struct_unsigned_8[] = {
YAML_END
};
static const struct YamlNode struct_ModelHeader[] = {
YAML_STRING("name", 15),
YAML_STRING("name", 12),
YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL),
YAML_STRING("bitmap", 14),
YAML_STRING("labels", 100),
YAML_STRING("bitmap", 10),
YAML_END
};
static const struct YamlNode struct_TimerData[] = {
Expand Down Expand Up @@ -762,45 +734,38 @@ static const struct YamlNode struct_TelemetrySensor[] = {
YAML_UNION("cfg", 32, union_anonymous_17_elmts, select_sensor_cfg),
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_CUSTOM("source",r_zov_source,w_zov_source),
YAML_CUSTOM("color",r_zov_color,w_zov_color),
YAML_END
};
static const struct YamlNode struct_ZoneOptionValueTyped[] = {
static const struct YamlNode struct_FrSkyBarData[] = {
YAML_IDX,
YAML_ENUM("type", 32, enum_ZoneOptionValueEnum),
YAML_UNION("value", 64, union_ZoneOptionValue_elmts, select_zov),
YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ),
YAML_SIGNED( "barMin", 16 ),
YAML_SIGNED( "barMax", 16 ),
YAML_END
};
static const struct YamlNode struct_WidgetPersistentData[] = {
YAML_ARRAY("options", 96, 10, struct_ZoneOptionValueTyped, NULL),
static const struct YamlNode struct_LineDataSource[] = {
YAML_IDX,
YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ),
YAML_END
};
static const struct YamlNode struct_ZonePersistentData[] = {
static const struct YamlNode struct_FrSkyLineData[] = {
YAML_IDX,
YAML_STRING("widgetName", 12),
YAML_STRUCT("widgetData", 960, struct_WidgetPersistentData, NULL),
YAML_ARRAY("sources", 16, 3, struct_LineDataSource, NULL),
YAML_END
};
static const struct YamlNode struct_LayoutPersistentData[] = {
YAML_ARRAY("zones", 1056, 10, struct_ZonePersistentData, NULL),
YAML_ARRAY("options", 96, 10, struct_ZoneOptionValueTyped, NULL),
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 struct_CustomScreenData[] = {
YAML_IDX,
YAML_STRING("LayoutId", 12),
YAML_STRUCT("layoutData", 11520, struct_LayoutPersistentData, NULL),
static const struct YamlNode union_TelemetryScreenData_u_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 struct_TopBarPersistentData[] = {
YAML_ARRAY("zones", 1056, 6, struct_ZonePersistentData, NULL),
YAML_ARRAY("options", 96, 1, struct_ZoneOptionValueTyped, NULL),
static const struct YamlNode struct_TelemetryScreenData[] = {
YAML_IDX,
YAML_CUSTOM("type",r_tele_screen_type,w_tele_screen_type),
YAML_UNION("u", 192, union_TelemetryScreenData_u_elmts, select_tele_screen_data),
YAML_END
};
static const struct YamlNode struct_USBJoystickChData[] = {
Expand All @@ -814,7 +779,7 @@ static const struct YamlNode struct_USBJoystickChData[] = {
};
static const struct YamlNode struct_ModelData[] = {
YAML_CUSTOM("semver",nullptr,w_semver),
YAML_STRUCT("header", 1048, struct_ModelHeader, NULL),
YAML_STRUCT("header", 192, struct_ModelHeader, NULL),
YAML_ARRAY("timers", 136, 3, struct_TimerData, NULL),
YAML_UNSIGNED( "telemetryProtocol", 3 ),
YAML_UNSIGNED( "thrTrim", 1 ),
Expand Down Expand Up @@ -850,6 +815,8 @@ static const struct YamlNode struct_ModelData[] = {
YAML_ARRAY("gvars", 56, 9, struct_GVarData, NULL),
YAML_STRUCT("varioData", 40, struct_VarioData, NULL),
YAML_UNSIGNED_CUST( "rssiSource", 8, r_tele_sensor, w_tele_sensor ),
YAML_UNSIGNED_CUST( "voltsSource", 8, r_tele_sensor, w_tele_sensor ),
YAML_UNSIGNED_CUST( "altitudeSource", 8, r_tele_sensor, w_tele_sensor ),
YAML_STRUCT("rssiAlarms", 0, struct_RssiAlarmData, NULL),
YAML_STRUCT("rfAlarms", 16, struct_RFAlarmData, NULL),
YAML_UNSIGNED( "thrTrimSw", 3 ),
Expand All @@ -859,21 +826,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, 9, struct_ScriptData, NULL),
YAML_ARRAY("scriptsData", 192, 7, struct_ScriptData, NULL),
YAML_ARRAY("inputNames", 32, 32, struct_string_32, NULL),
YAML_UNSIGNED( "potsWarnEnabled", 16 ),
YAML_ARRAY("potsWarnPosition", 8, 16, struct_signed_8, NULL),
YAML_UNSIGNED( "potsWarnEnabled", 8 ),
YAML_ARRAY("potsWarnPosition", 8, 8, struct_signed_8, NULL),
YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL),
YAML_ARRAY("screenData", 11616, 10, struct_CustomScreenData, NULL),
YAML_STRUCT("topbarData", 6432, struct_TopBarPersistentData, NULL),
YAML_ARRAY("topbarWidgetWidth", 8, 6, struct_unsigned_8, NULL),
YAML_PADDING( 8 ),
YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL),
YAML_UNSIGNED( "view", 8 ),
YAML_STRING("modelRegistrationID", 8),
YAML_UNSIGNED( "usbJoystickExtMode", 1 ),
YAML_ENUM("usbJoystickIfMode", 3, enum_USBJoystickIfMode),
YAML_UNSIGNED( "usbJoystickCircularCut", 4 ),
YAML_ARRAY("usbJoystickCh", 16, 26, struct_USBJoystickChData, NULL),
YAML_ENUM("radioThemesDisabled", 2, enum_ModelOverridableEnable),
YAML_ENUM("radioGFDisabled", 2, enum_ModelOverridableEnable),
YAML_ENUM("radioTrainerDisabled", 2, enum_ModelOverridableEnable),
YAML_ENUM("modelHeliDisabled", 2, enum_ModelOverridableEnable),
Expand All @@ -887,7 +852,7 @@ static const struct YamlNode struct_ModelData[] = {
YAML_END
};
static const struct YamlNode struct_PartialModel[] = {
YAML_STRUCT("header", 1048, struct_ModelHeader, NULL),
YAML_STRUCT("header", 192, struct_ModelHeader, NULL),
YAML_ARRAY("timers", 136, 3, struct_TimerData, NULL),
YAML_END
};
Expand Down
Loading

0 comments on commit 8cfa5b4

Please sign in to comment.