From f9bac7ba9bd9494fd832b43c442fd9a2aae34075 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 23 Dec 2022 04:05:57 +0100 Subject: [PATCH] chore: Remove support for binary storage format (#2900) --- cmake/toolchain/native.cmake | 2 + radio/src/CMakeLists.txt | 45 +- radio/src/storage/conversions/CMakeLists.txt | 20 - radio/src/storage/conversions/conversions.cpp | 288 ---- radio/src/storage/conversions/conversions.h | 54 - .../conversions/conversions_216_218.cpp | 1232 ----------------- .../conversions/conversions_218_219.cpp | 445 ------ .../conversions/conversions_219_220.cpp | 355 ----- .../conversions/conversions_220_221.cpp | 197 --- .../src/storage/conversions/datastructs_218.h | 598 -------- .../src/storage/conversions/datastructs_219.h | 176 --- .../src/storage/conversions/datastructs_220.h | 33 - .../storage/conversions/yaml/CMakeLists.txt | 2 - .../conversions/yaml/dataconstants_220.h | 1097 --------------- .../conversions/yaml/datastructs_220.h | 1021 -------------- .../src/storage/conversions/yaml/layout_220.h | 57 - .../storage/conversions/yaml/myeeprom_220.h | 275 ---- .../conversions/yaml/yaml_datastructs.cpp | 91 -- .../yaml/yaml_datastructs_funcs.cpp | 1206 ---------------- .../yaml/yaml_datastructs_nv14.cpp | 893 ------------ .../conversions/yaml/yaml_datastructs_t12.cpp | 862 ------------ .../conversions/yaml/yaml_datastructs_t8.cpp | 862 ------------ .../yaml/yaml_datastructs_tlite.cpp | 862 ------------ .../yaml/yaml_datastructs_tx12.cpp | 862 ------------ .../yaml/yaml_datastructs_tx12mk2.cpp | 854 ------------ .../conversions/yaml/yaml_datastructs_x10.cpp | 910 ------------ .../yaml/yaml_datastructs_x12s.cpp | 910 ------------ .../conversions/yaml/yaml_datastructs_x7.cpp | 862 ------------ .../conversions/yaml/yaml_datastructs_x9d.cpp | 877 ------------ .../conversions/yaml/yaml_datastructs_x9e.cpp | 917 ------------ .../yaml/yaml_datastructs_x9lite.cpp | 847 ------------ .../yaml/yaml_datastructs_x9lites.cpp | 857 ------------ .../yaml/yaml_datastructs_xlite.cpp | 854 ------------ .../yaml/yaml_datastructs_xlites.cpp | 858 ------------ .../yaml/yaml_datastructs_zorro.cpp | 862 ------------ radio/src/storage/conversions/yaml/zone_220.h | 69 - radio/src/storage/eeprom_common.cpp | 162 --- radio/src/storage/eeprom_common.h | 52 - radio/src/storage/eeprom_none.cpp | 80 -- radio/src/storage/eeprom_raw.cpp | 581 -------- radio/src/storage/eeprom_rlc.cpp | 950 ------------- radio/src/storage/eeprom_rlc.h | 213 --- radio/src/storage/sdcard_common.cpp | 1 - radio/src/storage/sdcard_raw.cpp | 193 --- radio/src/storage/sdcard_yaml.cpp | 25 - .../storage/yaml/yaml_datastructs_funcs.cpp | 365 +++-- radio/src/targets/horus/CMakeLists.txt | 7 - radio/src/targets/nv14/CMakeLists.txt | 2 - radio/src/targets/taranis/CMakeLists.txt | 8 - radio/src/tests/conversions.cpp | 14 +- 50 files changed, 248 insertions(+), 23617 deletions(-) delete mode 100644 radio/src/storage/conversions/CMakeLists.txt delete mode 100644 radio/src/storage/conversions/conversions.cpp delete mode 100644 radio/src/storage/conversions/conversions.h delete mode 100644 radio/src/storage/conversions/conversions_216_218.cpp delete mode 100644 radio/src/storage/conversions/conversions_218_219.cpp delete mode 100644 radio/src/storage/conversions/conversions_219_220.cpp delete mode 100644 radio/src/storage/conversions/conversions_220_221.cpp delete mode 100644 radio/src/storage/conversions/datastructs_218.h delete mode 100644 radio/src/storage/conversions/datastructs_219.h delete mode 100644 radio/src/storage/conversions/datastructs_220.h delete mode 100644 radio/src/storage/conversions/yaml/CMakeLists.txt delete mode 100644 radio/src/storage/conversions/yaml/dataconstants_220.h delete mode 100644 radio/src/storage/conversions/yaml/datastructs_220.h delete mode 100644 radio/src/storage/conversions/yaml/layout_220.h delete mode 100644 radio/src/storage/conversions/yaml/myeeprom_220.h delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_nv14.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_t8.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_tlite.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_tx12.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_tx12mk2.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x10.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x12s.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x7.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x9d.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x9e.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x9lite.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_x9lites.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_xlite.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_xlites.cpp delete mode 100644 radio/src/storage/conversions/yaml/yaml_datastructs_zorro.cpp delete mode 100644 radio/src/storage/conversions/yaml/zone_220.h delete mode 100644 radio/src/storage/eeprom_common.cpp delete mode 100644 radio/src/storage/eeprom_common.h delete mode 100644 radio/src/storage/eeprom_none.cpp delete mode 100644 radio/src/storage/eeprom_raw.cpp delete mode 100644 radio/src/storage/eeprom_rlc.cpp delete mode 100644 radio/src/storage/eeprom_rlc.h delete mode 100644 radio/src/storage/sdcard_raw.cpp diff --git a/cmake/toolchain/native.cmake b/cmake/toolchain/native.cmake index a6f791ecdd6..4a7fd044863 100644 --- a/cmake/toolchain/native.cmake +++ b/cmake/toolchain/native.cmake @@ -3,6 +3,8 @@ if(APPLE) set(CMAKE_C_FLAGS "-Wno-asm-operand-widths -Wno-deprecated-declarations") set(CMAKE_CXX_FLAGS "-Wno-asm-operand-widths -Wno-deprecated-declarations") + set(CMAKE_C_FLAGS_DEBUG "-Wno-asm-operand-widths -Wno-deprecated-declarations") + set(CMAKE_CXX_FLAGS_DEBUG "-Wno-asm-operand-widths -Wno-deprecated-declarations") endif() if(MINGW OR WIN32) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 12c4e137b6b..c08d92912af 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -58,7 +58,6 @@ option(TBS_RELEASE "Used to build TBS released firmware" OFF) option(IMRC_RELEASE "Used to build IMRC released firmware" OFF) option(HARDWARE_TRAINER_MULTI "Allow multi trainer" OFF) option(BOOTLOADER "Include Bootloader" ON) -option(YAML_STORAGE "Enable YAML storage" ON) # since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags. set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).") @@ -149,45 +148,17 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/bitmaps/${BITMAPS_DIR}) include(gui/CMakeLists.txt) +# TODO: move to storage/ set(SRC ${SRC} storage/storage_common.cpp) - -include(storage/conversions/CMakeLists.txt) - -if(${STORAGE} STREQUAL SDCARD) - set(SRC ${SRC} storage/sdcard_common.cpp) - if(${STORAGE_FORMAT} STREQUAL RAW) - set(SRC ${SRC} storage/modelslist.cpp storage/sdcard_raw.cpp) - add_definitions(-DSDCARD_RAW) - elseif(${STORAGE_FORMAT} STREQUAL YAML) - set(SRC ${SRC} storage/sdcard_yaml.cpp) - add_definitions(-DSDCARD_YAML) - include(storage/yaml/CMakeLists.txt) - if (${STORAGE_CONVERT} STREQUAL EEPROM_RLC) - if (STORAGE_CONVERSIONS LESS 221) - set(SRC ${SRC} storage/eeprom_rlc.cpp) - add_definitions(-DEEPROM_RLC) - endif() - else(${STORAGE_CONVERT} STREQUAL RAW) - set(SRC ${SRC} storage/sdcard_raw.cpp) - endif() - endif() - if(STORAGE_MODELSLIST) - set(SRC ${SRC} storage/modelslist.cpp) - add_definitions(-DSTORAGE_MODELSLIST) - endif() -elseif(${STORAGE} STREQUAL EEPROM) - set(SRC ${SRC} storage/eeprom_common.cpp) - add_definitions(-DEEPROM) - if(${STORAGE_FORMAT} STREQUAL RLC) - set(SRC ${SRC} storage/eeprom_rlc.cpp) - add_definitions(-DEEPROM_RLC) - else() - set(SRC ${SRC} storage/eeprom_none.cpp) - add_definitions(-DEEPROM_NONE) - endif() +set(SRC ${SRC} storage/sdcard_common.cpp) +set(SRC ${SRC} storage/sdcard_yaml.cpp) +add_definitions(-DSDCARD_YAML) +include(storage/yaml/CMakeLists.txt) +if(STORAGE_MODELSLIST) + set(SRC ${SRC} storage/modelslist.cpp) + add_definitions(-DSTORAGE_MODELSLIST) endif() - if(RTC_BACKUP_RAM) add_definitions(-DRTC_BACKUP_RAM) diff --git a/radio/src/storage/conversions/CMakeLists.txt b/radio/src/storage/conversions/CMakeLists.txt deleted file mode 100644 index e06b4dab54f..00000000000 --- a/radio/src/storage/conversions/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -set(STORAGE_CONVERSIONS 219) - -if(PCB STREQUAL X7) - if(PCBREV STREQUAL ZORRO OR PCBREV STREQUAL TPRO OR PCBREV STREQUAL TX12MK2 OR PCBREV STREQUAL LR3PRO OR PCBREV STREQUAL COMMANDO8) - set(STORAGE_CONVERSIONS 221) - endif() -endif() -message("Storage conversion: ${STORAGE_CONVERSIONS}") - -if(STORAGE_CONVERSIONS) - add_definitions(-DSTORAGE_CONVERSIONS=${STORAGE_CONVERSIONS}) - set(SRC - ${SRC} - storage/conversions/conversions.cpp - storage/conversions/conversions_219_220.cpp - storage/conversions/conversions_220_221.cpp - ) - - include(storage/conversions/yaml/CMakeLists.txt) -endif() diff --git a/radio/src/storage/conversions/conversions.cpp b/radio/src/storage/conversions/conversions.cpp deleted file mode 100644 index 149230bc072..00000000000 --- a/radio/src/storage/conversions/conversions.cpp +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" -#include "conversions.h" - -#if defined(SDCARD_RAW) || defined(SDCARD_YAML) -#include "storage/modelslist.h" -#include "storage/sdcard_common.h" -#include "storage/sdcard_raw.h" -#include "storage/sdcard_yaml.h" -#endif - -#if defined(STORAGE_MODELSLIST) -static void drawProgressScreen(const char* filename, int progress, int total) -{ -#if defined(COLORLCD) - lcdInitDirectDrawing(); - - OpenTxTheme* l_theme = static_cast(theme); - l_theme->drawBackground(lcd); - - lcd->drawText(LCD_W / 2, LCD_H / 2 - 30, STR_CONVERTING, - FONT(XL) | CENTERED | COLOR_THEME_WARNING); - lcd->drawText(LCD_W / 2, LCD_H / 2, filename, - FONT(STD) | CENTERED | COLOR_THEME_SECONDARY1); - - l_theme->drawProgressBar(lcd, - LCD_W / 4, - LCD_H / 2 + 40, - LCD_W / 2, - 20, - progress, total); - lcdRefresh(); - - // invalidate screen to enable quick return - // to normal display routine - lv_obj_invalidate(lv_scr_act()); - - WDG_RESET(); -#else - // TODO: BW progress screen -#endif -} - -void convertBinRadioData(const char * path, int version) -{ - TRACE("convertRadioData(%s,%d)", path, version); - -#if defined(COLORLCD) - // the theme has not been loaded before - static_cast(theme)->load(); - - // Init backlight mode before entering alert screens - requiredBacklightBright = BACKLIGHT_FORCED_ON; - g_eeGeneral.blOffBright = 20; -#endif - - RAISE_ALERT(STR_STORAGE_WARNING, STR_SDCARD_CONVERSION_REQUIRE, NULL, - AU_NONE); - - // Load models list before converting - modelslist.load(ModelsList::Format::txt); - - unsigned converted = 0; - auto to_convert = modelslist.getModelsCount() + 1; - - drawProgressScreen(RADIO_FILENAME, converted, to_convert); - TRACE("converting '%s' (%d/%d)", RADIO_FILENAME, converted, to_convert); - -#if STORAGE_CONVERSIONS < 220 - if (version == 219) { - convertRadioData_219_to_220(path); - version = 220; - } -#endif -#if STORAGE_CONVERSIONS < 220 - if (version == 220) { - convertRadioData_220_to_221(path); - version = 221; - } -#endif - converted++; - -#if defined(SIMU) - RTOS_WAIT_MS(200); -#endif - - const char* error = nullptr; - for(auto model_it = modelslist.begin(); model_it != modelslist.end(); ++model_it) { - uint8_t model_version = 0; - auto* model_ptr = *model_it; - char* filename = model_ptr->modelFilename; - - TRACE("converting '%s' (%d/%d)", filename, converted, to_convert); - drawProgressScreen(filename, converted, to_convert); - - // read only the version number (size=0) - error = readModelBin(filename, nullptr, 0, &model_version); - if (!error) { - // TODO: error handling - error = convertBinModelData(filename, model_version); - - if (error) { - TRACE("ERROR converting '%s': %s", filename, error); - } - } else { - TRACE("ERROR reading '%s': %s", filename, error); - } - - converted++; - -#if defined(SIMU) - RTOS_WAIT_MS(200); -#endif - } - -#if defined(SDCARD_YAML) || defined(STORAGE_MODELSLIST) - modelslist.clear(); - modelslist.load(); -#endif -} - -void patchFilenameToYaml(char* str) -{ - constexpr unsigned bin_len = sizeof(MODELS_EXT) - 1; - constexpr unsigned yml_len = sizeof(YAML_EXT) - 1; - - // patch file extension - const char* ext = strrchr(str, '.'); - if (ext && (strlen(ext) == bin_len) && - !strncmp(ext, STR_MODELS_EXT, bin_len)) { - memcpy((void*)ext, (void*)STR_YAML_EXT, yml_len + 1); - } -} - -const char* convertBinModelData(char* filename, int version) -{ - TRACE("convertModelData(%s)", filename); - - char path[FF_MAX_LFN + 1]; - memcpy(path, MODELS_PATH, sizeof(MODELS_PATH)-1); - path[sizeof(MODELS_PATH)-1] = '/'; - strcpy(&path[sizeof(MODELS_PATH)], filename); - -#if STORAGE_CONVERSIONS < 220 - if (version == 219) { - const char* error = convertModelData_219_to_220(path); - if (error) return error; - version = 220; - } -#endif -#if STORAGE_CONVERSIONS < 221 - if (version == 220) { - const char* error = convertModelData_220_to_221(path); - if (error) return error; - version = 221; - } -#endif - - patchFilenameToYaml(filename); - return nullptr; -} -#endif - -#if defined(EEPROM) || defined(EEPROM_RLC) -#include "storage/eeprom_common.h" - -void eeConvertModel(int id, int version) -{ - TRACE("eeConvertModel(%d,%d)", id, version); - -#if STORAGE_CONVERSIONS < 220 - if (version == 219) { - convertModelData_219_to_220(id); - version = 220; - } -#endif -#if STORAGE_CONVERSIONS < 221 - if (version == 220) { - convertModelData_220_to_221(id); - version = 221; - } -#endif - // TODO: error handling -} - -bool eeConvert(uint8_t start_version) -{ - const char *msg = NULL; - - switch (start_version) { - case 219: - msg = "EEprom Data v219"; - break; - case 220: - msg = "EEprom Data v220"; - break; - default: - return false; - } - - // Information to the user and wait for key press - g_eeGeneral.backlightMode = e_backlight_mode_on; - g_eeGeneral.backlightBright = 0; - g_eeGeneral.contrast = 25; - - ALERT(STR_STORAGE_WARNING, msg, AU_BAD_RADIODATA); - - RAISE_ALERT(STR_STORAGE_WARNING, STR_EEPROM_CONVERTING, NULL, AU_NONE); - - // General Settings conversion - int version = start_version; - (void)version; - - sdCheckAndCreateDirectory(RADIO_PATH); - sdCheckAndCreateDirectory(MODELS_PATH); - -#if STORAGE_CONVERSIONS < 220 - if (version == 219) { - version = 220; - convertRadioData_219_to_220(); - } -#endif -#if STORAGE_CONVERSIONS < 221 - if (version == 220) { - version = 221; - convertRadioData_220_to_221(); - } -#endif - -#if defined(STORAGE_MODELSLIST) - modelslist.clear(); -#endif - -#if LCD_W >= 212 - lcdDrawRect(60, 6*FH+4, 132, 3); -#else - lcdDrawRect(10, 6*FH+4, 102, 3); -#endif - - // Models conversion - for (uint8_t id=0; id= 212 - lcdDrawSolidHorizontalLine(61, 6*FH+5, 10+id*2, FORCE); -#else - lcdDrawSolidHorizontalLine(11, 6*FH+5, 10+(id*3)/2, FORCE); -#endif - lcdRefresh(); - -#if defined(SIMU) - RTOS_WAIT_MS(100); -#endif - -#if defined(SDCARD_RAW) || defined(SDCARD_YAML) - if (eeModelExistsRlc(id)) { -#else - if (eeModelExists(id)) { -#endif - eeConvertModel(id, start_version); - } - } - -#if defined(STORAGE_MODELSLIST) - modelslist.save(); -#endif - - return true; -} -#endif diff --git a/radio/src/storage/conversions/conversions.h b/radio/src/storage/conversions/conversions.h deleted file mode 100644 index 135533091be..00000000000 --- a/radio/src/storage/conversions/conversions.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -// Entry points for converting radio & model data -void convertBinRadioData(const char * path, int version); -const char* convertBinModelData(char * filename, int version); - -bool eeConvert(uint8_t start_version); -void eeConvertModel(int id, int version); - -// // Conversions 216 to 217 -// void convertModelData_216_to_217(ModelData &model); -// void convertRadioData_216_to_217(RadioData &settings); - -// // Conversions 217 to 218 -// void convertModelData_217_to_218(ModelData &model); -// void convertRadioData_217_to_218(RadioData &settings); - -// // Conversions 218 to 219 -// void convertModelData_218_to_219(ModelData &model); -// void convertRadioData_218_to_219(RadioData &settings); - - -// Conversions 219 to 220 -const char* convertModelData_219_to_220(uint8_t id); -const char* convertModelData_219_to_220(const char* filename); - -const char* convertRadioData_219_to_220(); -const char* convertRadioData_219_to_220(const char* path); - -// Conversions 220 to 221 -const char* convertModelData_220_to_221(uint8_t id); -const char* convertModelData_220_to_221(const char* filename); - -const char* convertRadioData_220_to_221(); -const char* convertRadioData_220_to_221(const char* path); diff --git a/radio/src/storage/conversions/conversions_216_218.cpp b/radio/src/storage/conversions/conversions_216_218.cpp deleted file mode 100644 index 67590c85d6c..00000000000 --- a/radio/src/storage/conversions/conversions_216_218.cpp +++ /dev/null @@ -1,1232 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" -#include "datastructs_218.h" - -enum Mix216Sources { - MIXSRC216_NONE, - -#if defined(PCBTARANIS) - MIXSRC216_FIRST_INPUT, - MIXSRC216_LAST_INPUT = MIXSRC216_FIRST_INPUT+MAX_INPUTS-1, - - MIXSRC216_FIRST_LUA, - MIXSRC216_LAST_LUA = MIXSRC216_FIRST_LUA+(MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS)-1, -#endif - - MIXSRC216_Rud, - MIXSRC216_Ele, - MIXSRC216_Thr, - MIXSRC216_Ail, - - MIXSRC216_FIRST_POT, -#if defined(PCBTARANIS) - MIXSRC216_POT1 = MIXSRC216_FIRST_POT, - MIXSRC216_POT2, - MIXSRC216_POT3, - MIXSRC216_SLIDER1, - MIXSRC216_SLIDER2, - MIXSRC216_LAST_POT = MIXSRC216_SLIDER2, -#else - MIXSRC216_P1 = MIXSRC216_FIRST_POT, - MIXSRC216_P2, - MIXSRC216_P3, - MIXSRC216_LAST_POT = MIXSRC216_P3, -#endif - - - MIXSRC216_MAX, - - MIXSRC216_CYC1, - MIXSRC216_CYC2, - MIXSRC216_CYC3, - - MIXSRC216_TrimRud, - MIXSRC216_TrimEle, - MIXSRC216_TrimThr, - MIXSRC216_TrimAil, - - MIXSRC216_FIRST_SWITCH, - -#if defined(PCBTARANIS) - MIXSRC216_SA = MIXSRC216_FIRST_SWITCH, - MIXSRC216_SB, - MIXSRC216_SC, - MIXSRC216_SD, - MIXSRC216_SE, - MIXSRC216_SF, - MIXSRC216_SG, - MIXSRC216_SH, -#else - MIXSRC216_3POS = MIXSRC216_FIRST_SWITCH, - MIXSRC216_THR, - MIXSRC216_RUD, - MIXSRC216_ELE, - MIXSRC216_AIL, - MIXSRC216_GEA, - MIXSRC216_TRN, -#endif - MIXSRC216_FIRST_LOGICAL_SWITCH, - MIXSRC216_SW1 = MIXSRC216_FIRST_LOGICAL_SWITCH, - MIXSRC216_SW9 = MIXSRC216_SW1 + 8, - MIXSRC216_SWA, - MIXSRC216_SWB, - MIXSRC216_SWC, - MIXSRC216_LAST_LOGICAL_SWITCH = MIXSRC216_FIRST_LOGICAL_SWITCH+32-1, - - MIXSRC216_FIRST_TRAINER, - MIXSRC216_LAST_TRAINER = MIXSRC216_FIRST_TRAINER+MAX_TRAINER_CHANNELS-1, - - MIXSRC216_FIRST_CH, - MIXSRC216_CH1 = MIXSRC216_FIRST_CH, - MIXSRC216_CH2, - MIXSRC216_CH3, - MIXSRC216_CH4, - MIXSRC216_CH5, - MIXSRC216_CH6, - MIXSRC216_CH7, - MIXSRC216_CH8, - MIXSRC216_CH9, - MIXSRC216_CH10, - MIXSRC216_CH11, - MIXSRC216_CH12, - MIXSRC216_CH13, - MIXSRC216_CH14, - MIXSRC216_CH15, - MIXSRC216_CH16, - MIXSRC216_LAST_CH = MIXSRC216_CH1+MAX_OUTPUT_CHANNELS-1, - - MIXSRC216_GVAR1, - MIXSRC216_LAST_GVAR = MIXSRC216_GVAR1+MAX_GVARS-1, - - MIXSRC216_FIRST_TELEM, -}; - -enum Telemetry216Source { - TELEM216_NONE, - TELEM216_TX_VOLTAGE, - TELEM216_TX_TIME, - TELEM216_RESERVE1, - TELEM216_RESERVE2, - TELEM216_RESERVE3, - TELEM216_RESERVE4, - TELEM216_RESERVE5, - TELEM216_TIMER1, - TELEM216_TIMER2, - TELEM216_SWR, - TELEM216_RSSI_TX, - TELEM216_RSSI_RX, - TELEM216_RESERVE0, - TELEM216_A1, - TELEM216_A2, - TELEM216_A3, - TELEM216_A4, - TELEM216_ALT, - TELEM216_RPM, - TELEM216_FUEL, - TELEM216_T1, - TELEM216_T2, - TELEM216_SPEED, - TELEM216_DIST, - TELEM216_GPSALT, - TELEM216_CELL, - TELEM216_CELLS_SUM, - TELEM216_VFAS, - TELEM216_CURRENT, - TELEM216_CONSUMPTION, - TELEM216_POWER, - TELEM216_ACCx, - TELEM216_ACCy, - TELEM216_ACCz, - TELEM216_HDG, - TELEM216_VSPEED, - TELEM216_ASPEED, - TELEM216_DTE, - TELEM216_RESERVE6, - TELEM216_RESERVE7, - TELEM216_RESERVE8, - TELEM216_RESERVE9, - TELEM216_RESERVE10, - TELEM216_MIN_A1, - TELEM216_MIN_A2, - TELEM216_MIN_A3, - TELEM216_MIN_A4, - TELEM216_MIN_ALT, - TELEM216_MAX_ALT, - TELEM216_MAX_RPM, - TELEM216_MAX_T1, - TELEM216_MAX_T2, - TELEM216_MAX_SPEED, - TELEM216_MAX_DIST, - TELEM216_MAX_ASPEED, - TELEM216_MIN_CELL, - TELEM216_MIN_CELLS_SUM, - TELEM216_MIN_VFAS, - TELEM216_MAX_CURRENT, - TELEM216_MAX_POWER, - TELEM216_RESERVE11, - TELEM216_RESERVE12, - TELEM216_RESERVE13, - TELEM216_RESERVE14, - TELEM216_RESERVE15, - TELEM216_ACC, - TELEM216_GPS_TIME, -}; - -PACK(typedef struct { - uint8_t type:3; - uint8_t smooth:1; - uint8_t spare:4; - int8_t points; -}) CurveHeader_v216; - -#if defined(PCBTARANIS) -PACK(typedef struct { - uint8_t srcRaw; - uint16_t scale; - uint8_t chn; - int8_t swtch; - uint16_t flightModes; - int8_t weight; - int8_t carryTrim:6; - uint8_t mode:2; - char name[LEN_EXPOMIX_NAME]; - int8_t offset; - CurveRef curve; - uint8_t spare; -}) ExpoData_v216; -PACK(typedef struct { - uint32_t srcRaw:10; - uint32_t scale:14; - uint32_t chn:8; - int8_t swtch; - uint16_t flightModes; - int8_t weight; - int8_t carryTrim:6; - uint8_t mode:2; - char name[LEN_EXPOMIX_NAME]; - int8_t offset; - CurveRef curve; -}) ExpoData_v217; -#else -PACK(typedef struct { - uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both - uint8_t chn:4; - uint8_t curveMode:2; - int8_t swtch; - uint16_t flightModes; - int8_t weight; - char name[LEN_EXPOMIX_NAME_218]; - int8_t curveParam; -}) ExpoData_v216; -typedef ExpoData_v216 ExpoData_v217; -#endif - -#if defined(PCBTARANIS) -PACK(typedef struct { - int16_t min; - int16_t max; - int8_t ppmCenter; - int16_t offset:14; - uint16_t symetrical:1; - uint16_t revert:1; - char name[LEN_CHANNEL_NAME]; - int8_t curve; -}) LimitData_v216; -#else -#define LimitData_v216 LimitData -#endif - -#if defined(PCBTARANIS) -PACK(typedef struct { - uint8_t destCh; - uint16_t flightModes; - uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means := - uint8_t carryTrim:1; - uint8_t spare1:5; - int16_t weight; - int8_t swtch; - CurveRef curve; - uint8_t mixWarn:4; // mixer warning - uint8_t spare2:4; - uint8_t delayUp; - uint8_t delayDown; - uint8_t speedUp; - uint8_t speedDown; - uint8_t srcRaw; - int16_t offset; - char name[LEN_EXPOMIX_NAME]; - uint8_t spare3; -}) MixData_v216; -PACK(typedef struct { - uint8_t destCh; - uint16_t flightModes:9; - uint16_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means := - uint16_t carryTrim:1; - uint16_t mixWarn:4; // mixer warning - int16_t weight; - uint32_t srcRaw:10; - int32_t offset:14; - int32_t swtch:8; - CurveRef curve; - uint8_t delayUp; - uint8_t delayDown; - uint8_t speedUp; - uint8_t speedDown; - char name[LEN_EXPOMIX_NAME]; -}) MixData_v217; -#else -PACK(typedef struct { - uint8_t destCh:5; - uint8_t mixWarn:3; // mixer warning - uint16_t flightModes; - uint8_t curveMode:1; - uint8_t noExpo:1; - int8_t carryTrim:3; - uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means := - uint8_t spare:1; - int16_t weight; - int8_t swtch; - int8_t curveParam; - uint8_t delayUp; - uint8_t delayDown; - uint8_t speedUp; - uint8_t speedDown; - uint8_t srcRaw; - int16_t offset; - char name[LEN_EXPOMIX_NAME_218]; -}) MixData_v216; -typedef MixData MixData_v217; -#endif - -PACK(typedef struct { - int8_t mode; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw - uint16_t start; - uint8_t countdownBeep:2; - uint8_t minuteBeep:1; - uint8_t persistent:2; - uint8_t spare:3; - uint16_t value; -}) TimerData_v216; - -PACK(typedef struct { - int32_t mode:8; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw - uint32_t start:24; - int32_t value:24; - uint32_t countdownBeep:2; - uint32_t minuteBeep:1; - uint32_t persistent:2; - uint32_t spare:3; - char name[LEN_TIMER_NAME_218]; -}) TimerData_v217; - -PACK(typedef struct { - int16_t trim[NUM_STICKS]; - int8_t swtch; // swtch of phase[0] is not used - char name[LEN_FLIGHT_MODE_NAME_218]; - uint8_t fadeIn; - uint8_t fadeOut; - int16_t rotaryEncoders[1]; - gvar_t gvars[9]; -}) FlightModeData_v216; - -PACK(typedef struct { // Logical Switches data - int8_t v1; - int16_t v2; - int16_t v3; - uint8_t func; - uint8_t delay; - uint8_t duration; - int8_t andsw; -}) LogicalSwitchData_v216; - -PACK(typedef struct { // Logical Switches data - uint16_t func:6; - int16_t v1:10; - int16_t v2; - int16_t v3; - uint8_t delay; - uint8_t duration; - int8_t andsw; -}) LogicalSwitchData_v217; - -#if defined(PCBTARANIS) -PACK(typedef struct { - int8_t swtch; - uint8_t func; - PACK(union { - PACK(struct { - char name[8]; - }) play; - - PACK(struct { - int16_t val; - uint8_t mode; - uint8_t param; - int32_t spare2; - }) all; - - PACK(struct { - int32_t val1; - int32_t val2; - }) clear; - }); - uint8_t active; -}) CustomFunctionData_v216; -#else -PACK(typedef struct { - int8_t swtch; - uint8_t func; - PACK(union { - PACK(struct { - char name[6]; - }) play; - - PACK(struct { - int16_t val; - uint8_t mode; - uint8_t param; - int16_t spare2; - }) all; - - PACK(struct { - int32_t val1; - int16_t val2; - }) clear; - }); - uint8_t active; -}) CustomFunctionData_v216; -#endif - -PACK(typedef struct { - uint8_t source; - uint8_t barMin; // minimum for bar display - uint8_t barMax; // ditto for max display (would usually = ratio) -}) FrSkyBarData_v216; - -PACK(typedef struct { - uint8_t sources[NUM_LINE_ITEMS]; -}) FrSkyLineData_v216; - -typedef union { - FrSkyBarData_v216 bars[4]; - FrSkyLineData_v216 lines[4]; -} FrSkyScreenData_v216; - - -PACK(struct FrSkyChannelData_v216 { - uint8_t unused[7]; - }); - - -PACK(typedef struct { - FrSkyChannelData_v216 channels[4]; - uint8_t usrProto; // Protocol in FrSky user data, 0=None, 1=FrSky hub, 2=WS HowHigh, 3=Halcyon - uint8_t voltsSource:7; - uint8_t altitudeDisplayed:1; - int8_t blades; // How many blades for RPMs, 0=2 blades - uint8_t currentSource; - uint8_t screensType; // 2bits per screen (None/Gauges/Numbers/Script) - FrSkyScreenData_v216 screens[3]; - uint8_t varioSource; - int8_t varioCenterMax; - int8_t varioCenterMin; - int8_t varioMin; - int8_t varioMax; - uint8_t rssiAlarms[2]; - uint16_t mAhPersistent:1; - uint16_t storedMah:15; - int8_t fasOffset; -}) FrSkyData_v216; - -PACK(typedef struct { - char file[10]; - char name[10]; - int8_t inputs[10]; -}) ScriptData_v216; - -PACK(typedef struct { // Swash Ring data - uint8_t invertELE:1; - uint8_t invertAIL:1; - uint8_t invertCOL:1; - uint8_t type:5; - uint8_t collectiveSource; - uint8_t value; -}) SwashRingData_v216; - -PACK(typedef struct { - int8_t rfProtocol; - uint8_t channelsStart; - int8_t channelsCount; // 0=8 channels - uint8_t failsafeMode; - int16_t failsafeChannels[MAX_OUTPUT_CHANNELS_218]; - int8_t ppmDelay; - int8_t ppmFrameLength; - uint8_t ppmPulsePol; -}) ModuleData_v216; - -PACK(typedef struct { - uint8_t type:4; - int8_t rfProtocol:4; - uint8_t channelsStart; - int8_t channelsCount; // 0=8 channels - union { - struct { - uint8_t failsafeMode:4; // only 3 bits used - uint8_t subType:3; - uint8_t invertedSerial:1; // telemetry serial inverted from standard - }; - struct { - uint8_t failsafeMode:4; // only 3 bits used - uint8_t freq:2; - uint8_t region:2; - } r9m; - }; - int16_t failsafeChannels[MAX_OUTPUT_CHANNELS_218]; - union { - struct { - int8_t delay:6; - uint8_t pulsePol:1; - uint8_t outputType:1; // false = open drain, true = push pull - int8_t frameLength; - } ppm; - }; -}) ModuleData_v217; - -#if defined(PCBTARANIS) -#define MODELDATA_EXTRA_216 \ - uint8_t externalModule; \ - uint8_t trainerMode; \ - ModuleData_v216 moduleData[NUM_MODULES+1]; \ - char curveNames[MAX_CURVES][6]; \ - ScriptData_v216 scriptsData[MAX_SCRIPTS]; \ - char inputNames[MAX_INPUTS][LEN_INPUT_NAME]; \ - uint8_t nPotsToWarn; \ - int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS]; \ - uint8_t spare[2]; -#endif - -#if defined(PCBTARANIS) -#define MODELDATA_EXTRA_217 \ - uint8_t spare:3; \ - uint8_t trainerMode:3; \ - uint8_t potsWarnMode:2; \ - ModuleData_v217 moduleData[NUM_MODULES+1]; \ - char curveNames[MAX_CURVES][6]; \ - ScriptData scriptsData[MAX_SCRIPTS]; \ - char inputNames[MAX_INPUTS][LEN_INPUT_NAME]; \ - uint8_t potsWarnEnabled; \ - int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS]; -#else -#define MODELDATA_EXTRA_217 \ - uint8_t spare:6; \ - uint8_t potsWarnMode:2; \ - ModuleData_v217 moduleData[NUM_MODULES+1]; \ - uint8_t potsWarnEnabled; \ - int8_t potsWarnPosition[NUM_POTS+NUM_SLIDERS]; \ - uint8_t rxBattAlarms[2]; -#endif - -#if defined(PCBTARANIS) && LCD_W >= 212 -PACK(typedef struct { - char name[LEN_MODEL_NAME]; - uint8_t modelId; - char bitmap[LEN_BITMAP_NAME]; -}) ModelHeader_v216; -#else -PACK(typedef struct { - char name[LEN_MODEL_NAME_218]; - uint8_t modelId; -}) ModelHeader_v216; -#endif - -PACK(typedef struct { - ModelHeader_v216 header; - TimerData_v216 timers[2]; - uint8_t telemetryProtocol:3; - uint8_t thrTrim:1; // Enable Throttle Trim - int8_t spare2:4; - int8_t trimInc:3; // Trim Increments - uint8_t disableThrottleWarning:1; - uint8_t displayChecklist:1; - uint8_t extendedLimits:1; - uint8_t extendedTrims:1; - uint8_t throttleReversed:1; - BeepANACenter beepANACenter; // 1<<0->A1.. 1<<6->A7 - MixData_v216 mixData[MAX_MIXERS]; - LimitData_v216 limitData[MAX_OUTPUT_CHANNELS_218]; - ExpoData_v216 expoData[MAX_EXPOS_218]; - - CurveHeader_v216 curves[MAX_CURVES_218]; - int8_t points[MAX_CURVE_POINTS_218]; - - LogicalSwitchData_v216 logicalSw[32]; - CustomFunctionData_v216 customFn[MAX_SPECIAL_FUNCTIONS_218]; - SwashRingData_v216 swashR; - FlightModeData_v216 flightModeData[MAX_FLIGHT_MODES_218]; - - uint8_t thrTraceSrc; - - uint16_t switchWarningState; - uint8_t switchWarningEnable; - - GVarData gvars[MAX_GVARS]; - - FrSkyData_v216 frsky; - - MODELDATA_EXTRA_216 - -}) ModelData_v216; - -PACK(typedef struct { - char name[6]; - uint8_t popup:1; - uint8_t spare:7; -}) GVarData_v217; - -PACK(typedef struct { - ModelHeader_v218 header; - TimerData_v217 timers[MAX_TIMERS_218]; - uint8_t telemetryProtocol:3; - uint8_t thrTrim:1; // Enable Throttle Trim - uint8_t noGlobalFunctions:1; - uint8_t displayTrims:2; - uint8_t ignoreSensorIds:1; - int8_t trimInc:3; // Trim Increments - uint8_t disableThrottleWarning:1; - uint8_t displayChecklist:1; - uint8_t extendedLimits:1; - uint8_t extendedTrims:1; - uint8_t throttleReversed:1; - BeepANACenter beepANACenter; - MixData_v217 mixData[MAX_MIXERS_218]; - LimitData limitData[MAX_OUTPUT_CHANNELS_218]; - ExpoData_v217 expoData[MAX_EXPOS_218]; - - CurveHeader_v216 curves[MAX_CURVES_218]; - int8_t points[MAX_CURVE_POINTS_218]; - - LogicalSwitchData_v217 logicalSw[MAX_LOGICAL_SWITCHES_218]; - CustomFunctionData_v216 customFn[MAX_SPECIAL_FUNCTIONS_218]; - SwashRingData swashR; - FlightModeData_v216 flightModeData[MAX_FLIGHT_MODES_218]; - - uint8_t thrTraceSrc; - - swarnstate_t switchWarningState; - swarnenable_t switchWarningEnable; - - GVarData_v217 gvars[MAX_GVARS_218]; - - FrSkyTelemetryData_v217 frsky; - RssiAlarmData rssiAlarms; - - MODELDATA_EXTRA_217 - - TelemetrySensor_218 telemetrySensors[MAX_TELEMETRY_SENSORS_218]; - - TARANIS_PCBX9E_FIELD(uint8_t toplcdTimer) -}) ModelData_v217; - -int ConvertTelemetrySource_216_to_217(int source) -{ - // TELEM_TIMER3 added -// if (source >= TELEM_TIMER3) - // source += 1; - - return source; -} - -#if defined(PCBTARANIS) -int convertSwitch_216_to_217(int swtch) -{ - if (swtch < 0) - return -convertSwitch_216_to_217(-swtch); - - if (swtch > SWSRC_SF0) - swtch += 1; - - if (swtch > SWSRC_SH0) - swtch += 1; - - return swtch; -} -#else -int convertSwitch_216_to_217(int swtch) -{ - return swtch; -} -#endif - -int convertSwitch_217_to_218(int swtch) -{ - // 32 additional logical switches - - if (swtch < 0) - return -convertSwitch_217_to_218(-swtch); - - if (swtch >= SWSRC_FIRST_LOGICAL_SWITCH+32) - return swtch+32; - - return swtch; -} - -int convertSource_216_to_217(int source) -{ -#if defined(PCBX9E) - // SI to SR switches added - if (source >= MIXSRC_SI) - source += 10; -#endif - // Telemetry conversions - if (source >= MIXSRC_FIRST_TELEM) - source = 0; - - return source; -} - -int convertSource_217_to_218(int source) -{ -#if defined(PCBTARANIS) - if (source >= MIXSRC_FIRST_LOGICAL_SWITCH + 32) - source += 32; -#endif - - return source; -} - -int convertGVar_216_to_217(int value) -{ - if (value < -4096 + 9) - value += 4096 - 1024; - else if (value > 4095 - 9) - value -= 4095 - 1023; - return value; -} - -PACK(typedef struct { - uint8_t version; - uint16_t variant; - CalibData calib[NUM_STICKS+NUM_POTS+NUM_SLIDERS]; - uint16_t chkSum; - int8_t currModel; - uint8_t contrast; - uint8_t vBatWarn; - int8_t txVoltageCalibration; - int8_t backlightMode; - TrainerData trainer; - uint8_t view; // index of view in main screen - int8_t buzzerMode:2; // -2=quiet, -1=only alarms, 0=no keys, 1=all - uint8_t fai:1; - int8_t beepMode:2; // -2=quiet, -1=only alarms, 0=no keys, 1=all - uint8_t alarmsFlash:1; - uint8_t disableMemoryWarning:1; - uint8_t disableAlarmWarning:1; - uint8_t stickMode:2; - int8_t timezone:5; - uint8_t adjustRTC:1; - uint8_t inactivityTimer; - uint8_t telemetryBaudrate:3; - int8_t splashMode:3; - int8_t hapticMode:2; // -2=quiet, -1=only alarms, 0=no keys, 1=all - int8_t switchesDelay; - uint8_t lightAutoOff; - uint8_t templateSetup; // RETA order for receiver channels - int8_t PPM_Multiplier; - int8_t hapticLength; - uint8_t reNavigation; - N_TARANIS_FIELD(uint8_t stickReverse) - int8_t beepLength:3; - int8_t hapticStrength:3; - uint8_t gpsFormat:1; - uint8_t unexpectedShutdown:1; - uint8_t speakerPitch; - int8_t speakerVolume; - int8_t vBatMin; - int8_t vBatMax; - - uint8_t backlightBright; - int8_t txCurrentCalibration; - int8_t spare; - uint8_t mAhWarn; - uint16_t mAhUsed; - uint32_t globalTimer; - int8_t temperatureCalib; - uint8_t bluetoothBaudrate; - uint8_t optrexDisplay; - uint8_t sticksGain; - uint8_t rotarySteps; - uint8_t countryCode; - uint8_t imperial; - char ttsLanguage[2]; - int8_t beepVolume; - int8_t wavVolume; - int8_t varioVolume; - int8_t varioPitch; - int8_t varioRange; - int8_t varioRepeat; - int8_t backgroundVolume; - - TARANIS_FIELD(uint8_t auxSerialMode:6) - TARANIS_FIELD(uint8_t slidersConfig:2) - TARANIS_FIELD(uint8_t potsConfig) - TARANIS_FIELD(uint8_t backlightColor) - TARANIS_FIELD(swarnstate_t switchUnlockStates) - TARANIS_FIELD(CustomFunctionData_v216 customFn[MAX_SPECIAL_FUNCTIONS_218]) - TARANIS_FIELD(swconfig_t switchConfig) - TARANIS_FIELD(char switchNames[NUM_SWITCHES][LEN_SWITCH_NAME_218]) - TARANIS_FIELD(char anaNames[NUM_STICKS+NUM_POTS+NUM_SLIDERS][LEN_ANA_NAME_218]) - N_TARANIS_FIELD(CustomFunctionData_v216 customFn[MAX_SPECIAL_FUNCTIONS_218]) - - TARANIS_PCBX9E_FIELD(uint8_t bluetoothEnable) - TARANIS_PCBX9E_FIELD(char bluetoothName[LEN_BLUETOOTH_NAME_218]) -}) RadioData_v216; - -void convertRadioData_216_to_217(RadioData &settings) -{ - RadioData_v216 * settings_v216 = (RadioData_v216 *)&settings; - settings_v216->version = 217; -#if defined(PCBTARANIS) - settings_v216->potsConfig = 0x05; // S1 and S2 = pots with detent - settings_v216->switchConfig = 0x00007bff; // 6x3POS, 1x2POS, 1xTOGGLE -#endif -} - -void ConvertSpecialFunctions_217_to_218(CustomFunctionData_v218 * cf218, CustomFunctionData_v216 * cf216) -{ - for (int i=0; i= 212 - memcpy(newModel.header.bitmap, oldModel.header.bitmap, LEN_BITMAP_NAME); -#endif - - for (uint8_t i=0; i<2; i++) { - TimerData_v217 & timer = newModel.timers[i]; - if (oldModel.timers[i].mode >= 5) - timer.mode = 5 + convertSwitch_216_to_217(oldModel.timers[i].mode - 5 + 1) - 1; - else - timer.mode = convertSwitch_216_to_217(oldModel.timers[i].mode); - timer.start = oldModel.timers[i].start; - timer.countdownBeep = oldModel.timers[i].countdownBeep; - timer.minuteBeep = oldModel.timers[i].minuteBeep; - timer.persistent = oldModel.timers[i].persistent; - timer.value = oldModel.timers[i].value; - } - newModel.telemetryProtocol = oldModel.telemetryProtocol; - newModel.thrTrim = oldModel.thrTrim; - newModel.trimInc = oldModel.trimInc; - newModel.disableThrottleWarning = oldModel.disableThrottleWarning; - newModel.displayChecklist = oldModel.displayChecklist; - newModel.extendedLimits = oldModel.extendedLimits; - newModel.extendedTrims = oldModel.extendedTrims; - newModel.throttleReversed = oldModel.throttleReversed; - newModel.beepANACenter = oldModel.beepANACenter; - for (int i=0; i> 6; - newModel.potsWarnEnabled = oldModel.nPotsToWarn & 0x1f; - memcpy(newModel.potsWarnPosition, oldModel.potsWarnPosition, sizeof(newModel.potsWarnPosition)); -} - -void convertModelData_217_to_218(ModelData &model) -{ - static_assert(sizeof(ModelData_v217) <= sizeof(ModelData), "ModelData size has been reduced"); - - ModelData_v217 oldModel; - memcpy(&oldModel, &model, sizeof(oldModel)); - ModelData_v218 & newModel = (ModelData_v218 &) model; - memset(&newModel, 0, sizeof(ModelData_v218)); - - char name[LEN_MODEL_NAME+1]; - zchar2str(name, oldModel.header.name, LEN_MODEL_NAME); - TRACE("Model %s conversion from v217 to v218", name); - - newModel.header = oldModel.header; - for (uint8_t i=0; i= 5) - newModel.timers[i].mode = 5 + convertSwitch_217_to_218(oldModel.timers[i].mode - 5 + 1) - 1; - else - newModel.timers[i].mode = convertSwitch_217_to_218(oldModel.timers[i].mode); - if (oldModel.timers[i].mode) - TRACE("timer mode %d => %d", oldModel.timers[i].mode, newModel.timers[i].mode); - newModel.timers[i].start = oldModel.timers[i].start; - newModel.timers[i].value = oldModel.timers[i].value; - newModel.timers[i].countdownBeep = oldModel.timers[i].countdownBeep; - newModel.timers[i].minuteBeep = oldModel.timers[i].minuteBeep; - newModel.timers[i].persistent = oldModel.timers[i].persistent; - memcpy(newModel.timers[i].name, oldModel.timers[i].name, sizeof(newModel.timers[i].name)); - } - newModel.telemetryProtocol = oldModel.telemetryProtocol; - newModel.thrTrim = oldModel.thrTrim; - newModel.noGlobalFunctions = oldModel.noGlobalFunctions; - newModel.displayTrims = oldModel.displayTrims; - newModel.ignoreSensorIds = oldModel.ignoreSensorIds; - newModel.trimInc = oldModel.trimInc; - newModel.disableThrottleWarning = oldModel.disableThrottleWarning; - newModel.displayChecklist = oldModel.displayChecklist; - newModel.extendedLimits = oldModel.extendedLimits; - newModel.extendedTrims = oldModel.extendedTrims; - newModel.throttleReversed = oldModel.throttleReversed; - newModel.beepANACenter = oldModel.beepANACenter; - for (int i=0; i> (2*i)) & 0x03) == TELEMETRY_SCREEN_TYPE_VALUES) { - for (int j = 0; j < 4; j++) { - for (int k = 0; k < NUM_LINE_ITEMS; k++) { - newModel.frsky.screens[i].lines[j].sources[k] = convertSource_217_to_218(oldModel.frsky.screens[i].lines[j].sources[k]); - } - } - } - else if (((oldModel.frsky.screensType >> (2*i)) & 0x03) == TELEMETRY_SCREEN_TYPE_BARS) { - for (int j = 0; j < 4; j++) { - newModel.frsky.screens[i].bars[j].source = convertSource_217_to_218(oldModel.frsky.screens[i].bars[j].source); - } - } - } - for (int i=0; i UNIT_WATTS) - newModel.telemetrySensors[i].unit += 1; - } -#if defined(PCBX9E) - newModel.toplcdTimer = oldModel.toplcdTimer; -#endif -} diff --git a/radio/src/storage/conversions/conversions_218_219.cpp b/radio/src/storage/conversions/conversions_218_219.cpp deleted file mode 100644 index 798d293094c..00000000000 --- a/radio/src/storage/conversions/conversions_218_219.cpp +++ /dev/null @@ -1,445 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" -#include "datastructs_218.h" - -/* - * 60 (Horus / X9) / 40 (others) telemetry sensors instead of 32 - * ALL: ReceiverData array added - * ALL: registrationId added - * ALL: failsafeChannels moved from ModuleData to ModelData - * ALL: ModuleData / TrainerModuleData modified - * PCBX9 : 6 chars for expos / mixes names instead of 8 - */ - -typedef ModelData ModelData_v219; - -int convertSource_218_to_219(int source) -{ - // on X7: 2 additional switches - // on X9D / X9D+: 1 additional switch - // on xlite : 2 more storage switches - -#if defined(PCBXLITE) - if (source >= MIXSRC_SE) - source += 2; -#endif - -#if defined(PCBX7) - if (source >= MIXSRC_SI) - source += 2; -#endif - -#if defined(PCBX9D) || defined(PCBX9DP) - if (source >= MIXSRC_SI) - source += 1; -#endif - -#if defined(PCBHORUS) - if (source >= MIXSRC_SI) - source += 2; -#endif - -#if defined(PCBX10) - if (source == MIXSRC_EXT1 || source == MIXSRC_EXT2) - source += 2; -#endif - - return source; -} - -int convertSwitch_218_to_219(int swtch) -{ - // on X7: 2 additional switches - // on X9D / X9D+: 1 additional switch - // on XLite: 2 additional storage switches - // on X10: 2 additional pots => 12 multipos switches -#if defined(PCBX7) || defined(PCBHORUS) || defined(PCBX9D) || defined(PCBX9DP) || defined(PCBXLITE) - if (swtch < 0) - return -convertSwitch_218_to_219(-swtch); -#endif - -#if defined(PCBXLITE) - if (swtch >= SWSRC_SE0) - swtch += 2 * 3; -#endif - -#if defined(PCBX7) - if (swtch >= SWSRC_SI0) - swtch += 2 * 3; -#endif - -#if defined(PCBX9D) || defined(PCBX9DP) - if (swtch >= SWSRC_SI0) - swtch += 3; -#endif - -#if defined(PCBHORUS) - if (swtch >= SWSRC_SI0) - swtch += 2 * 3; -#endif - -#if defined(PCBX10) - if (swtch >= SWSRC_FIRST_MULTIPOS_SWITCH + 3 * XPOTS_MULTIPOS_COUNT) - swtch += 2 * XPOTS_MULTIPOS_COUNT; -#endif - - return swtch; -} - -void convertModelData_218_to_219(ModelData &model) -{ - static_assert(sizeof(ModelData_v218) <= sizeof(ModelData), "ModelData size has been reduced"); - - ModelData_v218 * oldModelAllocated = (ModelData_v218 *)malloc(sizeof(ModelData_v218)); - ModelData_v218 &oldModel = *oldModelAllocated; - - memcpy(&oldModel, &model, sizeof(ModelData_v218)); - ModelData_v219 & newModel = (ModelData_v219 &) model; - -#if defined(PCBHORUS) - // 4 bytes more for the ModelHeader::bitmap - memclear(&newModel.header.bitmap[10], 4); - memcpy(newModel.timers, oldModel.timers, offsetof(ModelData_v218, mixData) - offsetof(ModelData_v218, timers)); - -#if defined(BLUETOOTH) - // trainer battery compartment removed - if (newModel.trainerData.mode >= TRAINER_MODE_MASTER_BLUETOOTH) - newModel.trainerData.mode -= 1; -#endif -#endif - - memclear(newModel.mixData, sizeof(ModelData_v219) - offsetof(ModelData_v219, mixData)); - - char name[LEN_MODEL_NAME+1]; - zchar2str(name, oldModel.header.name, LEN_MODEL_NAME); - TRACE("Model %s conversion from v218 to v219", name); - - for (uint8_t i=0; i= TMRMODE_COUNT) - timer.mode = TMRMODE_COUNT + convertSwitch_218_to_219(oldModel.timers[i].mode - TMRMODE_COUNT + 1) - 1; - else if (timer.mode < 0) - timer.mode = convertSwitch_218_to_219(oldModel.timers[i].mode); - } - - for (uint8_t i=0; i 3) // 0=Thr, 1/2/3=Old 3 Pots, then Sliders - newModel.thrTraceSrc += 2; -#endif - newModel.switchWarningState = oldModel.switchWarningState; -#if !defined(COLORLCD) - newModel.switchWarningEnable = oldModel.switchWarningEnable; -#endif - - for (uint8_t i=0; i= MODULE_TYPE_ISRM_PXX2) - newModel.moduleData[i].type += 1; - if (newModel.moduleData[i].type >= MODULE_TYPE_R9M_PXX2) - newModel.moduleData[i].type += 4; - if (newModel.moduleData[i].type == MODULE_TYPE_XJT_PXX1) { - newModel.moduleData[i].subType = newModel.moduleData[i].rfProtocol; -#if defined(RADIO_X9DP2019) - if (i == INTERNAL_MODULE) { - newModel.moduleData[i].type = MODULE_TYPE_ISRM_PXX2; - newModel.moduleData[i].subType = MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16; - } -#endif - } - } - -#if defined(RADIO_T12) - newModel.moduleData[INTERNAL_MODULE].type = MODULE_TYPE_NONE; // Early t12 firmware had unused INT settings that need to be cleared -#endif - - for (uint8_t module=0; module<2; module++) { - if (oldModel.moduleData[module].failsafeMode == FAILSAFE_CUSTOM) { - memcpy(newModel.failsafeChannels, oldModel.moduleData[module].failsafeChannels, sizeof(newModel.failsafeChannels)); - } - } - - newModel.trainerData.mode = oldModel.trainerMode; - newModel.trainerData.channelsStart = oldModel.moduleData[NUM_MODULES].channelsStart; - newModel.trainerData.channelsCount = oldModel.moduleData[NUM_MODULES].channelsCount; - newModel.trainerData.frameLength = oldModel.moduleData[NUM_MODULES].ppm.frameLength; - newModel.trainerData.delay = oldModel.moduleData[NUM_MODULES].ppm.delay; - newModel.trainerData.pulsePol = oldModel.moduleData[NUM_MODULES].ppm.pulsePol; - -#if defined(PCBHORUS) || defined(PCBTARANIS) - memmove(newModel.scriptsData, oldModel.scriptsData, - sizeof(newModel.scriptsData) + - sizeof(newModel.inputNames) + - sizeof(newModel.potsWarnEnabled) + - sizeof(newModel.potsWarnPosition)); -#else - memmove(newModel.inputNames, oldModel.inputNames, - sizeof(newModel.inputNames) + - sizeof(newModel.potsWarnEnabled) + - sizeof(newModel.potsWarnPosition)); -#endif - - for (uint8_t i=0; i 0 && (isModuleTypePXX1(oldModel.moduleData[0].type) || isModuleTypePXX1(oldModel.moduleData[1].type))) - newModel.telemetrySensors[i].instance = 0xE0 + (oldModel.telemetrySensors[i].instance & 0x1F) - 1; - else - newModel.telemetrySensors[i].instance = oldModel.telemetrySensors[i].instance; - memcpy(newModel.telemetrySensors[i].label, oldModel.telemetrySensors[i].label, TELEM_LABEL_LEN); // id + instance + label - newModel.telemetrySensors[i].subId = oldModel.telemetrySensors[i].subId; - newModel.telemetrySensors[i].type = oldModel.telemetrySensors[i].type; - newModel.telemetrySensors[i].unit = oldModel.telemetrySensors[i].unit; - if (newModel.telemetrySensors[i].unit >= UNIT_MILLILITERS_PER_MINUTE) - newModel.telemetrySensors[i].unit += 11; - newModel.telemetrySensors[i].prec = oldModel.telemetrySensors[i].prec; - newModel.telemetrySensors[i].autoOffset = oldModel.telemetrySensors[i].autoOffset; - newModel.telemetrySensors[i].filter = oldModel.telemetrySensors[i].filter; - newModel.telemetrySensors[i].logs = oldModel.telemetrySensors[i].logs; - newModel.telemetrySensors[i].persistent = oldModel.telemetrySensors[i].persistent; - newModel.telemetrySensors[i].onlyPositive = oldModel.telemetrySensors[i].onlyPositive; - memcpy(((uint8_t *)&newModel.telemetrySensors[i]) + 10, ((uint8_t *)&oldModel.telemetrySensors[i]) + 9, 4); - } - -#if defined(PCBX9E) - newModel.toplcdTimer = oldModel.toplcdTimer; -#endif - -#if defined(PCBHORUS) -#if defined(FIXME) //TODO - memcpy(newModel.screenData, oldModel.screenData, - sizeof(newModel.screenData) + - sizeof(newModel.topbarData)); - - for (int screen=0; screenwidgetName)) - continue; - - ZoneOptionValue& option = zoneData->widgetData.options[0]; - option.unsignedValue = convertSource_218_to_219(option.unsignedValue); - } - } - - for (int zone=0; zonewidgetName)) - continue; - - ZoneOptionValue & option = zoneData->widgetData.options[0]; - option.unsignedValue = convertSource_218_to_219(option.unsignedValue); - } -#endif -#else - newModel.screensType = oldModel.frsky.screensType; - memmove(&newModel.screens, &oldModel.frsky.screens, sizeof(newModel.screens)); - for (int i=0; i> (2*i)) & 0x03; - if (screenType == TELEMETRY_SCREEN_TYPE_VALUES) { - for (int j = 0; j < 4; j++) { - for (int k = 0; k < NUM_LINE_ITEMS; k++) { - newModel.screens[i].lines[j].sources[k] = convertSource_218_to_219(oldModel.frsky.screens[i].lines[j].sources[k]); - } - } - } - else if (screenType == TELEMETRY_SCREEN_TYPE_BARS) { - for (int j = 0; j < 4; j++) { - newModel.screens[i].bars[j].source = convertSource_218_to_219(oldModel.frsky.screens[i].bars[j].source); - } - } - } -#endif - - free(oldModelAllocated); -} - -void convertRadioData_218_to_219(RadioData & settings) -{ - TRACE("Radio conversion from v218 to v219"); - - settings.version = 219; - settings.variant = EEPROM_VARIANT; - - RadioData_v218 * oldSettingsAllocated = (RadioData_v218 *)malloc(sizeof(RadioData_v218)); - RadioData_v218 & oldSettings = *oldSettingsAllocated; - memcpy(&oldSettings, &settings, sizeof(RadioData_v218)); - -#if defined(PCBX9D) || defined(PCBX9DP) - // no bluetooth before PCBREV 2019 - settings.auxSerialMode = oldSettings.auxSerialMode; - settings.slidersConfig = oldSettings.slidersConfig; - settings.potsConfig = oldSettings.potsConfig; - settings.backlightColor = oldSettings.backlightColor; - settings.switchUnlockStates = oldSettings.switchUnlockStates; - settings.switchConfig = oldSettings.switchConfig; -#if defined(RADIO_X9DP2019) - settings.switchConfig |= SWITCH_TOGGLE << 16; -#endif - memcpy(&settings.switchNames[0], &oldSettings.switchNames[0], 8 * LEN_SWITCH_NAME); - memclear(&settings.switchNames[8], LEN_SWITCH_NAME); - memcpy(&settings.anaNames[0], &oldSettings.anaNames[0], (NUM_STICKS+NUM_POTS+NUM_SLIDERS) * LEN_ANA_NAME); -#endif - -#if defined(PCBHORUS) - // 2 new pots from X10: - // - copy btw. 'chkSum' and 'auxSerialMode' (excl.) - memcpy(&settings.chkSum, &oldSettings.chkSum, offsetof(RadioData, switchConfig) - sizeof(uint8_t) - offsetof(RadioData, chkSum)); - // - move calibration data - memcpy(&settings.calib[NUM_STICKS + 5], &oldSettings.calib[NUM_STICKS + 3], sizeof(CalibData) * (STORAGE_NUM_SLIDERS + STORAGE_NUM_MOUSE_ANALOGS)); - memclear(&settings.calib[NUM_STICKS + 3], sizeof(CalibData) * 2); - - // move fields after custom functions - settings.auxSerialMode = oldSettings.auxSerialMode; - settings.switchConfig = oldSettings.switchConfig; - settings.potsConfig = oldSettings.potsConfig; - settings.slidersConfig = oldSettings.slidersConfig; - - // 2 new switches - memcpy(&settings.switchNames[0], &oldSettings.switchNames[0], 8 * LEN_SWITCH_NAME); - memclear(&settings.switchNames[8], 2 * LEN_SWITCH_NAME); - - // 2 new pots for X10 - // - split 'anaNames' (sticks + 3 old pots, 2 new pots, other old analogs) - memcpy(&settings.anaNames[0], &oldSettings.anaNames[0], (NUM_STICKS + 3) * LEN_ANA_NAME); - memclear(&settings.anaNames[NUM_STICKS + 3], 2 * LEN_SWITCH_NAME); - memcpy(&settings.anaNames[NUM_STICKS + 5], &oldSettings.anaNames[NUM_STICKS + 3], STORAGE_NUM_SLIDERS * LEN_ANA_NAME); - - // - copy rest of RadioData struct - memcpy(&settings.currModelFilename[0], &oldSettings.currModelFilename[0], sizeof(RadioData_v218) - offsetof(RadioData_v218, currModelFilename[0])); -#endif - -#if defined(RADIO_T12) - g_eeGeneral.switchConfig = bfSet(g_eeGeneral.switchConfig, SWITCH_2POS, 10, 2); // T12 comes with wrongly defined pot2 - g_eeGeneral.potsConfig = bfSet(g_eeGeneral.potsConfig, POT_WITHOUT_DETENT, 2, 2); // T12 comes with wrongly defined pot2 -#endif - -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX7) || defined(PCBXLITE) || defined(PCBHORUS) - for (uint8_t i=0; i -#include - -#include "definitions.h" -#include "datastructs_219.h" -#include "datastructs_220.h" - -#include "debug.h" -#include "strhelpers.h" - -#if defined(EEPROM) || defined(EEPROM_RLC) - #include -#else - #include -#endif - -// -// Summary of all changes between 219 & 220 -// -// All Radios: -// =========== -// -// PACK(struct TimerData { -// - int32_t mode:9; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw -// - uint32_t start:23; -// - int32_t value:24; -// + uint32_t start:22; -// + int32_t swtch:10; -// + int32_t value:22; -// + uint32_t mode:3; // timer mode (OFF, ON, Start, THs, TH%, THt) -// uint32_t countdownBeep:2; -// uint32_t minuteBeep:1; -// uint32_t persistent:2; -// int32_t countdownStart:2; // -2=30s -1=20s 0=10s 1=5s converted to -2=5s -1=10s 0=20s 1=30s -// - uint32_t direction:1; -// NOBACKUP(char name[LEN_TIMER_NAME]); -// }); -// -// enum TimerModes { -// - TMRMODE_NONE,// ->OFF -// - TMRMODE_ABS, // ->ON -// + TMRMODE_OFF, -// + TMRMODE_ON, -// + TMRMODE_START, // 2 -> +1 -// TMRMODE_THR, -// TMRMODE_THR_REL, -// - TMRMODE_THR_TRG, // ->START -// - TMRMODE_COUNT -// + TMRMODE_THR_START, -// + TMRMODE_COUNT, -// + TMRMODE_MAX = TMRMODE_COUNT - 1 -// }; -// -// COLORLCD: -// ========= -// -// - CHKSIZE(CustomScreenData, 610); -// - CHKSIZE(Topbar::PersistentData, 216); -// + CHKSIZE(CustomScreenData, 850); -// + CHKTYPE(TopBarPersistentData, 300); -// -// - CHKSIZE(RadioData, 881); -// - CHKSIZE(ModelData, 9736); -// + CHKSIZE(RadioData, 901); -// + CHKSIZE(ModelData, 11020); -// -// -> RadioData change probably comes from THEME_DATA (added parameter types) -// -> ModelData: +1284 (CustomScreenData x 5 = 1200; TopBar::PersistentData: +84) -// - -typedef bin_storage_220::TimerData TimerData_v220; - -static void convertToStr(char* str, size_t len) -{ - for (size_t c = 0; c < len; c++) { - str[c] = zchar2char(str[c]); - } - // Trim string - while(len > 0 && str[len-1]) { - if (str[len - 1] != ' ' && str[len - 1] != '\0') break; - str[--len] = '\0'; - } -} - -void convertModelData_219_to_220(void* data) -{ - constexpr unsigned md_size = sizeof(bin_storage_220::ModelData); - auto& model = *reinterpret_cast(data); - - auto oldModelAllocated = reinterpret_cast(malloc(md_size)); - bin_storage_220::ModelData& oldModel = *oldModelAllocated; - - memcpy(&oldModel, &model, md_size); - bin_storage_220::ModelData& newModel = (bin_storage_220::ModelData&)model; - convertToStr(model.header.name, LEN_MODEL_NAME_219); - - for (uint8_t i=0; i= bin_storage_220::TMRMODE_START) { - timer_219.mode += 1; - } - if (timer_219.mode < bin_storage_220::TMRMODE_COUNT - && timer_219.mode >=0) { - timer.mode = timer_219.mode; - } - else { - timer.mode = bin_storage_220::TMRMODE_ON; - if (timer_219.mode > 0) - timer.swtch = timer_219.mode - (bin_storage_220::TMRMODE_COUNT - 1); - else - timer.swtch = timer_219.mode; - } - - timer.start = timer_219.start; - timer.value = timer_219.value; - timer.countdownBeep = timer_219.countdownBeep; - timer.minuteBeep = timer_219.minuteBeep; - timer.persistent = timer_219.persistent; - timer.countdownStart = (timer_219.countdownStart * -1) - 1; - - } - - // MixData::name - for (uint8_t i=0; ifunc == FUNC_PLAY_TRACK || cfn->func == FUNC_BACKGND_MUSIC) { - // convertToStr(cfn->play.name, LEN_FUNCTION_NAME_219); - // } - // } - - // GVarData::name ? - for (uint8_t i=0; ioptions[0].type = bin_storage_220::ZOV_Bool; - persistentData->options[0].value.boolValue = true; - - // flight mode - persistentData->options[1].type = bin_storage_220::ZOV_Bool; - persistentData->options[1].value.boolValue = true; - - // sliders - persistentData->options[2].type = bin_storage_220::ZOV_Bool; - persistentData->options[2].value.boolValue = true; - - // trims - persistentData->options[3].type = bin_storage_220::ZOV_Bool; - persistentData->options[3].value.boolValue = true; - - // mirrored - persistentData->options[4].type = bin_storage_220::ZOV_Bool; - persistentData->options[4].value.boolValue = false; -#endif - free(oldModelAllocated); -} - -#if !defined(EEPROM_RLC) -const char* convertModelData_219_to_220(const char* path) -{ - constexpr unsigned md_size = sizeof(bin_storage_220::ModelData); - - auto md_220 = reinterpret_cast(malloc(md_size)); - memset(md_220, 0, md_size); - - uint8_t version; - const char* error = loadFileBin(path, (uint8_t *)md_220, md_size, &version); - if (!error) { - convertModelData_219_to_220((void*)md_220); - error = writeFileBin(path, (uint8_t *)md_220, md_size, 220); - } - - free(md_220); - return error; -} -#else -const char* convertModelData_219_to_220(uint8_t id) -{ - constexpr unsigned md_size = sizeof(bin_storage_220::ModelData); - - auto md_220 = reinterpret_cast(malloc(md_size)); - memset(md_220, 0, md_size); - - uint16_t read = eeLoadModelData(id, md_220, md_size); - if (read == md_size) { - convertModelData_219_to_220((void*)md_220); - eeWriteModelData(id, (uint8_t *)md_220, md_size, true); - } else { - // ERROR: size mismatch !!! - } - - free(md_220); - return nullptr; -} -#endif - -void convertRadioData_219_to_220(void* data) -{ - TRACE("Radio conversion from v219 to v220"); - - auto& settings = *reinterpret_cast(data); - settings.version = 220; - settings.variant = EEPROM_VARIANT; - -#if defined(COLORLCD) - // Clear CustomScreenData + TopBarPersistentData - // as they cannot be converted (missing option types) - strcpy(settings.themeName, "EdgeTX"); - memset(&settings.themeData, 0, sizeof(settings.themeData)); -#endif - - for (int i = 0; i < NUM_SWITCHES_219; ++i) { - char* sw_name = &(settings.switchNames[i][0]); - convertToStr(sw_name, LEN_SWITCH_NAME_219); - } - - for (int i = 0; i < NUM_STICKS_219 + NUM_POTS_219 + NUM_SLIDERS_219; ++i) { - char* sw_name = &(settings.anaNames[i][0]); - convertToStr(sw_name, LEN_ANA_NAME_219); - } - -#if defined(PCBHORUS) || defined(PCBNV14) - convertToStr(settings.bluetoothName, LEN_BLUETOOTH_NAME_219); -#endif -} - -#if !defined(EEPROM_RLC) -const char* convertRadioData_219_to_220(const char* path) -{ - constexpr unsigned rd_size = sizeof(bin_storage_220::RadioData); - - auto rd_220 = reinterpret_cast(malloc(rd_size)); - memset(rd_220, 0, rd_size); - - uint8_t version; - const char* error = loadFileBin(path, (uint8_t *)rd_220, rd_size, &version); - if (!error) { - convertRadioData_219_to_220((void*)rd_220); - error = writeFileBin(path, (uint8_t *)rd_220, rd_size, 220); - } - - free(rd_220); - return error; -} -#else -const char* convertRadioData_219_to_220() -{ - constexpr unsigned rd_size = sizeof(bin_storage_220::RadioData); - auto rd_220 = reinterpret_cast(malloc(rd_size)); - - uint16_t read = eeLoadGeneralSettingsData(rd_220, rd_size); - if (read >= rd_size - 1) { // 220 started with 1 byte less than 219 - convertRadioData_219_to_220((void*)rd_220); - eeWriteGeneralSettingData((uint8_t *)rd_220, rd_size, true); - } else { - // ERROR: size mismatch !!! - } - - free(rd_220); - return nullptr; -} -#endif - -#endif diff --git a/radio/src/storage/conversions/conversions_220_221.cpp b/radio/src/storage/conversions/conversions_220_221.cpp deleted file mode 100644 index 68f79ce5907..00000000000 --- a/radio/src/storage/conversions/conversions_220_221.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#if STORAGE_CONVERSIONS < 221 - -#include -#include -#include - -#include "definitions.h" -#include "datastructs_220.h" - -#include "sdcard.h" - -#include - -using namespace bin_storage_220; -#include - -#if defined(SDCARD_YAML) -#include -#endif - -// see "yaml/yaml_datastructs.h" -namespace yaml_conv_220 { - const YamlNode* get_radiodata_nodes(); - const YamlNode* get_modeldata_nodes(); - const YamlNode* get_partialmodel_nodes(); -}; - -#if defined(STORAGE_MODELSLIST) - -void patchFilenameToYaml(char* str); - -static const char* convertData_220_to_221( - const char* path, unsigned size, const YamlNode* root_node, - void (*patchBinary)(uint8_t*) = nullptr) -{ - auto data = reinterpret_cast(malloc(size)); - memset(data, 0, size); - - uint8_t version; - - const char* error = loadFileBin(path, data, size, &version); - if (!error) { - if (patchBinary) patchBinary(data); - - char output_fname[FF_MAX_LFN+1]; - strncpy(output_fname, path, FF_MAX_LFN); - output_fname[FF_MAX_LFN] = '\0'; - - uint16_t file_checksum = 0; - YamlFileChecksum(root_node, data, &file_checksum); - patchFilenameToYaml(output_fname); - error = writeFileYaml(output_fname, root_node, data, file_checksum); - } - - free(data); - return error; -} - -#if defined(COLORLCD) -void patchWidgetOptions(ZonePersistentData* zones, unsigned n_zones) -{ - for (unsigned i = 0; i < n_zones; i++) { - auto& zone = zones[i]; - auto name_len = strnlen(zone.widgetName, sizeof(zone.widgetName)); - std::string widgetName(zone.widgetName, name_len); - - if (widgetName.empty()) continue; - - if (widgetName == "Value") { - zone.widgetData.options[0].type = ZOV_Source; - zone.widgetData.options[1].type = ZOV_Color; - } else if (widgetName == "Gauge") { - zone.widgetData.options[0].type = ZOV_Source; - zone.widgetData.options[3].type = ZOV_Color; - } else if (widgetName == "Outputs") { - zone.widgetData.options[2].type = ZOV_Color; - zone.widgetData.options[3].type = ZOV_Color; - zone.widgetData.options[4].type = ZOV_Color; - } else if (widgetName == "Text") { - zone.widgetData.options[1].type = ZOV_Color; - } - } -} - -static void patchModelData(uint8_t* data) -{ - auto md = reinterpret_cast(data); - for (auto& screen : md->screenData) { - - if (!strnlen(screen.LayoutId, sizeof(screen.LayoutId))) - break; - - patchWidgetOptions(screen.layoutData.zones, MAX_LAYOUT_ZONES); - } - - patchWidgetOptions(md->topbarData.zones, MAX_TOPBAR_ZONES); -} -#else - #define patchModelData nullptr -#endif - -const char* convertModelData_220_to_221(const char* path) -{ - constexpr unsigned md_size = sizeof(bin_storage_220::ModelData); - return convertData_220_to_221(path, md_size, - yaml_conv_220::get_modeldata_nodes(), - patchModelData); -} - -static void patchRadioData(uint8_t* data) -{ - auto rd = reinterpret_cast(data); - rd->version = 221; - patchFilenameToYaml(rd->currModelFilename); -} - -const char* convertRadioData_220_to_221(const char* path) -{ - constexpr unsigned rd_size = sizeof(bin_storage_220::RadioData); - return convertData_220_to_221(path, rd_size, - yaml_conv_220::get_radiodata_nodes(), - patchRadioData); -} - -#else - -#include - - -const char* convertModelData_220_to_221(uint8_t id) -{ - constexpr unsigned size = sizeof(bin_storage_220::ModelData); - auto data = reinterpret_cast(malloc(size)); - memset(data, 0, size); - - const char* error = nullptr; - uint16_t read = eeLoadModelData(id, data, size); - if (read == size) { - char model_idx[MODELIDX_STRLEN + sizeof(YAML_EXT)]; - getModelNumberStr(id, model_idx); - GET_FILENAME(path, MODELS_PATH, model_idx, YAML_EXT); - error = writeFileYaml(path, yaml_conv_220::get_modeldata_nodes(), data, 0); - } else { - // ERROR: size mismatch !!! - } - - free(data); - return error; -} - -const char* convertRadioData_220_to_221() -{ - constexpr unsigned size = sizeof(bin_storage_220::RadioData); - auto data = reinterpret_cast(malloc(size)); - memset(data, 0, size); - - const char* error = nullptr; - uint16_t read = eeLoadGeneralSettingsData(data, size); - uint16_t file_checksum = 0; - - YamlFileChecksum(yaml_conv_220::get_radiodata_nodes(), data, &file_checksum); - - if (read == size) { - error = writeFileYaml(RADIO_SETTINGS_YAML_PATH, - yaml_conv_220::get_radiodata_nodes(), data, file_checksum); - } else { - // ERROR: size mismatch !!! - } - - free(data); - return error; -} - -#endif - -#endif diff --git a/radio/src/storage/conversions/datastructs_218.h b/radio/src/storage/conversions/datastructs_218.h deleted file mode 100644 index 7e84c7708f3..00000000000 --- a/radio/src/storage/conversions/datastructs_218.h +++ /dev/null @@ -1,598 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef OPENTX_DATASTRUCTS_218_H -#define OPENTX_DATASTRUCTS_218_H - -#define MAX_TIMERS_218 3 -#define MAX_GVARS_218 9 - -#if defined(PCBHORUS) - #define NUM_SWITCHES_218 8 -#elif defined(PCBXLITE) - #define NUM_SWITCHES_218 4 -#elif defined(PCBX7) - #define NUM_SWITCHES_218 6 -#elif defined(PCBX9E) - #define NUM_SWITCHES_218 18 // yes, it's a lot! -#else - #define NUM_SWITCHES_218 8 -#endif - -#if defined(PCBHORUS) - #define LEN_SWITCH_NAME_218 3 - #define LEN_ANA_NAME_218 3 - #define LEN_MODEL_FILENAME_218 16 - #define LEN_BLUETOOTH_NAME_218 10 -#else - #define LEN_SWITCH_NAME_218 3 - #define LEN_ANA_NAME_218 3 - #define LEN_BLUETOOTH_NAME_218 10 -#endif - -#define LEN_GVAR_NAME_218 3 - -#if defined(PCBHORUS) - #define LEN_MODEL_NAME_218 15 - #define LEN_TIMER_NAME_218 8 - #define LEN_FLIGHT_MODE_NAME_218 10 - #define LEN_BITMAP_NAME_218 10 - #define LEN_EXPOMIX_NAME_218 6 - #define LEN_CHANNEL_NAME_218 6 - #define LEN_INPUT_NAME_218 4 - #define LEN_CURVE_NAME_218 3 - #define LEN_FUNCTION_NAME_218 6 - #define MAX_CURVES_218 32 - #define MAX_CURVE_POINTS_218 512 -#elif LCD_W == 212 - #define LEN_MODEL_NAME_218 12 - #define LEN_TIMER_NAME_218 8 - #define LEN_FLIGHT_MODE_NAME_218 10 - #define LEN_BITMAP_NAME_218 10 - #define LEN_EXPOMIX_NAME_218 8 - #define LEN_CHANNEL_NAME_218 6 - #define LEN_INPUT_NAME_218 4 - #define LEN_CURVE_NAME_218 3 - #define LEN_FUNCTION_NAME_218 8 - #define MAX_CURVES_218 32 - #define MAX_CURVE_POINTS_218 512 -#else - #define LEN_MODEL_NAME_218 10 - #define LEN_TIMER_NAME_218 3 - #define LEN_FLIGHT_MODE_NAME_218 6 - #define LEN_EXPOMIX_NAME_218 6 - #define LEN_CHANNEL_NAME_218 4 - #define LEN_INPUT_NAME_218 3 - #define LEN_CURVE_NAME_218 3 - #define LEN_FUNCTION_NAME_218 6 - #define MAX_CURVES_218 16 - #define MAX_CURVE_POINTS_218 512 -#endif - -#if defined(PCBHORUS) - #define MAX_MODELS_218 60 - #define MAX_OUTPUT_CHANNELS_218 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES_218 9 - #define MAX_MIXERS_218 64 - #define MAX_EXPOS_218 64 - #define MAX_LOGICAL_SWITCHES_218 64 - #define MAX_SPECIAL_FUNCTIONS_218 64 // number of functions assigned to switches - #define MAX_SCRIPTS_218 9 - #define MAX_INPUTS_218 32 - #define MAX_TRAINER_CHANNELS_218 16 - #define MAX_TELEMETRY_SENSORS_218 32 - #define MAX_CUSTOM_SCREENS_218 5 -#elif defined(PCBTARANIS) - #define MAX_MODELS_218 60 - #define MAX_OUTPUT_CHANNELS_218 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES_218 9 - #define MAX_MIXERS_218 64 - #define MAX_EXPOS_218 64 - #define MAX_LOGICAL_SWITCHES_218 64 - #define MAX_SPECIAL_FUNCTIONS_218 64 // number of functions assigned to switches - #define MAX_SCRIPTS_218 7 - #define MAX_INPUTS_218 32 - #define MAX_TRAINER_CHANNELS_218 16 - #define MAX_TELEMETRY_SENSORS_218 32 -#endif - -#if defined(COLORLCD) -typedef uint32_t swarnstate218_t; -#elif defined(PCBX9E) -typedef uint64_t swconfig218_t; -typedef uint64_t swarnstate218_t; -typedef uint32_t swarnenable218_t; -#elif defined(PCBTARANIS) -typedef uint16_t swconfig218_t; -typedef uint16_t swarnstate218_t; -typedef uint8_t swarnenable218_t; -#else -typedef uint8_t swarnstate218_t; -typedef uint8_t swarnenable218_t; -#endif - -PACK(typedef struct { - uint8_t type:4; - int8_t rfProtocol:4; - uint8_t channelsStart; - int8_t channelsCount; // 0=8 channels - uint8_t failsafeMode:4; // only 3 bits used - uint8_t subType:3; - uint8_t invertedSerial:1; // telemetry serial inverted from standard - int16_t failsafeChannels[MAX_OUTPUT_CHANNELS_218]; - union { - struct { - int8_t delay:6; - uint8_t pulsePol:1; - uint8_t outputType:1; // false = open drain, true = push pull - int8_t frameLength; - } ppm; - struct { - uint8_t rfProtocolExtra:2; - uint8_t spare1:3; - uint8_t customProto:1; - uint8_t autoBindMode:1; - uint8_t lowPowerMode:1; - int8_t optionValue; - } multi; - struct { - uint8_t power:2; // 0=10 mW, 1=100 mW, 2=500 mW, 3=1W - uint8_t spare1:2; - uint8_t receiverTelemetryOff:1; // false = receiver telem enabled - uint8_t receiverHigherChannels:1; // false = pwm out 1-8, true 9-16 - uint8_t external_antenna:1; // false = internal antenna, true = external antenna - uint8_t fast:1; - uint8_t spare2; - } pxx; - struct { - uint8_t spare1:6; - uint8_t noninverted:1; - uint8_t spare2:1; - int8_t refreshRate; // definition as framelength for ppm (* 5 + 225 = time in 1/10 ms) - } sbus; - }; -}) ModuleData_v218; - -PACK(typedef struct { - int32_t mode:9; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw - uint32_t start:23; - int32_t value:24; - uint32_t countdownBeep:2; - uint32_t minuteBeep:1; - uint32_t persistent:2; - int32_t countdownStart:2; - uint32_t direction:1; - char name[LEN_TIMER_NAME_218]; -}) TimerData_v218; - - #define ROTENC_DATA - -PACK(typedef struct { - trim_t trim[NUM_TRIMS]; - char name[LEN_FLIGHT_MODE_NAME_218]; - int16_t swtch:9; // swtch of phase[0] is not used - int16_t spare:7; - uint8_t fadeIn; - uint8_t fadeOut; - ROTENC_DATA - gvar_t gvars[MAX_GVARS_218]; -}) FlightModeData_v218; - -PACK(typedef struct { - int16_t weight:11; // GV1=-1024, -GV1=1023 - uint16_t destCh:5; - uint16_t srcRaw:10; // 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 spare:1; - int32_t offset:14; - int32_t swtch:9; - uint32_t flightModes:9; - CurveRef curve; - uint8_t delayUp; - uint8_t delayDown; - uint8_t speedUp; - uint8_t speedDown; - char name[LEN_EXPOMIX_NAME_218]; -}) MixData_v218; - -PACK(typedef struct { - uint16_t mode:2; - uint16_t scale:14; - uint16_t srcRaw:10; - int16_t carryTrim:6; - uint32_t chn:5; - int32_t swtch:9; - uint32_t flightModes:9; - int32_t weight:8; - int32_t spare:1; - char name[LEN_EXPOMIX_NAME_218]; - int8_t offset; - CurveRef curve; -}) ExpoData_v218; - -PACK(typedef struct { - uint8_t type:1; - uint8_t smooth:1; - int8_t points:6; // describes number of points - 5 - char name[LEN_CURVE_NAME_218]; -}) CurveHeader_v218; - -PACK(typedef struct { - int16_t calib[4]; - TrainerMix mix[4]; -}) TrainerData_v218; - -PACK(typedef struct { // Logical Switches data - uint8_t func; - int32_t v1:10; - int32_t v3:10; - int32_t andsw:9; - uint32_t andswtype:1; - uint32_t spare:2; - int16_t v2; - uint8_t delay; - uint8_t duration; -}) LogicalSwitchData_v218; - -#if defined(PCBTARANIS) -#define CFN_SPARE_TYPE int32_t -#else -#define CFN_SPARE_TYPE int16_t -#endif - -PACK(typedef struct { - int16_t swtch:9; - uint16_t func:7; - PACK(union { - PACK(struct { - char name[LEN_FUNCTION_NAME_218]; - }) play; - - PACK(struct { - int16_t val; - uint8_t mode; - uint8_t param; - CFN_SPARE_TYPE spare2; - }) all; - - PACK(struct { - int32_t val1; - CFN_SPARE_TYPE val2; - }) clear; - }); - uint8_t active; -}) CustomFunctionData_v218; - -PACK(struct GVarData_v218 { - char name[LEN_GVAR_NAME_218]; - uint32_t min:12; - uint32_t max:12; - uint32_t popup:1; - uint32_t prec:1; - uint32_t unit:2; - uint32_t spare:4; -}); - -#if defined(COLORLCD) -PACK(struct FrSkyTelemetryData_v217 { - uint8_t varioSource:7; - uint8_t varioCenterSilent:1; - int8_t varioCenterMax; - int8_t varioCenterMin; - int8_t varioMin; - int8_t varioMax; -}); -#else -union FrSkyScreenData { - FrSkyBarData bars[4]; - FrSkyLineData lines[4]; -#if defined(PCBTARANIS) - TelemetryScriptData script; -#endif -}; -PACK(struct FrSkyTelemetryData_v217 { - uint8_t voltsSource; - uint8_t altitudeSource; - uint8_t screensType; // 2bits per screen (None/Gauges/Numbers/Script) - FrSkyScreenData screens[MAX_TELEMETRY_SCREENS]; - uint8_t varioSource:7; - uint8_t varioCenterSilent:1; - int8_t varioCenterMax; - int8_t varioCenterMin; - int8_t varioMin; - int8_t varioMax; -}); -#endif - -#if defined(PCBHORUS) - #define MODELDATA_EXTRA_218 uint8_t spare:3; uint8_t trainerMode:3; uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1]; ScriptData scriptsData[MAX_SCRIPTS_218]; char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[3 + 4]; -#elif defined(PCBTARANIS) - #define MODELDATA_EXTRA_218 uint8_t spare:3; uint8_t trainerMode:3; uint8_t potsWarnMode:2; ModuleData_v218 moduleData[NUM_MODULES+1]; ScriptData scriptsData[MAX_SCRIPTS_218]; char inputNames[MAX_INPUTS_218][LEN_INPUT_NAME_218]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[STORAGE_NUM_POTS + STORAGE_NUM_SLIDERS]; -#endif - -PACK(struct TelemetrySensor_218 { - union { - uint16_t id; // data identifier, for FrSky we can reuse existing ones. Source unit is derived from type. - uint16_t persistentValue; - }; - union { - PACK(struct { - uint8_t physID:5; - uint8_t rxIndex:3; // 1 bit for module index, 2 bits for receiver index - }) frskyInstance; - uint8_t instance; - uint8_t formula; - }; - char label[TELEM_LABEL_LEN]; // user defined label - uint8_t type:1; // 0=custom / 1=calculated - uint8_t unit:5; // user can choose what unit to display each value in - uint8_t prec:2; - uint8_t autoOffset:1; - uint8_t filter:1; - uint8_t logs:1; - uint8_t persistent:1; - uint8_t onlyPositive:1; - uint8_t subId:3; - union { - PACK(struct { - uint16_t ratio; - int16_t offset; - }) custom; - PACK(struct { - uint8_t source; - uint8_t index; - uint16_t spare; - }) cell; - PACK(struct { - int8_t sources[4]; - }) calc; - PACK(struct { - uint8_t source; - uint8_t spare[3]; - }) consumption; - PACK(struct { - uint8_t gps; - uint8_t alt; - uint16_t spare; - }) dist; - uint32_t param; - }; -}); - -#if defined(PCBHORUS) - PACK(struct CustomScreenData_v218 { - char LayoutId[10]; - LayoutPersistentData layoutData; - }); - #define VIEW_DATA \ - CustomScreenData screenData[MAX_CUSTOM_SCREENS]; \ - TopBarPersistentData topbarData; \ - uint8_t view; -#elif defined(PCBTARANIS) - #define VIEW_DATA uint8_t view; -#else - #define VIEW_DATA -#endif - -#if LEN_BITMAP_NAME > 0 -#define MODEL_HEADER_BITMAP_FIELD_218 char bitmap[10]; -#else -#define MODEL_HEADER_BITMAP_FIELD_218 -#endif - -PACK(struct ModelHeader_v218 { - char name[LEN_MODEL_NAME]; // must be first for eeLoadModelName - uint8_t modelId[NUM_MODULES]; - MODEL_HEADER_BITMAP_FIELD_218 -}); - -#if defined(COLORLCD) -#define SWITCH_WARNING_DATA_218 -#else -#define SWITCH_WARNING_DATA_218 swarnenable218_t switchWarningEnable; -#endif - -PACK(struct ModelData_v218 { - ModelHeader_v218 header; - TimerData_v218 timers[MAX_TIMERS_218]; - uint8_t telemetryProtocol:3; - uint8_t thrTrim:1; // Enable Throttle Trim - uint8_t noGlobalFunctions:1; - uint8_t displayTrims:2; - uint8_t ignoreSensorIds:1; - int8_t trimInc:3; // Trim Increments - uint8_t disableThrottleWarning:1; - uint8_t displayChecklist:1; - uint8_t extendedLimits:1; - uint8_t extendedTrims:1; - uint8_t throttleReversed:1; - BeepANACenter beepANACenter; - MixData_v218 mixData[MAX_MIXERS_218]; - LimitData limitData[MAX_OUTPUT_CHANNELS_218]; - ExpoData_v218 expoData[MAX_EXPOS_218]; - - CurveHeader_v218 curves[MAX_CURVES_218]; - int8_t points[MAX_CURVE_POINTS_218]; - - LogicalSwitchData_v218 logicalSw[MAX_LOGICAL_SWITCHES_218]; - CustomFunctionData_v218 customFn[MAX_SPECIAL_FUNCTIONS_218]; - SwashRingData swashR; - FlightModeData_v218 flightModeData[MAX_FLIGHT_MODES_218]; - - uint8_t thrTraceSrc; - - swarnstate218_t switchWarningState; - - SWITCH_WARNING_DATA_218 - - GVarData_v218 gvars[MAX_GVARS_218]; - - FrSkyTelemetryData_v217 frsky; - RssiAlarmData rssiAlarms; - - MODELDATA_EXTRA_218 - - TelemetrySensor_218 telemetrySensors[MAX_TELEMETRY_SENSORS_218]; - - TARANIS_PCBX9E_FIELD(uint8_t toplcdTimer) - - // TODO conversion for custom screens? - VIEW_DATA -}); - -#if defined(PCBHORUS) -#define EXTRA_GENERAL_FIELDS_218 \ - uint8_t auxSerialMode:4; \ - uint8_t slidersConfig:4; \ - uint32_t switchConfig; \ - uint8_t potsConfig; /* two bits per pot */ \ - char switchNames[NUM_SWITCHES_218][LEN_SWITCH_NAME_218]; \ - char anaNames[NUM_STICKS+3+4][LEN_ANA_NAME_218]; \ - char currModelFilename[LEN_MODEL_FILENAME_218+1]; \ - uint8_t spare:1; \ - uint8_t blOffBright:7; \ - char bluetoothName[LEN_BLUETOOTH_NAME_218]; -#elif defined(PCBTARANIS) - #if defined(STORAGE_BLUETOOTH) && !defined(PCBX9D) && !defined(PCBX9DP) - #define BLUETOOTH_FIELDS_218 \ - uint8_t spare; \ - char bluetoothName[LEN_BLUETOOTH_NAME_218]; - #else - #define BLUETOOTH_FIELDS_218 - #endif - #define EXTRA_GENERAL_FIELDS_218 \ - uint8_t auxSerialMode:4; \ - uint8_t slidersConfig:4; \ - uint8_t potsConfig; /* two bits per pot */\ - uint8_t backlightColor; \ - swarnstate218_t switchUnlockStates; \ - swconfig218_t switchConfig; \ - char switchNames[NUM_SWITCHES_218][LEN_SWITCH_NAME_218]; \ - char anaNames[NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS][LEN_ANA_NAME_218]; \ - BLUETOOTH_FIELDS_218 - #else - #define EXTRA_GENERAL_FIELDS_218 EXTRA_GENERAL_FIELDS_GENERAL_218 -#endif - -#if defined(COLORLCD) - #include "gui/colorlcd/theme.h" - #define THEME_NAME_LEN 8 - #define THEME_DATA \ - char themeName[THEME_NAME_LEN]; \ - OpenTxTheme::PersistentData themeData; -#else - #define THEME_DATA -#endif - -#if defined(PCBHORUS) - #define NUM_CALIBRATION_INPUTS 13 -#else - #define NUM_CALIBRATION_INPUTS (NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS) -#endif - -PACK(struct RadioData_v218 { - uint8_t version; - uint16_t variant; - CalibData calib[NUM_CALIBRATION_INPUTS]; - uint16_t chkSum; - N_HORUS_FIELD(int8_t currModel); - N_HORUS_FIELD(uint8_t contrast); - uint8_t vBatWarn; - int8_t txVoltageCalibration; - int8_t backlightMode; - TrainerData_v218 trainer; - uint8_t view; // index of view in main screen - int8_t buzzerMode:2; - uint8_t fai:1; - int8_t beepMode:2; // -2=quiet, -1=only alarms, 0=no keys, 1=all - uint8_t alarmsFlash:1; - uint8_t disableMemoryWarning:1; - uint8_t disableAlarmWarning:1; - uint8_t stickMode:2; - int8_t timezone:5; - uint8_t adjustRTC:1; - uint8_t inactivityTimer; - uint8_t telemetryBaudrate:3; - int8_t splashMode:3; - int8_t hapticMode:2; - int8_t switchesDelay; - uint8_t lightAutoOff; - uint8_t templateSetup; // RETA order for receiver channels - int8_t PPM_Multiplier; - int8_t hapticLength; - N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t reNavigation)); - N_HORUS_FIELD(N_TARANIS_FIELD(uint8_t stickReverse)); - int8_t beepLength:3; - int8_t hapticStrength:3; - uint8_t gpsFormat:1; - uint8_t unexpectedShutdown:1; - uint8_t speakerPitch; - int8_t speakerVolume; - int8_t vBatMin; - int8_t vBatMax; - - uint8_t backlightBright; - uint32_t globalTimer; - uint8_t bluetoothBaudrate:4; - uint8_t bluetoothMode:4; - uint8_t countryCode; - uint8_t imperial:1; - uint8_t noJitterFilter:1; /* 0 - Jitter filter active */ - uint8_t disableRssiPoweroffAlarm:1; - uint8_t USBMode:2; - uint8_t spareExtraArm:3; - char ttsLanguage[2]; - int8_t beepVolume:4; - int8_t wavVolume:4; - int8_t varioVolume:4; - int8_t backgroundVolume:4; - int8_t varioPitch; - int8_t varioRange; - int8_t varioRepeat; - CustomFunctionData_v218 customFn[MAX_SPECIAL_FUNCTIONS_218]; - - EXTRA_GENERAL_FIELDS_218 - - THEME_DATA -}); - -#include "chksize.h" - -#define CHKSIZE(x, y) check_size() - -static inline void check_struct_218() -{ -#if defined(PCBHORUS) - // FIXME !!! - CHKSIZE(ModelData_v218, 10664); -#elif defined(PCBX9E) - CHKSIZE(ModelData_v218, 6520); -#elif defined(PCBX9D) - CHKSIZE(RadioData_v218, 872); -#endif -} - - -#undef CHKSIZE - -#endif //OPENTX_DATASTRUCTS_218_H diff --git a/radio/src/storage/conversions/datastructs_219.h b/radio/src/storage/conversions/datastructs_219.h deleted file mode 100644 index 0a6dfdb671c..00000000000 --- a/radio/src/storage/conversions/datastructs_219.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#pragma once - -#define MAX_TIMERS_219 3 -#define MAX_GVARS_219 9 - -#if defined(PCBHORUS) - #define NUM_SWITCHES_219 10 -#elif defined(PCBXLITE) ||defined(PCBXLITES) - #define NUM_SWITCHES_219 6 -#elif defined(RADIO_TLITE) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(PCBNV14) - #define NUM_SWITCHES_219 8 -#elif defined(PCBX7) || defined(PCBX7ACCESS) - #define NUM_SWITCHES_219 8 -#elif defined(PCBX9LITES) - #define NUM_SWITCHES_219 7 -#elif defined(PCBX9LITE) - #define NUM_SWITCHES_219 5 -#elif defined(PCBX9E) - #define NUM_SWITCHES_219 18 -#elif defined(RADIO_X9DP2019) || defined(PCBX9D) || defined(PCBX9DP) - #define NUM_SWITCHES_219 9 -#else - #error "Unsupported Conversion for Radio" -#endif - -#if defined(PCBHORUS) - #define NUM_POTS_219 5 - #define NUM_SLIDERS_219 4 -#elif defined(PCBX9LITE) - #define NUM_POTS_219 1 - #define NUM_SLIDERS_219 0 -#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(PCBXLITE) || defined(PCBX7) || defined(PCBNV14) - #define NUM_POTS_219 2 - #define NUM_SLIDERS_219 0 -#elif defined(PCBX9E) - #define NUM_POTS_219 4 - #define NUM_SLIDERS_219 4 -#else - #define NUM_POTS_219 3 - #define NUM_SLIDERS_219 2 -#endif - -#define NUM_STICKS_219 4 - -#if defined(PCBHORUS) - #define LEN_SWITCH_NAME_219 3 - #define LEN_ANA_NAME_219 3 - #define LEN_MODEL_FILENAME_219 16 - #define LEN_BLUETOOTH_NAME_219 10 -#else - #define LEN_SWITCH_NAME_219 3 - #define LEN_ANA_NAME_219 3 - #define LEN_BLUETOOTH_NAME_219 10 -#endif - -#define LEN_GVAR_NAME_219 3 -#define TELEM_LABEL_LEN_219 4 - -#if defined(PCBHORUS) - #define LEN_MODEL_NAME_219 15 - #define LEN_TIMER_NAME_219 8 - #define LEN_FLIGHT_MODE_NAME_219 10 - #define LEN_BITMAP_NAME_219 14 - #define LEN_EXPOMIX_NAME_219 6 - #define LEN_CHANNEL_NAME_219 6 - #define LEN_INPUT_NAME_219 4 - #define LEN_CURVE_NAME_219 3 - #define LEN_FUNCTION_NAME_219 6 - #define MAX_CURVES_219 32 - #define MAX_CURVE_POINTS_219 512 -#elif LCD_W == 212 - #define LEN_MODEL_NAME_219 12 - #define LEN_TIMER_NAME_219 8 - #define LEN_FLIGHT_MODE_NAME_219 10 - #define LEN_BITMAP_NAME_219 10 - #define LEN_EXPOMIX_NAME_219 6 - #define LEN_CHANNEL_NAME_219 6 - #define LEN_INPUT_NAME_219 4 - #define LEN_CURVE_NAME_219 3 - #define LEN_FUNCTION_NAME_219 8 - #define MAX_CURVES_219 32 - #define MAX_CURVE_POINTS_219 512 -#else - #define LEN_MODEL_NAME_219 10 - #define LEN_TIMER_NAME_219 3 - #define LEN_FLIGHT_MODE_NAME_219 6 - #define LEN_EXPOMIX_NAME_219 6 - #define LEN_CHANNEL_NAME_219 4 - #define LEN_INPUT_NAME_219 3 - #define LEN_CURVE_NAME_219 3 - #define LEN_FUNCTION_NAME_219 6 - #define MAX_CURVES_219 32 - #define MAX_CURVE_POINTS_219 512 -#endif - -#if defined(PCBHORUS) || defined(PCBNV14) - #define MAX_MODELS_219 60 - #define MAX_OUTPUT_CHANNELS_219 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES_219 9 - #define MAX_MIXERS_219 64 - #define MAX_EXPOS_219 64 - #define MAX_LOGICAL_SWITCHES_219 64 - #define MAX_SPECIAL_FUNCTIONS_219 64 // number of functions assigned to switches - #define MAX_SCRIPTS_219 9 - #define MAX_INPUTS_219 32 - #define MAX_TRAINER_CHANNELS_219 16 - #define MAX_TELEMETRY_SENSORS_219 60 - #define MAX_CUSTOM_SCREENS_219 5 -#elif defined(PCBTARANIS) - #define MAX_MODELS_219 60 - #define MAX_OUTPUT_CHANNELS_219 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES_219 9 - #define MAX_MIXERS_219 64 - #define MAX_EXPOS_219 64 - #define MAX_LOGICAL_SWITCHES_219 64 - #define MAX_SPECIAL_FUNCTIONS_219 64 // number of functions assigned to switches - #define MAX_SCRIPTS_219 7 - #define MAX_INPUTS_219 32 - #define MAX_TRAINER_CHANNELS_219 16 - #if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) - #define MAX_TELEMETRY_SENSORS_219 60 - #else - #define MAX_TELEMETRY_SENSORS_219 40 - #endif -#endif - -PACK(typedef struct { - int32_t mode:9; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw - uint32_t start:23; - int32_t value:24; - uint32_t countdownBeep:2; - uint32_t minuteBeep:1; - uint32_t persistent:2; - int32_t countdownStart:2; - uint32_t direction:1; - char name[LEN_TIMER_NAME_219]; -}) TimerData_v219; - -// #include "chksize.h" - -// #define CHKSIZE(x, y) check_size() - -// static inline void check_struct_219() -// { -// #if defined(PCBHORUS) -// CHKSIZE(ModelData_v219, 10664); -// #elif defined(PCBX9E) -// CHKSIZE(ModelData_v219, 6520); -// #elif defined(PCBX9D) -// CHKSIZE(RadioData_v219, 872); -// #endif -// } - -// #undef CHKSIZE - diff --git a/radio/src/storage/conversions/datastructs_220.h b/radio/src/storage/conversions/datastructs_220.h deleted file mode 100644 index fed2e49d9f2..00000000000 --- a/radio/src/storage/conversions/datastructs_220.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#pragma once - -namespace bin_storage_220 { - -#include "yaml/dataconstants_220.h" -#include "yaml/datastructs_220.h" -#include "yaml/myeeprom_220.h" - -}; - -// prevent board.h from being included -#define _BOARD_H_ diff --git a/radio/src/storage/conversions/yaml/CMakeLists.txt b/radio/src/storage/conversions/yaml/CMakeLists.txt deleted file mode 100644 index e089ee135d6..00000000000 --- a/radio/src/storage/conversions/yaml/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -set(SRC ${SRC} - storage/conversions/yaml/yaml_datastructs.cpp) diff --git a/radio/src/storage/conversions/yaml/dataconstants_220.h b/radio/src/storage/conversions/yaml/dataconstants_220.h deleted file mode 100644 index 1ba5ca3c490..00000000000 --- a/radio/src/storage/conversions/yaml/dataconstants_220.h +++ /dev/null @@ -1,1097 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#if defined(_DATACONSTANTS_H_) -#error "This file MUST NOT be included side-by-side with dataconstants.h" -#endif - -#include -#include - -// from board.h (taranis, horus, nv14) -#if defined(PCBNV14) - -#define STORAGE_NUM_SWITCHES 8 -#define STORAGE_NUM_POTS 5 -#define STORAGE_NUM_SLIDERS 0 -#define STORAGE_NUM_MOUSE_ANALOGS 0 - -#define NUM_POTS 2 -#define NUM_XPOTS 0 - -#elif defined(PCBHORUS) - -#define STORAGE_NUM_SWITCHES 10 -#define STORAGE_NUM_POTS 5 -#define STORAGE_NUM_SLIDERS 4 -#define STORAGE_NUM_MOUSE_ANALOGS 2 - -#if defined(PCBX10) - #define NUM_POTS 5 - #define NUM_SLIDERS 2 -#else - #define NUM_POTS 3 - #define NUM_SLIDERS 4 -#endif -#define NUM_XPOTS NUM_POTS - -#elif defined(PCBTARANIS) - -#if defined(PCBX9LITE) - // #define NUM_POTS 1 - // #define NUM_SLIDERS 0 - #define STORAGE_NUM_POTS 1 - #define STORAGE_NUM_SLIDERS 0 -#elif defined(RADIO_T8) || defined(RADIO_TLITE) - // #define NUM_POTS 0 - // #define NUM_SLIDERS 0 - #define STORAGE_NUM_POTS 2 - #define STORAGE_NUM_SLIDERS 0 -#elif defined(PCBXLITE) || defined(PCBX7) - // #define NUM_POTS 2 - // #define NUM_SLIDERS 0 - #define STORAGE_NUM_POTS 2 - #define STORAGE_NUM_SLIDERS 0 -#elif defined(PCBX9E) - // #define NUM_POTS 4 - // #define NUM_SLIDERS 4 - #define STORAGE_NUM_POTS 4 - #define STORAGE_NUM_SLIDERS 4 -#elif defined(PCBX9DP) - // #define NUM_POTS 3 - // #define NUM_SLIDERS 2 - #define STORAGE_NUM_POTS 3 - #define STORAGE_NUM_SLIDERS 2 -#else - // #define NUM_POTS 3 // TODO X9D has only 2 pots - // #define NUM_SLIDERS 2 - #define STORAGE_NUM_POTS 3 - #define STORAGE_NUM_SLIDERS 2 -#endif - -#define NUM_XPOTS STORAGE_NUM_POTS -// #define NUM_TRIMS 4 -// #define NUM_MOUSE_ANALOGS 0 -#define STORAGE_NUM_MOUSE_ANALOGS 0 - -#if defined(PCBXLITES) || defined(PCBXLITE) -#define STORAGE_NUM_SWITCHES 6 -#elif defined(RADIO_TPRO) -#define STORAGE_NUM_SWITCHES 10 -#elif defined(RADIO_TLITE) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_T8) || defined(PCBX7ACCESS) || defined(PCBX7) -#define STORAGE_NUM_SWITCHES 8 -#elif defined(PCBX9LITES) -#define STORAGE_NUM_SWITCHES 7 -#elif defined(PCBX9LITE) -#define STORAGE_NUM_SWITCHES 5 -#elif defined(PCBX9E) -#define STORAGE_NUM_SWITCHES 18 -#elif defined(RADIO_X9DP2019) || defined(PCBX9D) || defined(PCBX9DP) -#define STORAGE_NUM_SWITCHES 9 -#endif - -#else -#error "Unsupported board" -#endif - -#if !defined(NUM_POTS) - #define NUM_POTS STORAGE_NUM_POTS -#endif - -#if !defined(NUM_SLIDERS) - #define NUM_SLIDERS STORAGE_NUM_SLIDERS -#endif - -#define STORAGE_NUM_SWITCHES_POSITIONS (STORAGE_NUM_SWITCHES * 3) - -#define NUM_STICKS 4 - -#if defined(PCBHORUS) -#define NUM_TRIMS 6 -#else -#define NUM_TRIMS 4 -#endif - -#define LUA_EXPORT(...) -#define LUA_EXPORT_MULTIPLE(...) -#define LUA_EXPORT_EXTRA(...) - -#if defined(PCBHORUS) || defined(PCBNV14) - #define MAX_MODELS 60 - #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES 9 - #define MAX_MIXERS 64 - #define MAX_EXPOS 64 - #define MAX_LOGICAL_SWITCHES 64 - #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches - #define MAX_SCRIPTS 9 - #define MAX_INPUTS 32 - #define MIN_TRAINER_CHANNELS 4 - #define DEF_TRAINER_CHANNELS 8 - #define MAX_TRAINER_CHANNELS 16 - #define MAX_TELEMETRY_SENSORS 60 - #define MAX_CUSTOM_SCREENS 5 -#elif defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) - #define MAX_MODELS 60 - #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES 9 - #define MAX_MIXERS 64 - #define MAX_EXPOS 64 - #define MAX_LOGICAL_SWITCHES 64 - #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches - #define MAX_SCRIPTS 7 - #define MAX_INPUTS 32 - #define MIN_TRAINER_CHANNELS 4 - #define DEF_TRAINER_CHANNELS 8 - #define MAX_TRAINER_CHANNELS 16 - #define MAX_TELEMETRY_SENSORS 60 -#elif defined(PCBTARANIS) - #define MAX_MODELS 60 - #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32 - #define MAX_FLIGHT_MODES 9 - #define MAX_MIXERS 64 - #define MAX_EXPOS 64 - #define MAX_LOGICAL_SWITCHES 64 - #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches - #define MAX_SCRIPTS 7 - #define MAX_INPUTS 32 - #define MIN_TRAINER_CHANNELS 4 - #define DEF_TRAINER_CHANNELS 8 - #define MAX_TRAINER_CHANNELS 16 - #define MAX_TELEMETRY_SENSORS 40 -#else - #warning "Unknown board!" -#endif - -#define MAX_TIMERS 3 -#define NUM_CAL_PPM 4 - -enum CurveType { - CURVE_TYPE_STANDARD, - CURVE_TYPE_CUSTOM, - CURVE_TYPE_LAST = CURVE_TYPE_CUSTOM -}; - -#define MIN_POINTS_PER_CURVE 3 -#define MAX_POINTS_PER_CURVE 17 - -#if defined(PCBHORUS) || defined(PCBNV14) - #define LEN_MODEL_NAME 15 - #define LEN_TIMER_NAME 8 - #define LEN_FLIGHT_MODE_NAME 10 - #define LEN_BITMAP_NAME 14 - #define LEN_EXPOMIX_NAME 6 - #define LEN_CHANNEL_NAME 6 - #define LEN_INPUT_NAME 4 - #define LEN_CURVE_NAME 3 - #define LEN_FUNCTION_NAME 6 - #define MAX_CURVES 32 - #define MAX_CURVE_POINTS 512 -#elif defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) - #define LEN_MODEL_NAME 12 - #define LEN_TIMER_NAME 8 - #define LEN_FLIGHT_MODE_NAME 10 - #define LEN_BITMAP_NAME 10 - #define LEN_EXPOMIX_NAME 6 - #define LEN_CHANNEL_NAME 6 - #define LEN_INPUT_NAME 4 - #define LEN_CURVE_NAME 3 - #define LEN_FUNCTION_NAME 8 - #define MAX_CURVES 32 - #define MAX_CURVE_POINTS 512 -#else - #define LEN_MODEL_NAME 10 - #define LEN_TIMER_NAME 3 - #define LEN_FLIGHT_MODE_NAME 6 - #define LEN_EXPOMIX_NAME 6 - #define LEN_CHANNEL_NAME 4 - #define LEN_INPUT_NAME 3 - #define LEN_CURVE_NAME 3 - #define LEN_FUNCTION_NAME 6 - #define MAX_CURVES 32 - #define MAX_CURVE_POINTS 512 -#endif - -#if defined(PCBFRSKY) || defined(PCBNV14) - #define NUM_MODULES 2 -#else - #define NUM_MODULES 1 -#endif - -#define XPOTS_MULTIPOS_COUNT 6 - -#if defined(COLORLCD) -enum MainViews { - VIEW_BLANK, - VIEW_TIMERS_ALTITUDE, - VIEW_CHANNELS, - VIEW_TELEM1, - VIEW_TELEM2, - VIEW_TELEM3, - VIEW_TELEM4, - VIEW_COUNT -}; -#elif defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) -enum MainViews { - VIEW_TIMERS, - VIEW_INPUTS, - VIEW_SWITCHES, - VIEW_COUNT -}; -#else -enum MainViews { - VIEW_OUTPUTS_VALUES, - VIEW_OUTPUTS_BARS, - VIEW_INPUTS, - VIEW_TIMER2, - VIEW_CHAN_MONITOR, - VIEW_COUNT -}; -#endif - -enum BeeperMode { - e_mode_quiet = -2, - e_mode_alarms, - e_mode_nokeys, - e_mode_all -}; - -#if defined(PCBFRSKY) || defined(PCBNV14) -enum ModuleIndex { - INTERNAL_MODULE, - EXTERNAL_MODULE, - SPORT_MODULE -}; - -enum TrainerMode { -#if defined(PCBNV14) - TRAINER_MODE_OFF, -#endif - TRAINER_MODE_MASTER_TRAINER_JACK, - TRAINER_MODE_SLAVE, -#if defined(PCBTARANIS) || defined(PCBNV14) - TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE, - TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE, -#endif -#if defined(PCBTARANIS) || defined(AUX_SERIAL) || defined(AUX2_SERIAL) - TRAINER_MODE_MASTER_BATTERY_COMPARTMENT, -#endif - TRAINER_MODE_MASTER_BLUETOOTH, - TRAINER_MODE_SLAVE_BLUETOOTH, - TRAINER_MODE_MULTI, -}; -#endif - -#define TRAINER_MODE_MIN() TRAINER_MODE_MASTER_TRAINER_JACK - -#if !defined(HARDWARE_EXTERNAL_MODULE) - #define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE -#elif defined(RADIO_T16) && !defined(INTERNAL_MODULE_MULTI) -#if defined(BLUETOOTH) - #define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE_BLUETOOTH -#else - #define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE -#endif -#elif defined(INTERNAL_MODULE_MULTI) || defined(ALLOW_TRAINER_MULTI) - #define TRAINER_MODE_MAX() TRAINER_MODE_MULTI -#elif defined(BLUETOOTH) - #define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE_BLUETOOTH -#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBNV14) - #define TRAINER_MODE_MAX() TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE -#elif defined(PCBTARANIS) - #define TRAINER_MODE_MAX() (IS_TRAINER_AUX_SERIAL() ? TRAINER_MODE_MASTER_BATTERY_COMPARTMENT : TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE) -#else - #define TRAINER_MODE_MAX() TRAINER_MODE_MASTER_BATTERY_COMPARTMENT -#endif - -#if defined(HARDWARE_INTERNAL_MODULE) - #define IS_INTERNAL_MODULE_ENABLED() (g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) -#else - #define IS_INTERNAL_MODULE_ENABLED() (false) -#endif - -#define IS_EXTERNAL_MODULE_ENABLED() (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_NONE) - -#if defined(HARDWARE_INTERNAL_MODULE) - #define IS_MODULE_ENABLED(moduleIdx) (moduleIdx==INTERNAL_MODULE ? IS_INTERNAL_MODULE_ENABLED() : moduleIdx==EXTERNAL_MODULE ? IS_EXTERNAL_MODULE_ENABLED() : false) -#else - #define IS_MODULE_ENABLED(moduleIdx) (moduleIdx==EXTERNAL_MODULE ? IS_EXTERNAL_MODULE_ENABLED() : false) -#endif - -enum UartModes { -#if defined(CLI) || defined(DEBUG) - UART_MODE_DEBUG, -#else - UART_MODE_NONE, -#endif - UART_MODE_TELEMETRY_MIRROR, - UART_MODE_TELEMETRY, - UART_MODE_SBUS_TRAINER, - UART_MODE_LUA, - UART_MODE_COUNT, - UART_MODE_MAX = UART_MODE_COUNT-1 -}; - -#if defined(CLI) || defined(DEBUG) -#define UART_MODE_NONE UART_MODE_DEBUG -#endif - -#define LEN_SWITCH_NAME 3 -#define LEN_ANA_NAME 3 -#define LEN_MODEL_FILENAME 16 -#define LEN_BLUETOOTH_NAME 10 - -enum TelemetryProtocol -{ - PROTOCOL_TELEMETRY_FIRST, - PROTOCOL_TELEMETRY_FRSKY_SPORT = PROTOCOL_TELEMETRY_FIRST, - PROTOCOL_TELEMETRY_FRSKY_D, - PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY, - PROTOCOL_TELEMETRY_CROSSFIRE, - PROTOCOL_TELEMETRY_SPEKTRUM, - PROTOCOL_TELEMETRY_FLYSKY_IBUS, - PROTOCOL_TELEMETRY_HITEC, - PROTOCOL_TELEMETRY_HOTT, - PROTOCOL_TELEMETRY_MLINK, - PROTOCOL_TELEMETRY_MULTIMODULE, - PROTOCOL_TELEMETRY_AFHDS3, - PROTOCOL_TELEMETRY_GHOST, - PROTOCOL_TELEMETRY_FLYSKY_NV14, - PROTOCOL_TELEMETRY_LAST=PROTOCOL_TELEMETRY_FLYSKY_NV14, - PROTOCOL_TELEMETRY_LUA -}; - -#define TELEM_LABEL_LEN 4 -enum TelemetryUnit { - UNIT_RAW, - UNIT_VOLTS, - UNIT_AMPS, - UNIT_MILLIAMPS, - UNIT_KTS, - UNIT_METERS_PER_SECOND, - UNIT_FEET_PER_SECOND, - UNIT_KMH, - UNIT_SPEED = UNIT_KMH, - UNIT_MPH, - UNIT_METERS, - UNIT_DIST = UNIT_METERS, - UNIT_FEET, - UNIT_CELSIUS, - UNIT_TEMPERATURE = UNIT_CELSIUS, - UNIT_FAHRENHEIT, - UNIT_PERCENT, - UNIT_MAH, - UNIT_WATTS, - UNIT_MILLIWATTS, - UNIT_DB, - UNIT_RPMS, - UNIT_G, - UNIT_DEGREE, - UNIT_RADIANS, - UNIT_MILLILITERS, - UNIT_FLOZ, - UNIT_MILLILITERS_PER_MINUTE, - UNIT_HERTZ, - UNIT_MS, - UNIT_US, - UNIT_KM, - UNIT_DBM, - UNIT_MAX = UNIT_DBM, - UNIT_SPARE6, - UNIT_SPARE7, - UNIT_SPARE8, - UNIT_SPARE9, - UNIT_SPARE10, - UNIT_HOURS, - UNIT_MINUTES, - UNIT_SECONDS, - // FrSky format used for these fields, could be another format in the future - UNIT_FIRST_VIRTUAL, - UNIT_CELLS = UNIT_FIRST_VIRTUAL, - UNIT_DATETIME, - UNIT_GPS, - UNIT_BITFIELD, - UNIT_TEXT, - // Internal units (not stored in sensor unit) - UNIT_GPS_LONGITUDE, - UNIT_GPS_LATITUDE, - UNIT_DATETIME_YEAR, - UNIT_DATETIME_DAY_MONTH, - UNIT_DATETIME_HOUR_MIN, - UNIT_DATETIME_SEC -}; - -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) - #define NUM_LINE_ITEMS 3 -#else - #define NUM_LINE_ITEMS 2 -#endif - -#if defined(PCBTARANIS) - #define MAX_TELEM_SCRIPT_INPUTS 8 -#endif - -enum TelemetryScreenType { - TELEMETRY_SCREEN_TYPE_NONE, - TELEMETRY_SCREEN_TYPE_VALUES, - TELEMETRY_SCREEN_TYPE_BARS, - TELEMETRY_SCREEN_TYPE_SCRIPT, -#if defined(LUA) - TELEMETRY_SCREEN_TYPE_MAX = TELEMETRY_SCREEN_TYPE_SCRIPT -#else - TELEMETRY_SCREEN_TYPE_MAX = TELEMETRY_SCREEN_TYPE_BARS -#endif -}; -#define MAX_TELEMETRY_SCREENS 4 -#define TELEMETRY_SCREEN_TYPE(screenIndex) TelemetryScreenType((g_model.screensType >> (2*(screenIndex))) & 0x03) -#define IS_BARS_SCREEN(screenIndex) (TELEMETRY_SCREEN_TYPE(screenIndex) == TELEMETRY_SCREEN_TYPE_BARS) - -constexpr int16_t FAILSAFE_CHANNEL_HOLD = 2000; -constexpr int16_t FAILSAFE_CHANNEL_NOPULSE = 2001; - -#define LEN_SCRIPT_FILENAME 6 -#define LEN_SCRIPT_NAME 6 -#define MAX_SCRIPT_INPUTS 6 -#define MAX_SCRIPT_OUTPUTS 6 - -enum PotsWarnMode { - POTS_WARN_OFF, - POTS_WARN_MANUAL, - POTS_WARN_AUTO -}; - -#define LEN_GVAR_NAME 3 -#define GVAR_MAX 1024 -#define GVAR_MIN -GVAR_MAX - -#define RESERVE_RANGE_FOR_GVARS 10 -// even we do not spend space in EEPROM for 10 GVARS, we reserve the space inside the range of values, like offset, weight, etc. - -#define MAX_GVARS 9 - -enum SwitchSources { - SWSRC_NONE = 0, - - SWSRC_FIRST_SWITCH SKIP, - -#if defined(STORAGE_SWITCH_A) - SWSRC_SA0 = SWSRC_FIRST_SWITCH, - SWSRC_SA1, - SWSRC_SA2, -#endif - -#if defined(STORAGE_SWITCH_B) - SWSRC_SB0, - SWSRC_SB1, - SWSRC_SB2, -#endif - -#if defined(STORAGE_SWITCH_C) - SWSRC_SC0, - SWSRC_SC1, - SWSRC_SC2, -#endif - -#if defined(STORAGE_SWITCH_D) - SWSRC_SD0, - SWSRC_SD1, - SWSRC_SD2, -#endif - -#if defined(STORAGE_SWITCH_E) - SWSRC_SE0, - SWSRC_SE1, - SWSRC_SE2, -#endif - -#if defined(STORAGE_SWITCH_F) - SWSRC_SF0, - SWSRC_SF1, - SWSRC_SF2, -#endif - -#if defined(STORAGE_SWITCH_G) - SWSRC_SG0, - SWSRC_SG1, - SWSRC_SG2, -#endif - -#if defined(STORAGE_SWITCH_H) - SWSRC_SH0, - SWSRC_SH1, - SWSRC_SH2, -#endif - -#if defined(STORAGE_SWITCH_I) - SWSRC_SI0, - SWSRC_SI1, - SWSRC_SI2, -#endif - -#if defined(STORAGE_SWITCH_J) - SWSRC_SJ0, - SWSRC_SJ1, - SWSRC_SJ2, -#endif - -#if defined(STORAGE_SWITCH_K) - SWSRC_SK0, - SWSRC_SK1, - SWSRC_SK2, -#endif - -#if defined(STORAGE_SWITCH_L) - SWSRC_SL0, - SWSRC_SL1, - SWSRC_SL2, -#endif - -#if defined(STORAGE_SWITCH_M) - SWSRC_SM0, - SWSRC_SM1, - SWSRC_SM2, -#endif - -#if defined(STORAGE_SWITCH_N) - SWSRC_SN0, - SWSRC_SN1, - SWSRC_SN2, -#endif - -#if defined(STORAGE_SWITCH_O) - SWSRC_SO0, - SWSRC_SO1, - SWSRC_SO2, -#endif - -#if defined(STORAGE_SWITCH_P) - SWSRC_SP0, - SWSRC_SP1, - SWSRC_SP2, -#endif - -#if defined(STORAGE_SWITCH_Q) - SWSRC_SQ0, - SWSRC_SQ1, - SWSRC_SQ2, -#endif - -#if defined(STORAGE_SWITCH_R) - SWSRC_SR0, - SWSRC_SR1, - SWSRC_SR2, -#endif - - SWSRC_LAST_SWITCH SKIP = SWSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES_POSITIONS - 1, - -#if NUM_XPOTS > 0 - SWSRC_FIRST_MULTIPOS_SWITCH SKIP, - SWSRC_LAST_MULTIPOS_SWITCH SKIP = SWSRC_FIRST_MULTIPOS_SWITCH + (NUM_XPOTS * XPOTS_MULTIPOS_COUNT) - 1, -#endif - - SWSRC_FIRST_TRIM SKIP, - SWSRC_TrimRudLeft = SWSRC_FIRST_TRIM, - SWSRC_TrimRudRight, - SWSRC_TrimEleDown, - SWSRC_TrimEleUp, - -#if NUM_TRIMS > 2 - SWSRC_TrimThrDown, - SWSRC_TrimThrUp, - SWSRC_TrimAilLeft, - SWSRC_TrimAilRight, -#endif - -#if NUM_TRIMS > 4 - SWSRC_TrimT5Down, - SWSRC_TrimT5Up, - SWSRC_TrimT6Down, - SWSRC_TrimT6Up, -#endif - - SWSRC_FIRST_LOGICAL_SWITCH SKIP, - SWSRC_SW1 = SWSRC_FIRST_LOGICAL_SWITCH, - SWSRC_SW2, - // ... - SWSRC_LAST_LOGICAL_SWITCH SKIP = SWSRC_FIRST_LOGICAL_SWITCH+MAX_LOGICAL_SWITCHES-1, - - SWSRC_ON, - SWSRC_ONE, - - SWSRC_FIRST_FLIGHT_MODE SKIP, - SWSRC_LAST_FLIGHT_MODE SKIP = SWSRC_FIRST_FLIGHT_MODE+MAX_FLIGHT_MODES-1, - - SWSRC_TELEMETRY_STREAMING, - - SWSRC_FIRST_SENSOR SKIP, - SWSRC_LAST_SENSOR SKIP = SWSRC_FIRST_SENSOR+MAX_TELEMETRY_SENSORS-1, - - SWSRC_RADIO_ACTIVITY, - -#if defined(DEBUG_LATENCY) - SWSRC_LATENCY_TOGGLE, -#endif - - SWSRC_COUNT SKIP, - - SWSRC_OFF = -SWSRC_ON, - - SWSRC_LAST SKIP = SWSRC_COUNT-1, - SWSRC_FIRST SKIP = -SWSRC_LAST, - - SWSRC_LAST_IN_LOGICAL_SWITCHES SKIP = SWSRC_COUNT-1, - SWSRC_LAST_IN_MIXES SKIP = SWSRC_COUNT-1, - - SWSRC_FIRST_IN_LOGICAL_SWITCHES SKIP = -SWSRC_LAST_IN_LOGICAL_SWITCHES, - SWSRC_FIRST_IN_MIXES SKIP = -SWSRC_LAST_IN_MIXES, - - SWSRC_INVERT SKIP = SWSRC_COUNT+1, -}; - -#if NUM_SWITCHES >= 8 - #define SWSRC_TRAINER SWSRC_SH2 -#else - #define SWSRC_TRAINER SWSRC_LAST_SWITCH, -#endif - -#define SWSRC_LAST_TRIM (SWSRC_FIRST_TRIM + 2 * NUM_TRIMS - 1) - -enum MixSources { - MIXSRC_NONE, - - MIXSRC_FIRST_INPUT SKIP, LUA_EXPORT_MULTIPLE("input", "Input [I%d]", MAX_INPUTS) - MIXSRC_LAST_INPUT SKIP = MIXSRC_FIRST_INPUT+MAX_INPUTS-1, - -#if defined(LUA_INPUTS) - MIXSRC_FIRST_LUA SKIP, LUA_EXPORT_MULTIPLE("lua", "Lua mix output %d", MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS) - MIXSRC_LAST_LUA SKIP = MIXSRC_FIRST_LUA+(MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS)-1, -#endif - - MIXSRC_FIRST_STICK SKIP, - MIXSRC_Rud = MIXSRC_FIRST_STICK, LUA_EXPORT("rud", "Rudder") - MIXSRC_Ele, LUA_EXPORT("ele", "Elevator") - MIXSRC_Thr, LUA_EXPORT("thr", "Throttle") - MIXSRC_Ail, LUA_EXPORT("ail", "Aileron") - - MIXSRC_LAST_STICK SKIP = MIXSRC_Ail, - MIXSRC_FIRST_POT SKIP, -#if defined(PCBHORUS) - MIXSRC_S1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer S1") - MIXSRC_6POS, LUA_EXPORT("6pos", "Multipos Switch") - MIXSRC_S2, LUA_EXPORT("s2", "Potentiometer S2") -#if defined(PCBX10) - MIXSRC_EXT1, LUA_EXPORT("ext1", "Ext 1") - MIXSRC_EXT2, LUA_EXPORT("ext2", "Ext 2") -#if defined(FLYSKY_HALL_STICKS) && defined(FLYSKY_HALL_STICKS_EXT3_EXT4) - MIXSRC_EXT3, LUA_EXPORT("ext3", "Ext 3") - MIXSRC_EXT4, LUA_EXPORT("ext4", "Ext 4") -#endif -#endif - MIXSRC_FIRST_SLIDER SKIP, -#if defined(PCBX12S) - MIXSRC_S3 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("s3", "Slider S3") - MIXSRC_S4, LUA_EXPORT("s4", "Slider S4") - MIXSRC_LS, LUA_EXPORT("ls", "Left rear slider") - MIXSRC_RS, LUA_EXPORT("rs", "Right rear slider") -#else - MIXSRC_LS = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider") - MIXSRC_RS, LUA_EXPORT("rs", "Right slider") -#endif - MIXSRC_LAST_POT SKIP = MIXSRC_RS, -#elif defined(PCBX9E) - MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") - MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") - MIXSRC_POT3, LUA_EXPORT("s3", "Potentiometer 3") - MIXSRC_POT4, LUA_EXPORT("s4", "Potentiometer 4 (X9E only)") - MIXSRC_FIRST_SLIDER SKIP, - MIXSRC_SLIDER1 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider") - MIXSRC_SLIDER2, LUA_EXPORT("rs", "Right slider") - MIXSRC_SLIDER3, LUA_EXPORT("lcs", "Left center slider (X9E only)") - MIXSRC_SLIDER4, LUA_EXPORT("rcs", "Right center slider (X9E only)") - MIXSRC_LAST_POT SKIP = MIXSRC_SLIDER4, -#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBNV14) - MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") - MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") - MIXSRC_FIRST_SLIDER SKIP = MIXSRC_POT2, - MIXSRC_LAST_POT SKIP = MIXSRC_POT2, -#elif defined(PCBX9LITE) - MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") - MIXSRC_FIRST_SLIDER SKIP = MIXSRC_POT1, - MIXSRC_LAST_POT SKIP = MIXSRC_POT1, -#elif defined(PCBTARANIS) - MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") - MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") - MIXSRC_POT3, LUA_EXPORT("s3", "Potentiometer 3") - MIXSRC_FIRST_SLIDER SKIP, - MIXSRC_SLIDER1 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider") - MIXSRC_SLIDER2, LUA_EXPORT("rs", "Right slider") - MIXSRC_LAST_POT SKIP = MIXSRC_SLIDER2, -#else - MIXSRC_P1 = MIXSRC_FIRST_POT, - MIXSRC_P2, - MIXSRC_P3, - MIXSRC_LAST_POT SKIP = MIXSRC_P3, -#endif - -#if defined(PCBHORUS) - MIXSRC_MOUSE1, LUA_EXPORT("jsx", "Joystick X") - MIXSRC_MOUSE2, LUA_EXPORT("jsy", "Joystick Y") -#endif - -#if defined(PCBXLITES) - MIXSRC_GYRO1, LUA_EXPORT("gyrx", "Gyro X") - MIXSRC_GYRO2, LUA_EXPORT("gyry", "Gyro Y") -#endif - - MIXSRC_MAX, LUA_EXPORT("max", "MAX") - - MIXSRC_FIRST_HELI SKIP, - MIXSRC_CYC1 = MIXSRC_FIRST_HELI, LUA_EXPORT("cyc1", "Cyclic 1") - MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2") - MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3") - MIXSRC_LAST_HELI SKIP = MIXSRC_CYC3, - - MIXSRC_FIRST_TRIM SKIP, - MIXSRC_TrimRud = MIXSRC_FIRST_TRIM, LUA_EXPORT("trim-rud", "Rudder trim") - MIXSRC_TrimEle, LUA_EXPORT("trim-ele", "Elevator trim") - MIXSRC_TrimThr, LUA_EXPORT("trim-thr", "Throttle trim") - MIXSRC_TrimAil, LUA_EXPORT("trim-ail", "Aileron trim") -#if defined(PCBHORUS) - MIXSRC_TrimT5, LUA_EXPORT("trim-t5", "Aux trim T5") - MIXSRC_TrimT6, LUA_EXPORT("trim-t6", "Aux trim T6") - MIXSRC_LAST_TRIM SKIP = MIXSRC_TrimT6, -#else - MIXSRC_LAST_TRIM SKIP = MIXSRC_TrimAil, -#endif - - MIXSRC_FIRST_SWITCH SKIP, - -#if defined(HARDWARE_SWITCH_A) - MIXSRC_SA = MIXSRC_FIRST_SWITCH, LUA_EXPORT("sa", "Switch A") - MIXSRC_SB, LUA_EXPORT("sb", "Switch B") - MIXSRC_SC, LUA_EXPORT("sc", "Switch C") -#endif -#if defined(HARDWARE_SWITCH_D) - MIXSRC_SD, LUA_EXPORT("sd", "Switch D") -#elif defined(STORAGE_SWITCH_D) - MIXSRC_SD, -#endif -#if defined(HARDWARE_SWITCH_E) - MIXSRC_SE, LUA_EXPORT("se", "Switch E") -#elif defined(STORAGE_SWITCH_E) - MIXSRC_SE, -#endif -#if defined(HARDWARE_SWITCH_F) - MIXSRC_SF, LUA_EXPORT("sf", "Switch F") -#elif defined(STORAGE_SWITCH_F) - MIXSRC_SF, -#endif -#if defined(HARDWARE_SWITCH_G) - MIXSRC_SG, LUA_EXPORT("sg", "Switch G") -#elif defined(STORAGE_SWITCH_G) - MIXSRC_SG, -#endif -#if defined(HARDWARE_SWITCH_H) - MIXSRC_SH, LUA_EXPORT("sh", "Switch H") -#elif defined(STORAGE_SWITCH_H) - MIXSRC_SH, -#endif -#if defined(HARDWARE_SWITCH_I) - MIXSRC_SI, LUA_EXPORT("si", "Switch I") -#elif defined(STORAGE_SWITCH_I) - MIXSRC_SI, -#endif -#if defined(HARDWARE_SWITCH_J) - MIXSRC_SJ, LUA_EXPORT("sj", "Switch J") -#elif defined(STORAGE_SWITCH_J) - MIXSRC_SJ, -#endif -#if defined(HARDWARE_SWITCH_K) - MIXSRC_SK, LUA_EXPORT("sk", "Switch K") - MIXSRC_SL, LUA_EXPORT("sl", "Switch L") - MIXSRC_SM, LUA_EXPORT("sm", "Switch M") - MIXSRC_SN, LUA_EXPORT("sn", "Switch N") - MIXSRC_SO, LUA_EXPORT("so", "Switch O") - MIXSRC_SP, LUA_EXPORT("sp", "Switch P") - MIXSRC_SQ, LUA_EXPORT("sq", "Switch Q") - MIXSRC_SR, LUA_EXPORT("sr", "Switch R") -#endif - MIXSRC_FIRST_LOGICAL_SWITCH SKIP, - MIXSRC_SW1 = MIXSRC_FIRST_LOGICAL_SWITCH, LUA_EXPORT_MULTIPLE("ls", "Logical switch L%d", MAX_LOGICAL_SWITCHES) - MIXSRC_LAST_LOGICAL_SWITCH SKIP = MIXSRC_FIRST_LOGICAL_SWITCH+MAX_LOGICAL_SWITCHES-1, - - MIXSRC_FIRST_TRAINER SKIP, LUA_EXPORT_MULTIPLE("trn", "Trainer input %d", MAX_TRAINER_CHANNELS) - MIXSRC_LAST_TRAINER SKIP = MIXSRC_FIRST_TRAINER+MAX_TRAINER_CHANNELS-1, - - MIXSRC_FIRST_CH SKIP, - MIXSRC_CH1 = MIXSRC_FIRST_CH, LUA_EXPORT_MULTIPLE("ch", "Channel CH%d", MAX_OUTPUT_CHANNELS) - MIXSRC_CH2, - MIXSRC_CH3, - MIXSRC_CH4, - MIXSRC_CH5, - MIXSRC_CH6, - MIXSRC_CH7, - MIXSRC_CH8, - MIXSRC_CH9, - MIXSRC_CH10, - MIXSRC_CH11, - MIXSRC_CH12, - MIXSRC_CH13, - MIXSRC_CH14, - MIXSRC_CH15, - MIXSRC_CH16, - MIXSRC_LAST_CH SKIP = MIXSRC_CH1+MAX_OUTPUT_CHANNELS-1, - - MIXSRC_FIRST_GVAR SKIP, - MIXSRC_GVAR1 = MIXSRC_FIRST_GVAR, LUA_EXPORT_MULTIPLE("gvar", "Global variable %d", MAX_GVARS) - MIXSRC_LAST_GVAR SKIP = MIXSRC_FIRST_GVAR+MAX_GVARS-1, - - MIXSRC_TX_VOLTAGE, LUA_EXPORT("tx-voltage", "Transmitter battery voltage [volts]") - MIXSRC_TX_TIME, LUA_EXPORT("clock", "RTC clock [minutes from midnight]") - MIXSRC_TX_GPS, - MIXSRC_FIRST_RESERVE SKIP, - MIXSRC_RESERVE3 SKIP, - MIXSRC_RESERVE4 SKIP, - MIXSRC_LAST_RESERVE SKIP, - MIXSRC_FIRST_TIMER SKIP, - MIXSRC_TIMER1 = MIXSRC_FIRST_TIMER, LUA_EXPORT("timer1", "Timer 1 value [seconds]") - MIXSRC_TIMER2, LUA_EXPORT("timer2", "Timer 2 value [seconds]") - MIXSRC_TIMER3, LUA_EXPORT("timer3", "Timer 3 value [seconds]") - MIXSRC_LAST_TIMER SKIP = MIXSRC_TIMER3, - - MIXSRC_FIRST_TELEM SKIP, LUA_EXPORT_MULTIPLE("telem", "Telemetry sensor %d", MAX_TELEMETRY_SENSORS) - MIXSRC_LAST_TELEM SKIP = MIXSRC_FIRST_TELEM+3*MAX_TELEMETRY_SENSORS-1 -}; - -#if defined(__cplusplus) -static_assert(MIXSRC_FIRST_LOGICAL_SWITCH == MIXSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES, "Wrong switches definition in MIXSRC list"); -#endif - -#define MIXSRC_FIRST (MIXSRC_NONE + 1) -#define MIXSRC_LAST MIXSRC_LAST_CH -#define MIXSRC_LAST_SWITCH (MIXSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES - 1) -#define INPUTSRC_FIRST MIXSRC_Rud -#define INPUTSRC_LAST MIXSRC_LAST_TELEM - -enum BacklightMode { - e_backlight_mode_off = 0, - e_backlight_mode_keys = 1, - e_backlight_mode_sticks = 2, - e_backlight_mode_all = e_backlight_mode_keys+e_backlight_mode_sticks, - e_backlight_mode_on -}; - -enum Functions { - // first the functions which need a checkbox - FUNC_OVERRIDE_CHANNEL, - FUNC_TRAINER, - FUNC_INSTANT_TRIM, - FUNC_RESET, - FUNC_SET_TIMER, - FUNC_ADJUST_GVAR, - FUNC_VOLUME, - FUNC_SET_FAILSAFE, - FUNC_RANGECHECK, - FUNC_BIND, - // then the other functions - FUNC_FIRST_WITHOUT_ENABLE, - FUNC_PLAY_SOUND = FUNC_FIRST_WITHOUT_ENABLE, - FUNC_PLAY_TRACK, - FUNC_PLAY_VALUE, - FUNC_RESERVE4, - FUNC_PLAY_SCRIPT, - FUNC_RESERVE5, - FUNC_BACKGND_MUSIC, - FUNC_BACKGND_MUSIC_PAUSE, - FUNC_VARIO, - FUNC_HAPTIC, - FUNC_LOGS, - FUNC_BACKLIGHT, - FUNC_SCREENSHOT, - FUNC_RACING_MODE, -#if defined(COLORLCD) - FUNC_DISABLE_TOUCH, -#endif -#if defined(DEBUG) - FUNC_TEST, // should remain the last before MAX as not added in Companion -#endif - FUNC_MAX -}; - -enum TimerModes { - TMRMODE_OFF, - TMRMODE_ON, - TMRMODE_START, - TMRMODE_THR, - TMRMODE_THR_REL, - TMRMODE_THR_START, - TMRMODE_COUNT, - TMRMODE_MAX = TMRMODE_COUNT - 1 -}; - -enum CountDownModes { - COUNTDOWN_SILENT, - COUNTDOWN_BEEPS, - COUNTDOWN_VOICE, -#if defined(HAPTIC) - COUNTDOWN_HAPTIC, -#endif - COUNTDOWN_COUNT -}; - -enum ResetFunctionParam { - FUNC_RESET_TIMER1, - FUNC_RESET_TIMER2, - FUNC_RESET_TIMER3, - FUNC_RESET_FLIGHT, - FUNC_RESET_TELEMETRY, - FUNC_RESET_PARAM_FIRST_TELEM, - FUNC_RESET_PARAM_LAST_TELEM = FUNC_RESET_PARAM_FIRST_TELEM + MAX_TELEMETRY_SENSORS, - FUNC_RESET_PARAMS_COUNT, - FUNC_RESET_PARAM_LAST = FUNC_RESET_PARAMS_COUNT-1, -}; - -enum AdjustGvarFunctionParam { - FUNC_ADJUST_GVAR_CONSTANT, - FUNC_ADJUST_GVAR_SOURCE, - FUNC_ADJUST_GVAR_GVAR, - FUNC_ADJUST_GVAR_INCDEC, -}; - -enum BluetoothModes { - BLUETOOTH_OFF, - BLUETOOTH_TELEMETRY, - BLUETOOTH_TRAINER, -#if defined(PCBX9E) - BLUETOOTH_MAX=BLUETOOTH_TELEMETRY -#else - BLUETOOTH_MAX=BLUETOOTH_TRAINER -#endif -}; - -enum UartSampleModes { - UART_SAMPLE_MODE_NORMAL = 0, - UART_SAMPLE_MODE_ONEBIT, - - UART_SAMPLE_MODE_MAX = UART_SAMPLE_MODE_ONEBIT -}; - -// PXX2 constants -#define PXX2_LEN_REGISTRATION_ID 8 -#define PXX2_LEN_RX_NAME 8 -#define PXX2_MAX_RECEIVERS_PER_MODULE 3 - -// from module_constants.h -enum ModuleType { - MODULE_TYPE_NONE = 0, - MODULE_TYPE_PPM, - MODULE_TYPE_XJT_PXX1, - MODULE_TYPE_ISRM_PXX2, - MODULE_TYPE_DSM2, - MODULE_TYPE_CROSSFIRE, - MODULE_TYPE_MULTIMODULE, - MODULE_TYPE_R9M_PXX1, // R9M - MODULE_TYPE_R9M_PXX2, // R9M ACCESS - MODULE_TYPE_R9M_LITE_PXX1, //R9MLite - MODULE_TYPE_R9M_LITE_PXX2, //R9MLP - MODULE_TYPE_GHOST, // Replaces MODULE_TYPE_R9M_LITE_PRO_PXX1 which doesn't exist - MODULE_TYPE_R9M_LITE_PRO_PXX2, - MODULE_TYPE_SBUS, - MODULE_TYPE_XJT_LITE_PXX2, - MODULE_TYPE_FLYSKY, //no more protocols possible because of 4 bits value - MODULE_TYPE_COUNT, - MODULE_TYPE_MAX = MODULE_TYPE_COUNT - 1 -}; - -enum ModuleSubtypePXX1 { - MODULE_SUBTYPE_PXX1_OFF = -1, - MODULE_SUBTYPE_PXX1_ACCST_D16, - MODULE_SUBTYPE_PXX1_ACCST_D8, - MODULE_SUBTYPE_PXX1_ACCST_LR12, - MODULE_SUBTYPE_PXX1_LAST = MODULE_SUBTYPE_PXX1_ACCST_LR12 -}; - -enum ModuleSubtypeISRM_PXX2 { - MODULE_SUBTYPE_ISRM_PXX2_ACCESS, - MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, - MODULE_SUBTYPE_ISRM_PXX2_ACCST_LR12, - MODULE_SUBTYPE_ISRM_PXX2_ACCST_D8, - MODULE_SUBTYPE_ISRM_PXX2_LAST = MODULE_SUBTYPE_ISRM_PXX2_ACCST_D8 -}; - -enum ModuleSubtypeR9M { - MODULE_SUBTYPE_R9M_FCC, - MODULE_SUBTYPE_R9M_EU, - MODULE_SUBTYPE_R9M_EUPLUS, - MODULE_SUBTYPE_R9M_AUPLUS, - MODULE_SUBTYPE_R9M_LAST=MODULE_SUBTYPE_R9M_AUPLUS -}; - -enum ModuleSubtypeFlysky { - FLYSKY_SUBTYPE_AFHDS3=0, - FLYSKY_SUBTYPE_AFHDS2A -}; - -enum FailsafeModes { - FAILSAFE_NOT_SET, - FAILSAFE_HOLD, - FAILSAFE_CUSTOM, - FAILSAFE_NOPULSES, - FAILSAFE_RECEIVER, - FAILSAFE_LAST SKIP = FAILSAFE_RECEIVER -}; - -enum AntennaModes { - ANTENNA_MODE_INTERNAL = -2, - ANTENNA_MODE_ASK = -1, - ANTENNA_MODE_PER_MODEL = 0, - ANTENNA_MODE_EXTERNAL = 1, - ANTENNA_MODE_FIRST = ANTENNA_MODE_INTERNAL, - ANTENNA_MODE_LAST = ANTENNA_MODE_EXTERNAL -}; - -// from opentx_constants.h -enum SwitchConfig { - SWITCH_NONE, - SWITCH_TOGGLE, - SWITCH_2POS, - SWITCH_3POS, -}; - -enum PotConfig { - POT_NONE, - POT_WITH_DETENT, - POT_MULTIPOS_SWITCH, - POT_WITHOUT_DETENT -}; - -enum SliderConfig { - SLIDER_NONE, - SLIDER_WITH_DETENT, -}; - -enum CalibrationState { - CALIB_START, - CALIB_SET_MIDPOINT, - CALIB_MOVE_STICKS, - CALIB_STORE, - CALIB_FINISHED -}; diff --git a/radio/src/storage/conversions/yaml/datastructs_220.h b/radio/src/storage/conversions/yaml/datastructs_220.h deleted file mode 100644 index 958c19bdb29..00000000000 --- a/radio/src/storage/conversions/yaml/datastructs_220.h +++ /dev/null @@ -1,1021 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#pragma once - -#include - -// from opentx_types.h -typedef uint32_t tmr10ms_t; -typedef int32_t rotenc_t; -typedef int32_t getvalue_t; -typedef uint32_t mixsrc_t; -typedef int32_t swsrc_t; -typedef int16_t safetych_t; -typedef int16_t gvar_t; -typedef uint32_t bitfield_channels_t; -typedef uint16_t FlightModesType; -typedef uint16_t source_t; - -// from globals.h -typedef uint16_t BeepANACenter; - -#include "definitions.h" - -#if defined(PCBTARANIS) - #define N_TARANIS_FIELD(x) - #define TARANIS_FIELD(x) x; -#else - #define N_TARANIS_FIELD(x) x; - #define TARANIS_FIELD(x) -#endif - -#if defined(PCBX9E) - #define TARANIS_PCBX9E_FIELD(x) x; -#else - #define TARANIS_PCBX9E_FIELD(x) -#endif - -#if defined(PCBHORUS) - #define N_HORUS_FIELD(x) - #define HORUS_FIELD(x) x; -#else - #define N_HORUS_FIELD(x) x; - #define HORUS_FIELD(x) -#endif - -#if defined(BACKUP) - #define NOBACKUP(...) -#else - #define NOBACKUP(...) __VA_ARGS__ -#endif - -#include "storage/yaml/yaml_defs.h" - -/* - * Mixer structure - */ - -PACK(struct CurveRef { - uint8_t type; - int8_t value; -}); - -PACK(struct MixData { - int16_t weight:11 CUST(in_read_weight,in_write_weight); // GV1=-1024, -GV1=1023 - uint16_t destCh:5; - 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 ENUM(MixerMultiplex); - uint16_t spare:1 SKIP; - int32_t offset:14; - int32_t swtch:9 CUST(r_swtchSrc,w_swtchSrc); - uint32_t flightModes:9; //TODO ?? - CurveRef curve; - uint8_t delayUp; - uint8_t delayDown; - uint8_t speedUp; - uint8_t speedDown; - NOBACKUP(char name[LEN_EXPOMIX_NAME]); -}); - -/* - * Expo/Input structure - */ - -PACK(struct ExpoData { - uint16_t mode:2; - uint16_t scale:14; - uint16_t srcRaw:10 ENUM(MixSources) CUST(r_mixSrcRaw,w_mixSrcRaw); - int16_t carryTrim:6; - uint32_t chn:5; - int32_t swtch:9 CUST(r_swtchSrc,w_swtchSrc); - 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]); - int8_t offset; - CurveRef curve; -}); - -/* - * Limit structure - */ - -PACK(struct LimitData { - int32_t min:11; - int32_t max:11; - int32_t ppmCenter:10; // TODO can be reduced to 8 bits - int16_t offset:11; - uint16_t symetrical:1; - uint16_t revert:1; - uint16_t spare:3 SKIP; - int8_t curve; - NOBACKUP(char name[LEN_CHANNEL_NAME]); -}); - -/* - * LogicalSwitch structure - */ - -PACK(struct LogicalSwitchData { - uint8_t func ENUM(LogicalSwitchesFunctions); - int32_t v1:10; - int32_t v3:10; - int32_t andsw:9; // TODO rename to xswtch - uint32_t andswtype:1; // TODO rename to xswtchType (AND / OR) - uint32_t spare:2 SKIP; // anything else needed? - int16_t v2; - uint8_t delay; - uint8_t duration; -}); - -/* - * SpecialFunction structure - */ - - -#if defined(PCBTARANIS) - #define CFN_SPARE_TYPE int32_t -#else - #define CFN_SPARE_TYPE int16_t -#endif - -PACK(struct CustomFunctionData { - int16_t swtch:9 CUST(r_swtchSrc,w_swtchSrc); - uint16_t func:7 ENUM(Functions); - PACK(union { - NOBACKUP(PACK(struct { - char name[LEN_FUNCTION_NAME]; - }) play); - - PACK(struct { - int16_t val; - uint8_t mode; - uint8_t param; - NOBACKUP(CFN_SPARE_TYPE spare SKIP); - }) all; - - NOBACKUP(PACK(struct { - int32_t val1; - NOBACKUP(CFN_SPARE_TYPE val2 SKIP); - }) clear); - }) NAME(fp) FUNC(select_custom_fn); - uint8_t active; - - bool isEmpty() const - { - return swtch == 0; - } -}); - -/* - * FlightMode structure - */ - -PACK(struct trim_t { - int16_t value:11; - uint16_t mode:5; -}); - -PACK(struct FlightModeData { - trim_t trim[NUM_TRIMS]; - NOBACKUP(char name[LEN_FLIGHT_MODE_NAME]); - int16_t swtch:9 ENUM(SwitchSources) CUST(r_swtchSrc,w_swtchSrc); // swtch of phase[0] is not used - int16_t spare:7 SKIP; - uint8_t fadeIn; - uint8_t fadeOut; - gvar_t gvars[MAX_GVARS] FUNC(gvar_is_active); -}); - -/* - * Curve structure - */ - -PACK(struct CurveHeader { - uint8_t type:1; - uint8_t smooth:1; - int8_t points:6; // describes number of points - 5 - NOBACKUP(char name[LEN_CURVE_NAME]); -}); - -/* - * GVar structure - */ - -PACK(struct GVarData { - NOBACKUP(char name[LEN_GVAR_NAME]); - uint32_t min:12; - uint32_t max:12; - uint32_t popup:1; - uint32_t prec:1; - uint32_t unit:2; - uint32_t spare:4 SKIP; -}); - -/* - * Timer structure - */ - -PACK(struct TimerData { - uint32_t start:22; - int32_t swtch:10 CUST(r_swtchSrc,w_swtchSrc); - int32_t value:22; - uint32_t mode:3 ENUM(TimerModes); - uint32_t countdownBeep:2; - uint32_t minuteBeep:1; - uint32_t persistent:2; - int32_t countdownStart:2; - NOBACKUP(char name[LEN_TIMER_NAME]); -}); - -/* - * Swash Ring structure - */ - -PACK(struct SwashRingData { - uint8_t type; - uint8_t value; - uint8_t collectiveSource; - uint8_t aileronSource; - uint8_t elevatorSource; - int8_t collectiveWeight; - int8_t aileronWeight; - int8_t elevatorWeight; -}); - -#if MAX_SCRIPTS > 0 -union ScriptDataInput { - int16_t value; - source_t source; -} FUNC(select_script_input); - -PACK(struct ScriptData { - char file[LEN_SCRIPT_FILENAME]; - char name[LEN_SCRIPT_NAME]; - ScriptDataInput inputs[MAX_SCRIPT_INPUTS]; -}); -#endif - -/* - * Frsky Telemetry structure - */ -PACK(struct RssiAlarmData { - int8_t disabled:1; -#if defined (PCBNV14) - uint8_t flysky_telemetry:1; // if set for FlySky receivers use native RSSI values instead of rescaled ones -#else - int8_t spare:1 SKIP; -#endif - int8_t warning:6; - int8_t spare2:2 SKIP; - int8_t critical:6; - inline int8_t getWarningRssi() {return 45 + warning;} - inline int8_t getCriticalRssi() {return 42 + critical;} - }); - -typedef int16_t ls_telemetry_value_t; - -#if !defined(COLORLCD) -PACK(struct FrSkyBarData { - source_t source; - ls_telemetry_value_t barMin; // minimum for bar display - ls_telemetry_value_t barMax; // ditto for max display (would usually = ratio) -}); - -PACK(struct FrSkyLineData { - source_t sources[NUM_LINE_ITEMS]; -}); - -#if defined(PCBTARANIS) -PACK(struct TelemetryScriptData { - char file[LEN_SCRIPT_FILENAME]; - int16_t inputs[MAX_TELEM_SCRIPT_INPUTS]; -}); -#endif - -union TelemetryScreenData { - FrSkyBarData bars[4]; - FrSkyLineData lines[4]; -#if defined(PCBTARANIS) - TelemetryScriptData script; -#endif -}; -#endif - -PACK(struct VarioData { - uint8_t source:7; - uint8_t centerSilent:1; - int8_t centerMax; - int8_t centerMin; - int8_t min; - int8_t max; -}); - -/* - * Telemetry Sensor structure - */ - -#define TELEMETRY_ENDPOINT_NONE 0xFF -#define TELEMETRY_ENDPOINT_SPORT 0x07 - -PACK(struct TelemetrySensor { - union { - uint16_t id; // data identifier, for FrSky we can reuse existing ones. Source unit is derived from type. - NOBACKUP(uint16_t persistentValue); - } NAME(id1) FUNC(select_id1); - union { - NOBACKUP(PACK(struct { - uint8_t physID:5; - uint8_t rxIndex:3; // 1 bit for module index, 2 bits for receiver index - }) frskyInstance); - uint8_t instance; - NOBACKUP(uint8_t formula); - } NAME(id2) FUNC(select_id2); - char label[TELEM_LABEL_LEN]; // user defined label - uint8_t subId; - uint8_t type:1; // 0=custom / 1=calculated // user can choose what unit to display each value in - uint8_t spare1:1 SKIP; - uint8_t unit:6; - uint8_t prec:2; - uint8_t autoOffset:1; - uint8_t filter:1; - uint8_t logs:1; - uint8_t persistent:1; - uint8_t onlyPositive:1; - uint8_t spare2:1 SKIP; - union { - NOBACKUP(PACK(struct { - uint16_t ratio; - int16_t offset; - }) custom); - NOBACKUP(PACK(struct { - uint8_t source; - uint8_t index; - uint16_t spare SKIP; - }) cell); - NOBACKUP(PACK(struct { - int8_t sources[4]; - }) calc); - NOBACKUP(PACK(struct { - uint8_t source; - uint8_t spare[3] SKIP; - }) consumption); - NOBACKUP(PACK(struct { - uint8_t gps; - uint8_t alt; - uint16_t spare SKIP; - }) dist); - uint32_t param; - } NAME(cfg) FUNC(select_sensor_cfg); - NOBACKUP( - void init(const char *label, uint8_t unit=UNIT_RAW, uint8_t prec=0); - void init(uint16_t id); - bool isAvailable() const; - int32_t getValue(int32_t value, uint8_t unit, uint8_t prec) const; - bool isConfigurable() const; - bool isPrecConfigurable() const; - int32_t getPrecMultiplier() const; - int32_t getPrecDivisor() const; - bool isSameInstance(TelemetryProtocol protocol, uint8_t instance); - ); -}); - -/* - * Trainer module structure - */ - -PACK(struct TrainerModuleData { - uint8_t mode CUST(r_trainerMode,w_trainerMode); - uint8_t channelsStart; - int8_t channelsCount; // 0=8 channels - int8_t frameLength; - int8_t delay:6; - uint8_t pulsePol:1; - uint8_t spare2:1 SKIP; -}); - -/* - * Module structure - */ - -// Only used in case switch and if statements as "virtual" protocol -#define MM_RF_CUSTOM_SELECTED 0xff -#define MULTI_MAX_PROTOCOLS 127 // rfProtocol:4 + rfProtocolExtra:3 -PACK(struct ModuleData { - uint8_t type:4 ENUM(ModuleType); - // TODO some refactoring is needed, rfProtocol is only used by DSM2 and MULTI, it could be merged with subType - int8_t rfProtocol:4; - uint8_t channelsStart; - int8_t channelsCount; // 0=8 channels - uint8_t failsafeMode:4; // only 3 bits used - uint8_t subType:3; - uint8_t invertedSerial:1; // telemetry serial inverted from standard - - union { - uint8_t raw[PXX2_MAX_RECEIVERS_PER_MODULE * PXX2_LEN_RX_NAME + 1]; - NOBACKUP(struct { - int8_t delay:6; - uint8_t pulsePol:1; - uint8_t outputType:1; // false = open drain, true = push pull - int8_t frameLength; - } ppm); - NOBACKUP(struct { - uint8_t rfProtocolExtra:3; - uint8_t disableTelemetry:1; - uint8_t disableMapping:1; - uint8_t customProto:1; - uint8_t autoBindMode:1; - uint8_t lowPowerMode:1; - int8_t optionValue; - uint8_t receiverTelemetryOff:1; - uint8_t receiverHigherChannels:1; - uint8_t spare:6 SKIP; - } multi); - NOBACKUP(struct { - uint8_t power:2; // 0=10 mW, 1=100 mW, 2=500 mW, 3=1W - uint8_t spare1:2 SKIP; - uint8_t receiverTelemetryOff:1; // false = receiver telem enabled - uint8_t receiverHigherChannels:1; // false = pwm out 1-8, true 9-16 - int8_t antennaMode:2; - uint8_t spare2 SKIP; - } pxx); - NOBACKUP(struct { - uint8_t spare1:6 SKIP; - uint8_t noninverted:1; - uint8_t spare2:1 SKIP; - int8_t refreshRate; // definition as framelength for ppm (* 5 + 225 = time in 1/10 ms) - } sbus); - NOBACKUP(struct { - uint8_t receivers:7; // 4 bits spare - uint8_t racingMode:1; - char receiverName[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_NAME]; - } pxx2); - NOBACKUP(struct { - uint8_t rx_id[4]; - uint8_t mode:3; - uint8_t rfPower:1; - uint8_t reserved:4; - uint8_t rx_freq[2]; - - void setDefault() { - rx_id[0] = rx_id[1] = rx_id[2] = rx_id[3] = 0; - mode = 0; - rfPower = 0; - rx_freq[0] = 50; - rx_freq[1] = 0; - } - } flysky); - NOBACKUP(PACK(struct { - uint8_t bindPower:3; - uint8_t runPower:3; - uint8_t emi:1; - uint8_t telemetry:1; - uint16_t failsafeTimeout; - uint8_t rx_freq[2]; - uint8_t mode:2; - uint8_t reserved:6; - uint16_t rxFreq() - { - return (uint16_t)rx_freq[0] | (((uint16_t)rx_freq[1]) << 8); - } - - void setRxFreq(uint16_t value) - { - rx_freq[0] = value & 0xFF; - rx_freq[1] = value >> 8; - } - } afhds3)); - } NAME(mod) FUNC(select_mod_type); - - // Helper functions to set both of the rfProto protocol at the same time - NOBACKUP(inline uint8_t getMultiProtocol() const - { - return ((uint8_t) (rfProtocol & 0x0F)) + (multi.rfProtocolExtra << 4); - }) - - NOBACKUP(inline void setMultiProtocol(uint8_t proto) - { - rfProtocol = (uint8_t) (proto & 0x0F); - multi.rfProtocolExtra = (proto & 0x70) >> 4; - }) - - NOBACKUP(inline uint8_t getChannelsCount() const - { - return channelsCount + 8; - }) -}); - -/* - * Model structure - */ - -#if LEN_BITMAP_NAME > 0 -#define MODEL_HEADER_BITMAP_FIELD NOBACKUP(char bitmap[LEN_BITMAP_NAME]); -#else -#define MODEL_HEADER_BITMAP_FIELD -#endif - - -PACK(struct ModelHeader { - char name[LEN_MODEL_NAME]; // must be first for eeLoadModelName - uint8_t modelId[NUM_MODULES]; - MODEL_HEADER_BITMAP_FIELD -}); - -#if defined(COLORLCD) -typedef uint32_t swconfig_t; -typedef uint32_t swarnstate_t; -#elif defined(PCBX9E) -typedef uint64_t swconfig_t; -typedef uint64_t swarnstate_t; -typedef uint32_t swarnenable_t; -#elif defined(PCBX9D) || defined(PCBX9DP) -typedef uint32_t swconfig_t; -typedef uint32_t swarnstate_t; -typedef uint16_t swarnenable_t; // TODO remove it in 2.4 -#elif defined(PCBTARANIS) -typedef uint16_t swconfig_t; -typedef uint16_t swarnstate_t; -typedef uint8_t swarnenable_t; // TODO remove it in 2.4 -#else -typedef uint8_t swarnstate_t; -typedef uint8_t swarnenable_t; -#endif - -#if defined(COLORLCD) - #define SWITCHES_WARNING_DATA \ - NOBACKUP(swarnstate_t switchWarningState CUST(r_swtchWarn,w_swtchWarn)); -#else - #define SWITCHES_WARNING_DATA \ - swarnstate_t switchWarningState CUST(r_swtchWarn,w_swtchWarn); \ - swarnenable_t switchWarningEnable; // TODO remove it in 2.4 -#endif - -#if defined(COLORLCD) && defined(BACKUP) -#define CUSTOM_SCREENS_DATA -#elif defined(COLORLCD) -#include "layout_220.h" -PACK(struct CustomScreenData { - char LayoutId[LAYOUT_ID_LEN]; - LayoutPersistentData layoutData; -}); -#define CUSTOM_SCREENS_DATA \ - NOBACKUP(CustomScreenData screenData[MAX_CUSTOM_SCREENS]); \ - NOBACKUP(TopBarPersistentData topbarData); \ - NOBACKUP(uint8_t view); -#else -#define CUSTOM_SCREENS_DATA \ - uint8_t screensType; /* 2bits per screen (None/Gauges/Numbers/Script) */ \ - TelemetryScreenData screens[MAX_TELEMETRY_SCREENS]; \ - uint8_t view; -#endif - -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) - #define TOPBAR_DATA \ - NOBACKUP(uint8_t voltsSource); \ - NOBACKUP(uint8_t altitudeSource); -#else - #define TOPBAR_DATA -#endif - -#if defined(PCBHORUS) || defined(PCBTARANIS) || defined(PCBNV14) - #define SCRIPT_DATA \ - NOBACKUP(ScriptData scriptsData[MAX_SCRIPTS]); -#else - #define SCRIPT_DATA -#endif - -PACK(struct PartialModel { - ModelHeader header; - TimerData timers[MAX_TIMERS]; -}); - -PACK(struct ModelData { - ModelHeader header; - TimerData timers[MAX_TIMERS]; - uint8_t telemetryProtocol:3; - uint8_t thrTrim:1; // Enable Throttle Trim - uint8_t noGlobalFunctions:1; - uint8_t displayTrims:2; - uint8_t ignoreSensorIds:1; - int8_t trimInc:3; // Trim Increments - uint8_t disableThrottleWarning:1; - uint8_t displayChecklist:1; - uint8_t extendedLimits:1; - uint8_t extendedTrims:1; - uint8_t throttleReversed:1; - BeepANACenter beepANACenter; - MixData mixData[MAX_MIXERS] NO_IDX; - LimitData limitData[MAX_OUTPUT_CHANNELS]; - ExpoData expoData[MAX_EXPOS] NO_IDX; - - CurveHeader curves[MAX_CURVES]; - int8_t points[MAX_CURVE_POINTS]; - - LogicalSwitchData logicalSw[MAX_LOGICAL_SWITCHES]; - CustomFunctionData customFn[MAX_SPECIAL_FUNCTIONS] FUNC(cfn_is_active); - SwashRingData swashR; - FlightModeData flightModeData[MAX_FLIGHT_MODES] FUNC(fmd_is_active); - - NOBACKUP(uint8_t thrTraceSrc); - - SWITCHES_WARNING_DATA - - GVarData gvars[MAX_GVARS]; - - NOBACKUP(VarioData varioData); - NOBACKUP(uint8_t rssiSource); - - TOPBAR_DATA - - NOBACKUP(RssiAlarmData rssiAlarms); - - uint8_t spare1:3 SKIP; - uint8_t thrTrimSw:3; - uint8_t potsWarnMode:2; - - ModuleData moduleData[NUM_MODULES]; - int16_t failsafeChannels[MAX_OUTPUT_CHANNELS]; - TrainerModuleData trainerData; - - SCRIPT_DATA - - NOBACKUP(char inputNames[MAX_INPUTS][LEN_INPUT_NAME]); - NOBACKUP(uint8_t potsWarnEnabled); - NOBACKUP(int8_t potsWarnPosition[STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS]); - - NOBACKUP(TelemetrySensor telemetrySensors[MAX_TELEMETRY_SENSORS];) - - TARANIS_PCBX9E_FIELD(uint8_t toplcdTimer) - - CUSTOM_SCREENS_DATA - - char modelRegistrationID[PXX2_LEN_REGISTRATION_ID]; - - bool isTrainerTraineeEnable() const - { -#if defined(PCBNV14) - return trainerData.mode >= TRAINER_MODE_MASTER_TRAINER_JACK; -#else - return true; -#endif - } - - uint8_t getThrottleStickTrimSource() const - { - // The order here is TERA, so that 0 (default) means Throttle - switch (thrTrimSw) { - case 0: - return MIXSRC_TrimThr; - case 2: - return MIXSRC_TrimRud; - default: - return thrTrimSw + MIXSRC_FIRST_TRIM; - } - } - - void setThrottleStickTrimSource(int16_t src) - { - // The order here is TERA, so that 0 (default) means Throttle - switch (src) { - case MIXSRC_TrimThr: - thrTrimSw = 0; - break; - case MIXSRC_TrimRud: - thrTrimSw = 2; - break; - default: - thrTrimSw = src - MIXSRC_FIRST_TRIM; - break; - } - } -}); - -/* - * Radio structure - */ - -#if XPOTS_MULTIPOS_COUNT > 0 -PACK(struct StepsCalibData { - uint8_t count; - uint8_t steps[XPOTS_MULTIPOS_COUNT-1]; -}); -#endif - -PACK(struct CalibData { - int16_t mid; - int16_t spanNeg; - int16_t spanPos; -}); - -PACK(struct TrainerMix { - uint8_t srcChn:6; // 0-7 = ch1-8 - uint8_t mode:2 ENUM(TrainerMultiplex); // off,add-mode,subst-mode - int8_t studWeight; -}); - -PACK(struct TrainerData { - int16_t calib[4]; - NOBACKUP(TrainerMix mix[4]); -}); - -#if defined(COLORLCD) - #define SPLASH_MODE uint8_t splashSpares:3 SKIP -#else - #define SPLASH_MODE int8_t splashMode:3 -#endif - -#if defined(PCBXLITES) - #define GYRO_FIELDS \ - int8_t gyroMax; \ - int8_t gyroOffset; -#else - #define GYRO_FIELDS -#endif - -#if defined(PCBHORUS) || defined(PCBNV14) - #define EXTRA_GENERAL_FIELDS \ - NOBACKUP(uint8_t auxSerialMode:4 ENUM(UartModes)); \ - NOBACKUP(uint8_t aux2SerialMode:4 ENUM(UartModes)); \ - CUST_ARRAY(sticksConfig, struct_sticksConfig, stick_name_valid); \ - swconfig_t switchConfig ARRAY(2,struct_switchConfig,nullptr); \ - uint16_t potsConfig ARRAY(2,struct_potConfig,nullptr); /* two bits per pot */ \ - uint8_t slidersConfig ARRAY(1,struct_sliderConfig,nullptr); /* 1 bit per slider */ \ - NOBACKUP(char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME] SKIP); \ - NOBACKUP(char anaNames[NUM_STICKS + STORAGE_NUM_POTS + STORAGE_NUM_SLIDERS][LEN_ANA_NAME] SKIP); \ - NOBACKUP(char currModelFilename[LEN_MODEL_FILENAME+1]); \ - NOBACKUP(uint8_t spare5:1 SKIP); \ - NOBACKUP(uint8_t blOffBright:7); \ - NOBACKUP(char bluetoothName[LEN_BLUETOOTH_NAME]); -#elif defined(PCBTARANIS) - #if defined(STORAGE_BLUETOOTH) - #define BLUETOOTH_FIELDS \ - uint8_t spare5 SKIP; \ - char bluetoothName[LEN_BLUETOOTH_NAME]; - #else - #define BLUETOOTH_FIELDS - #endif - #define EXTRA_GENERAL_FIELDS \ - uint8_t auxSerialMode:4 ENUM(UartModes); \ - uint8_t slidersConfig:4 ARRAY(1,struct_sliderConfig,nullptr); \ - uint8_t potsConfig ARRAY(2,struct_potConfig,nullptr); /* two bits per pot */\ - uint8_t backlightColor; \ - swarnstate_t switchUnlockStates; \ - CUST_ARRAY(sticksConfig, struct_sticksConfig, stick_name_valid); \ - swconfig_t switchConfig ARRAY(2,struct_switchConfig,nullptr); \ - char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME] SKIP; \ - char anaNames[NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS][LEN_ANA_NAME] SKIP; \ - BLUETOOTH_FIELDS -#else - #define EXTRA_GENERAL_FIELDS -#endif - -#if defined(COLORLCD) && !defined(BACKUP) - #define MAX_THEME_OPTIONS 5 - struct OpenTxTheme__PersistentData { - ZoneOptionValueTyped options[MAX_THEME_OPTIONS]; - }; - #define THEME_NAME_LEN 8 - #define THEME_DATA \ - NOBACKUP(char themeName[THEME_NAME_LEN]); \ - NOBACKUP(OpenTxTheme__PersistentData themeData); -#else - #define THEME_DATA -#endif - -#if defined(BUZZER) - #define BUZZER_FIELD int8_t buzzerMode:2 // -2=quiet, -1=only alarms, 0=no keys, 1=all (only used on AVR radios without audio hardware) -#else - #define BUZZER_FIELD int8_t spare4:2 SKIP -#endif - -PACK(struct RadioData { - - // Real attributes - NOBACKUP(uint8_t version); - NOBACKUP(uint16_t variant SKIP); - CalibData calib[NUM_STICKS + STORAGE_NUM_POTS + STORAGE_NUM_SLIDERS + STORAGE_NUM_MOUSE_ANALOGS]; - 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 ENUM(BacklightMode); - int8_t antennaMode:2 ENUM(AntennaModes); - uint8_t disableRtcWarning:1; - uint8_t keysBacklight:1; - int8_t spare1:1 SKIP; - NOBACKUP(TrainerData trainer); - NOBACKUP(uint8_t view); // index of view in main screen - NOBACKUP(BUZZER_FIELD); /* 2bits */ - NOBACKUP(uint8_t fai:1); - 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); - uint8_t stickMode:2; - int8_t timezone:5; - uint8_t adjustRTC:1; - NOBACKUP(uint8_t inactivityTimer); - uint8_t telemetryBaudrate:3; - SPLASH_MODE; /* 3bits */ - 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 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 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 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)); - - NOBACKUP(uint8_t backlightBright); - NOBACKUP(uint32_t globalTimer); - NOBACKUP(uint8_t bluetoothBaudrate:4); - NOBACKUP(uint8_t bluetoothMode:4 ENUM(BluetoothModes)); - NOBACKUP(uint8_t countryCode:2); - NOBACKUP(int8_t pwrOnSpeed:3); - NOBACKUP(int8_t pwrOffSpeed:3); - NOBACKUP(uint8_t imperial:1); - NOBACKUP(uint8_t jitterFilter:1); /* 0 - Jitter filter active */ - NOBACKUP(uint8_t disableRssiPoweroffAlarm:1); - NOBACKUP(uint8_t USBMode:2); - NOBACKUP(uint8_t jackMode:2); - NOBACKUP(uint8_t sportUpdatePower:1 SKIP); - NOBACKUP(char ttsLanguage[2]); - 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); - - EXTRA_GENERAL_FIELDS - - THEME_DATA - - char ownerRegistrationID[PXX2_LEN_REGISTRATION_ID]; - - GYRO_FIELDS - - NOBACKUP(int8_t uartSampleMode:2); // See UartSampleModes -}); - -#undef SWITCHES_WARNING_DATA -#undef MODEL_GVARS_DATA -#undef TELEMETRY_DATA -#undef SCRIPTS_DATA -#undef CUSTOM_SCREENS_DATA -#undef SPLASH_MODE -#undef EXTRA_GENERAL_FIELDS -#undef THEME_DATA -#undef NOBACKUP - - -#if !defined(BACKUP) -/* Compile time check to test structure size has not changed * - Changing the size of one of the eeprom structs may cause wrong data to - be loaded. Error out if the struct size changes. - This function tries not avoid checking or using the defines - other than the CPU arch and board type so changes in other - defines also trigger the struct size changes */ - -#include "chksize.h" - -#define CHKSIZE(x, y) check_size() -#define CHKTYPE(x, y) check_size() - -static inline void check_struct() -{ - - CHKSIZE(CurveRef, 2); - - /* Difference between Taranis/Horus is LEN_EXPOMIX_NAME */ - /* LEN_FUNCTION_NAME is the difference in CustomFunctionData */ - - CHKSIZE(VarioData, 5); - -#if defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) - CHKSIZE(MixData, 20); - CHKSIZE(ExpoData, 17); - CHKSIZE(LimitData, 11); - CHKSIZE(LogicalSwitchData, 9); - CHKSIZE(CustomFunctionData, 11); - CHKSIZE(FlightModeData, 28 + 2*NUM_TRIMS); - CHKSIZE(TimerData, 11); - CHKSIZE(SwashRingData, 8); - CHKSIZE(FrSkyBarData, 6); - CHKSIZE(FrSkyLineData, 4); - CHKTYPE(union TelemetryScreenData, 24); - CHKSIZE(ModelHeader, 12); - CHKSIZE(CurveHeader, 4); -#elif defined(PCBTARANIS) - CHKSIZE(MixData, 20); - CHKSIZE(ExpoData, 17); - CHKSIZE(LimitData, 13); - CHKSIZE(LogicalSwitchData, 9); - CHKSIZE(CustomFunctionData, 11); - CHKSIZE(FlightModeData, 40); - CHKSIZE(TimerData, 16); - CHKSIZE(SwashRingData, 8); - CHKSIZE(FrSkyBarData, 6); - CHKSIZE(FrSkyLineData, 6); - CHKTYPE(union TelemetryScreenData, 24); - CHKSIZE(ModelHeader, 24); - CHKSIZE(CurveHeader, 4); -#elif defined(PCBHORUS) - CHKSIZE(MixData, 20); - CHKSIZE(ExpoData, 17); - CHKSIZE(LimitData, 13); - CHKSIZE(CustomFunctionData, 9); - CHKSIZE(FlightModeData, 44); - CHKSIZE(TimerData, 16); - CHKSIZE(SwashRingData, 8); - CHKSIZE(ModelHeader, 31); - CHKSIZE(CurveHeader, 4); - CHKSIZE(CustomScreenData, 850); - CHKTYPE(TopBarPersistentData, 300); -#elif defined(PCBNV14) - // TODO -#else - // Common for all variants - CHKSIZE(LimitData, 5); - CHKSIZE(SwashRingData, 3); - CHKSIZE(FrSkyBarData, 3); - CHKSIZE(FrSkyLineData, 2); - CHKSIZE(ModelHeader, 11); - CHKTYPE(CurveHeader, 1); - - CHKSIZE(MixData, 9); - CHKSIZE(ExpoData, 4); - - CHKSIZE(CustomFunctionData, 3); - CHKSIZE(TimerData, 3); - - CHKSIZE(FlightModeData, 30); - CHKSIZE(RadioData, 85); - -#endif /* board specific ifdefs*/ - - CHKSIZE(LogicalSwitchData, 9); - CHKSIZE(TelemetrySensor, 14); - CHKSIZE(ModuleData, 29); - CHKSIZE(GVarData, 7); - CHKSIZE(RssiAlarmData, 2); - CHKSIZE(TrainerData, 16); - -#if defined(PCBXLITES) - CHKSIZE(RadioData, 861); - CHKSIZE(ModelData, 6157); -#elif defined(PCBXLITE) - CHKSIZE(RadioData, 859); - CHKSIZE(ModelData, 6157); -#elif defined(RADIO_TPRO) - CHKSIZE(RadioData, 860); - CHKSIZE(ModelData, 6157); -#elif defined(PCBX7) - CHKSIZE(RadioData, 865); - CHKSIZE(ModelData, 6157); -#elif defined(PCBX9E) - CHKSIZE(RadioData, 961); - CHKSIZE(ModelData, 6614); -#elif defined(PCBX9D) || defined(PCBX9DP) - CHKSIZE(RadioData, 899); - CHKSIZE(ModelData, 6604); -#elif defined(PCBHORUS) - CHKSIZE(RadioData, 902); - CHKSIZE(ModelData, 11020); -#endif - -#undef CHKSIZE -} -#endif /* BACKUP */ diff --git a/radio/src/storage/conversions/yaml/layout_220.h b/radio/src/storage/conversions/yaml/layout_220.h deleted file mode 100644 index 6d2dff76dee..00000000000 --- a/radio/src/storage/conversions/yaml/layout_220.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#pragma once - -#define MAX_LAYOUT_ZONES 10 -#define MAX_LAYOUT_OPTIONS 10 - -#if defined(PCBNV14) -#define MAX_TOPBAR_ZONES 2 -#else -#define MAX_TOPBAR_ZONES 4 -#endif - -#define WIDGET_NAME_LEN 10 -#define MAX_WIDGET_OPTIONS 5 -#define MAX_TOPBAR_OPTIONS 1 -#define LAYOUT_ID_LEN 10 - -#include "zone_220.h" - -struct WidgetPersistentData { - ZoneOptionValueTyped options[MAX_WIDGET_OPTIONS]; -}; - -struct ZonePersistentData { - char widgetName[WIDGET_NAME_LEN]; - WidgetPersistentData widgetData; -}; - -struct LayoutPersistentData { - ZonePersistentData zones[MAX_LAYOUT_ZONES]; - ZoneOptionValueTyped options[MAX_LAYOUT_OPTIONS]; -}; - -struct TopBarPersistentData { - ZonePersistentData zones[MAX_TOPBAR_ZONES]; - ZoneOptionValueTyped options[MAX_TOPBAR_OPTIONS]; -}; diff --git a/radio/src/storage/conversions/yaml/myeeprom_220.h b/radio/src/storage/conversions/yaml/myeeprom_220.h deleted file mode 100644 index 077811b5882..00000000000 --- a/radio/src/storage/conversions/yaml/myeeprom_220.h +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#if defined(_MYEEPROM_H_) -#error "This file MUST NOT be included side-by-side with myeeprom.h" -#endif - - -#if defined(SDCARD_YAML) - #define EEPROM_VER 221 -#else - #define EEPROM_VER 220 -#endif -#define FIRST_CONV_EEPROM_VER 219 - -#define GET_MODULE_PPM_POLARITY(idx) g_model.moduleData[idx].ppm.pulsePol -#define GET_TRAINER_PPM_POLARITY() g_model.trainerData.pulsePol -#define GET_SBUS_POLARITY(idx) g_model.moduleData[idx].sbus.noninverted -#define GET_MODULE_PPM_DELAY(idx) (g_model.moduleData[idx].ppm.delay * 50 + 300) -#define GET_TRAINER_PPM_DELAY() (g_model.trainerData.delay * 50 + 300) - -#if defined(HARDWARE_TRAINER_EXTERNAL_MODULE) - #define IS_TRAINER_EXTERNAL_MODULE() (g_model.trainerData.mode == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE || g_model.trainerData.mode == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE) -#else - #define IS_TRAINER_EXTERNAL_MODULE() false -#endif - -#define IS_TRAINER_AUX_SERIAL() (g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER) - -#define IS_PLAY_FUNC(func) ((func) >= FUNC_PLAY_SOUND && func <= FUNC_PLAY_VALUE) - -#if defined(GVARS) - #define IS_ADJUST_GV_FUNC(func) ((func) == FUNC_ADJUST_GVAR) -#else - #define IS_ADJUST_GV_FUNC(func) (0) -#endif - -#if defined(HAPTIC) - #define IS_HAPTIC_FUNC(func) ((func) == FUNC_HAPTIC) -#else - #define IS_HAPTIC_FUNC(func) (0) -#endif - -#define HAS_ENABLE_PARAM(func) ((func) < FUNC_FIRST_WITHOUT_ENABLE || (func == FUNC_BACKLIGHT)) -#define HAS_REPEAT_PARAM(func) (IS_PLAY_FUNC(func) || IS_HAPTIC_FUNC(func)) - -#define CFN_EMPTY(p) (!(p)->swtch) -#define CFN_SWITCH(p) ((p)->swtch) -#define CFN_FUNC(p) ((p)->func) -#define CFN_ACTIVE(p) ((p)->active) -#define CFN_CH_INDEX(p) ((p)->all.param) -#define CFN_GVAR_INDEX(p) ((p)->all.param) -#define CFN_TIMER_INDEX(p) ((p)->all.param) -#define CFN_PLAY_REPEAT(p) ((p)->active) -#define CFN_PLAY_REPEAT_MUL 1 -#define CFN_PLAY_REPEAT_NOSTART 0xFF -#define CFN_GVAR_MODE(p) ((p)->all.mode) -#define CFN_PARAM(p) ((p)->all.val) -#define CFN_RESET(p) ((p)->active=0, (p)->clear.val1=0, (p)->clear.val2=0) -#define CFN_GVAR_CST_MIN -GVAR_MAX -#define CFN_GVAR_CST_MAX GVAR_MAX -#define MODEL_GVAR_MIN(idx) (CFN_GVAR_CST_MIN + g_model.gvars[idx].min) -#define MODEL_GVAR_MAX(idx) (CFN_GVAR_CST_MAX - g_model.gvars[idx].max) - -#if defined(PCBFRSKY) || defined(PCBNV14) - #define SWITCH_CONFIG(x) (bfGet(g_eeGeneral.switchConfig, 2*(x), 2)) - #define SWITCH_EXISTS(x) (SWITCH_CONFIG(x) != SWITCH_NONE) - #define IS_CONFIG_3POS(x) (SWITCH_CONFIG(x) == SWITCH_3POS) - #define IS_CONFIG_TOGGLE(x) (SWITCH_CONFIG(x) == SWITCH_TOGGLE) - #define SWITCH_WARNING_ALLOWED(x) (SWITCH_EXISTS(x) && !IS_CONFIG_TOGGLE(x)) -#else - #define IS_CONFIG_3POS(x) IS_3POS(x) - #define IS_CONFIG_TOGGLE(x) IS_TOGGLE(x) - #define switchInfo(x) ((x) >= 3 ? (x)-2 : 0) - #define SWITCH_EXISTS(x) true -#endif - -#define ALTERNATE_VIEW 0x10 - -// #if defined(COLORLCD) -// #include "layout.h" -// #include "theme.h" -// #include "topbar.h" -// #endif - -#define SWITCHES_DELAY() uint8_t(15+g_eeGeneral.switchesDelay) -#define SWITCHES_DELAY_NONE (-15) -#define HAPTIC_STRENGTH() (3+g_eeGeneral.hapticStrength) - -enum CurveRefType { - CURVE_REF_DIFF, - CURVE_REF_EXPO, - CURVE_REF_FUNC, - CURVE_REF_CUSTOM -}; - -#define EXPO_VALID(ed) ((ed)->mode) -#define EXPO_MODE_ENABLE(ed, v) (((v)<0 && ((ed)->mode&1)) || ((v)>=0 && ((ed)->mode&2))) - -#define limit_min_max_t int16_t -#define LIMIT_EXT_PERCENT 150 -#define LIMIT_STD_PERCENT 100 -#define LIMIT_EXT_MAX (LIMIT_EXT_PERCENT*10) -#define LIMIT_STD_MAX (LIMIT_STD_PERCENT*10) -#define PPM_CENTER_MAX 500 -#define LIMIT_MAX(lim) \ - (GV_IS_GV_VALUE(lim->max, -GV_RANGELARGE, GV_RANGELARGE) \ - ? GET_GVAR_PREC1(lim->max, -LIMIT_EXT_MAX, +LIMIT_EXT_MAX, \ - mixerCurrentFlightMode) \ - : lim->max + LIMIT_STD_MAX) -#define LIMIT_MIN(lim) \ - (GV_IS_GV_VALUE(lim->min, -GV_RANGELARGE, GV_RANGELARGE) \ - ? GET_GVAR_PREC1(lim->min, -LIMIT_EXT_MAX, +LIMIT_EXT_MAX, \ - mixerCurrentFlightMode) \ - : lim->min - LIMIT_STD_MAX) -#define LIMIT_OFS(lim) \ - (GV_IS_GV_VALUE(lim->offset, -LIMIT_STD_MAX, LIMIT_STD_MAX) \ - ? GET_GVAR_PREC1(lim->offset, -LIMIT_STD_MAX, +LIMIT_STD_MAX, \ - mixerCurrentFlightMode) \ - : lim->offset) -#define LIMIT_MAX_RESX(lim) calc1000toRESX(LIMIT_MAX(lim)) -#define LIMIT_MIN_RESX(lim) calc1000toRESX(LIMIT_MIN(lim)) -#define LIMIT_OFS_RESX(lim) calc1000toRESX(LIMIT_OFS(lim)) - -#define LIMITS_MIN_MAX_OFFSET LIMIT_STD_MAX - -#define TRIM_OFF (1) -#define TRIM_ON (0) -#define TRIM_RUD (-1) -#define TRIM_ELE (-2) -#define TRIM_THR (-3) -#define TRIM_AIL (-4) -#if defined(PCBHORUS) - #define TRIM_T5 (-5) - #define TRIM_T6 (-6) - #define TRIM_LAST TRIM_T6 -#else - #define TRIM_LAST TRIM_AIL -#endif - -enum MixerMultiplex { - MLTPX_ADD = 0, - MLTPX_MUL = 1, - MLTPX_REPL = 2, -}; - -enum TrainerMultiplex { - TRAINER_OFF = 0, - TRAINER_ADD = 1, - TRAINER_REPL = 2, -}; - -#define GV1_SMALL 128 -#define GV1_LARGE 1024 -#define GV_RANGE_OFFSET 500 -#define DELAY_MAX 250 /* 25 seconds */ -#define SLOW_MAX 250 /* 25 seconds */ - -#define MD_WEIGHT(md) (md->weight) -#define MD_WEIGHT_TO_UNION(md, var) var.word = md->weight -#define MD_UNION_TO_WEIGHT(var, md) md->weight = var.word - -#define MD_OFFSET(md) (md->offset) -#define MD_OFFSET_TO_UNION(md, var) var.word = md->offset -#define MD_UNION_TO_OFFSET(var, md) md->offset = var.word - -enum LogicalSwitchesFunctions { - LS_FUNC_NONE, - LS_FUNC_VEQUAL, // v==offset - LS_FUNC_VALMOSTEQUAL, // v~=offset - LS_FUNC_VPOS, // v>offset - LS_FUNC_VNEG, // voffset - LS_FUNC_ANEG, // |v| -#include -#include - -#include - -#include -#include - -#include "../../../strhelpers.h" -#include "../../../switches.h" -#include "../../../timers.h" -#include "../../../pulses/multi.h" - -#if STORAGE_CONVERSIONS < 221 - -namespace yaml_conv_220 { - -#include "yaml_datastructs_funcs.cpp" - -#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" - #elif defined(RADIO_TLITE) - #include "yaml_datastructs_tlite.cpp" - #elif defined(RADIO_TX12) - #include "yaml_datastructs_tx12.cpp" -#elif defined(RADIO_TX12MK2) - #include "yaml_datastructs_tx12mk2.cpp" - #elif defined(RADIO_ZORRO) - #include "yaml_datastructs_zorro.cpp" - #elif defined(RADIO_T8) - #include "yaml_datastructs_t8.cpp" - #else - #include "yaml_datastructs_x7.cpp" - #endif -#elif defined(PCBX9LITE) && !defined(PCBX9LITES) - #include "yaml_datastructs_x9lite.cpp" -#elif defined(PCBX9LITES) - #include "yaml_datastructs_x9lites.cpp" -#elif defined(PCBXLITE) && !defined(PCBXLITES) - #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" -#else -#error "Board not supported by YAML storage" -#endif - -static_assert(MAX_STR > MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN, - "MAX_STR > MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN"); - -}; - -#else - -namespace yaml_conv_220 { -#include "yaml_datastructs_funcs.cpp" -}; - -#endif // STORAGE_CONVERSIONS diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp deleted file mode 100644 index c61dde7400e..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp +++ /dev/null @@ -1,1206 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "dataconstants_220.h" -#include "datastructs_220.h" -#include "myeeprom_220.h" - -#define VOLUME_LEVEL_DEF 12 - -bool w_board(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - return wf(opaque, FLAVOUR, sizeof(FLAVOUR)-1); -} - -#define in_read_weight nullptr - -bool in_write_weight(const YamlNode* node, uint32_t val, yaml_writer_func wf, - void* opaque) -{ - int32_t sval = yaml_to_signed(val, node->size <= 11 ? node->size : 11); - int32_t gvar = (node->size > 8 ? GV1_LARGE : GV1_SMALL); - - if (sval >= gvar - 10 && sval <= gvar) { - char n = gvar - sval + '0'; - return wf(opaque, "-GV", 3) && wf(opaque, &n, 1); - } else if (sval <= -gvar + 10 && sval >= -gvar) { - char n = val - gvar + '1'; - return wf(opaque, "GV", 2) && wf(opaque, &n, 1); - } - - char* s = yaml_signed2str(sval); - return wf(opaque, s, strlen(s)); -} - -extern const struct YamlIdStr enum_MixSources[]; - -#define r_mixSrcRaw nullptr - -static constexpr char closing_parenthesis[] = ")"; - -bool output_source_1_param(const char* src_prefix, size_t src_len, uint32_t n, - yaml_writer_func wf, void* opaque) -{ - if (!wf(opaque, src_prefix, src_len)) return false; - const char* str = yaml_unsigned2str(n); - if (!wf(opaque, str, strlen(str))) return false; - return true; -} - -#if STORAGE_CONVERSIONS < 221 -bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - const char* str = nullptr; - - if (val >= MIXSRC_FIRST_INPUT - && val <= MIXSRC_LAST_INPUT) { - - if (!wf(opaque, "I", 1)) - return false; - - str = yaml_unsigned2str(val - MIXSRC_FIRST_INPUT); - } -#if defined(LUA_INPUTS) - else if (val >= MIXSRC_FIRST_LUA - && val <= MIXSRC_LAST_LUA) { - - val -= MIXSRC_FIRST_LUA; - uint32_t script = val / MAX_SCRIPT_OUTPUTS; - - if (!output_source_1_param("lua(", 4, script, wf, opaque)) return false; - if (!wf(opaque, ",", 1)) return false; - - val = val % MAX_SCRIPT_OUTPUTS; - str = yaml_unsigned2str(val); - - if (!wf(opaque, str, strlen(str))) return false; - str = closing_parenthesis; - } -#endif - else if (val >= MIXSRC_FIRST_LOGICAL_SWITCH - && val <= MIXSRC_LAST_LOGICAL_SWITCH) { - - val -= MIXSRC_FIRST_LOGICAL_SWITCH; - if (!output_source_1_param("ls(", 3, val + 1, wf, opaque)) return false; - str = closing_parenthesis; - } - else if (val >= MIXSRC_FIRST_TRAINER - && val <= MIXSRC_LAST_TRAINER) { - - val -= MIXSRC_FIRST_TRAINER; - if (!output_source_1_param("tr(", 3, val, wf, opaque)) return false; - str = closing_parenthesis; - } - else if (val >= MIXSRC_FIRST_CH - && val <= MIXSRC_LAST_CH) { - - val -= MIXSRC_FIRST_CH; - if (!output_source_1_param("ch(", 3, val, wf, opaque)) return false; - str = closing_parenthesis; - } - else if (val >= MIXSRC_FIRST_GVAR - && val <= MIXSRC_LAST_GVAR) { - - val -= MIXSRC_FIRST_GVAR; - if (!output_source_1_param("gv(", 3, val, wf, opaque)) return false; - str = closing_parenthesis; - } - else if (val >= MIXSRC_FIRST_TELEM - && val <= MIXSRC_LAST_TELEM) { - - val -= MIXSRC_FIRST_TELEM; - uint8_t sign = val % 3; - val = val / 3; - if (!wf(opaque, "tele(", 5)) return false; - if (sign == 1) { - if (!wf(opaque, "-", 1)) return false; - } else if (sign == 2) { - if (!wf(opaque, "+", 1)) return false; - } - str = yaml_unsigned2str(val); - if (!wf(opaque, str, strlen(str))) return false; - str = closing_parenthesis; - } - else { - str = yaml_output_enum(val, enum_MixSources); - } - - if (str) { - return wf(opaque, str, strlen(str)); - } - - return true; -} -#endif - -#define r_vbat_min nullptr - -bool w_vbat_min(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - char* s = yaml_signed2str(yaml_to_signed(val,node->size) + 90); - return wf(opaque, s, strlen(s)); -} - -#define r_vbat_max nullptr - -bool w_vbat_max(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - char* s = yaml_signed2str(yaml_to_signed(val,node->size) + 120); - return wf(opaque, s, strlen(s)); -} - -#if defined(COLORLCD) -uint8_t select_zov(void* user, uint8_t* data, uint32_t bitoffs) -{ - data += bitoffs >> 3UL; - data -= offsetof(ZoneOptionValueTyped, value); - ZoneOptionValueEnum* p_zovt = (ZoneOptionValueEnum*)data; - if (*p_zovt > ZOV_Color) return 0; - return *p_zovt; -} - -#define r_zov_source nullptr - -bool w_zov_source(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - data += bitoffs >> 3UL; - auto p_val = reinterpret_cast(data); - return w_mixSrcRaw(nullptr, p_val->unsignedValue, wf, opaque); -} - -#include "colors.h" -#define r_zov_color nullptr - -bool w_zov_color(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - data += bitoffs >> 3UL; - auto p_val = reinterpret_cast(data); - - uint32_t color = (uint32_t)GET_RED(p_val->unsignedValue) << 16 | - (uint32_t)GET_GREEN(p_val->unsignedValue) << 8 | - (uint32_t)GET_BLUE(p_val->unsignedValue); - - if (!wf(opaque, "0x", 2)) return false; - return wf(opaque, yaml_rgb2hex(color), 3 * 2); -} -#endif - -#if STORAGE_CONVERSIONS < 221 -static uint8_t select_mod_type(void* user, uint8_t* data, uint32_t bitoffs) -{ - data += bitoffs >> 3UL; - data -= offsetof(ModuleData, ppm); - - ModuleData* mod_data = reinterpret_cast(data); - switch(mod_data->type) { - case MODULE_TYPE_NONE: - case MODULE_TYPE_PPM: - case MODULE_TYPE_DSM2: - case MODULE_TYPE_CROSSFIRE: - case MODULE_TYPE_GHOST: - return 1; - case MODULE_TYPE_MULTIMODULE: - return 2; - case MODULE_TYPE_XJT_PXX1: - case MODULE_TYPE_R9M_PXX1: - case MODULE_TYPE_R9M_LITE_PXX1: - return 3; - case MODULE_TYPE_SBUS: - return 4; - case MODULE_TYPE_ISRM_PXX2: - case MODULE_TYPE_R9M_PXX2: - case MODULE_TYPE_R9M_LITE_PXX2: - case MODULE_TYPE_R9M_LITE_PRO_PXX2: - case MODULE_TYPE_XJT_LITE_PXX2: - return 5; - case MODULE_TYPE_FLYSKY: - if (mod_data->subType == FLYSKY_SUBTYPE_AFHDS2A) - return 6; - if (mod_data->subType == FLYSKY_SUBTYPE_AFHDS3) - return 7; - } - return 0; -} -#endif - -uint8_t select_script_input(void* user, uint8_t* data, uint32_t bitoffs) -{ - // always use 'value' - return 0; -} - -uint8_t select_id1(void* user, uint8_t* data, uint32_t bitoffs) -{ - data += bitoffs >> 3UL; - const TelemetrySensor* sensor = (const TelemetrySensor*)data; - - if (sensor->type == TELEM_TYPE_CALCULATED - && sensor->persistent) - return 1; - - return 0; -} - -uint8_t select_id2(void* user, uint8_t* data, uint32_t bitoffs) -{ - data += bitoffs >> 3UL; - data -= 2 /* size of id1 union */; - const TelemetrySensor* sensor = (const TelemetrySensor*)data; - - if (sensor->type == TELEM_TYPE_CALCULATED) - return 2; // formula - - return 1; // instance -} - -uint8_t select_sensor_cfg(void* user, uint8_t* data, uint32_t bitoffs) -{ - data += bitoffs >> 3UL; - data -= offsetof(TelemetrySensor, param); - const TelemetrySensor* sensor = (const TelemetrySensor*)data; - - if (sensor->unit < UNIT_FIRST_VIRTUAL) { - if (sensor->type == TELEM_TYPE_CALCULATED) { - switch(sensor->formula) { - case TELEM_FORMULA_CELL: return 1; // cell - case TELEM_FORMULA_DIST: return 4; // dist - case TELEM_FORMULA_CONSUMPTION: return 3; // consumption - case TELEM_FORMULA_TOTALIZE: return 3; // consumption - default: return 2; // calc - } - } else { - return 0; // custom - } - } - - return 5; -} - -#if STORAGE_CONVERSIONS < 221 -#define r_calib nullptr - -static bool w_calib(void* user, yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(); - - const char* str = - yaml_output_enum(idx + MIXSRC_Rud, enum_MixSources); - return str ? wf(opaque, str, strlen(str)) : true; -} - -bool sw_write(void* user, yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(); - - const char* str = - yaml_output_enum(idx + MIXSRC_FIRST_SWITCH, enum_MixSources); - return str ? wf(opaque, str, strlen(str)) : true; -} - -bool w_stick_name(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(1); - - data -= offsetof(RadioData, switchConfig); - RadioData* rd = reinterpret_cast(data); - if (!wf(opaque, "\"", 1)) return false; - if (!wf(opaque, rd->anaNames[idx], - strnlen(rd->anaNames[idx], LEN_ANA_NAME))) - return false; - return wf(opaque, "\"", 1); -} - -bool stick_name_valid(void* user, uint8_t* data, uint32_t bitoffs) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(); - RadioData* rd = reinterpret_cast(data); - return rd->anaNames[idx][0] != '\0'; -} - -static const struct YamlNode struct_sticksConfig[] = { - YAML_IDX, - YAML_CUSTOM( "name", nullptr, w_stick_name), - YAML_END -}; - -bool sw_name_write(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(1); - - // data / bitoffs already incremented - data -= ((idx + 1) * 2) / 8; - data -= offsetof(RadioData, switchConfig); - - RadioData* rd = reinterpret_cast(data); - const char* str = rd->switchNames[idx]; - if (!wf(opaque, "\"", 1)) return false; - if (!wf(opaque, str, strnlen(str, LEN_SWITCH_NAME))) - return false; - return wf(opaque, "\"", 1); -} -#endif - -extern const struct YamlIdStr enum_SwitchConfig[]; -const struct YamlIdStr enum_SwitchConfig[] = { - { SWITCH_NONE, "none" }, - { SWITCH_TOGGLE, "toggle" }, - { SWITCH_2POS, "2pos" }, - { SWITCH_3POS, "3pos" }, - { 0, NULL } -}; - -#if STORAGE_CONVERSIONS < 221 -static const struct YamlNode struct_switchConfig[] = { - YAML_IDX_CUST( "sw", nullptr, sw_write ), - YAML_ENUM( "type", 2, enum_SwitchConfig), - YAML_CUSTOM( "name", nullptr, sw_name_write), - YAML_END -}; - -bool pot_write(void* user, yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(); - - const char* str = yaml_output_enum(idx + MIXSRC_FIRST_POT, enum_MixSources); - return str ? wf(opaque, str, strlen(str)) : true; -} - -bool pot_name_write(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(1); - - // data / bitoffs already incremented - data -= ((idx + 1) * 2) / 8; - data -= offsetof(RadioData, potsConfig); - - RadioData* rd = reinterpret_cast(data); - idx += NUM_STICKS; - const char* str = rd->anaNames[idx]; - if (!wf(opaque, "\"", 1)) return false; - if (!wf(opaque, str, strnlen(str, LEN_ANA_NAME))) - return false; - return wf(opaque, "\"", 1); -} - -static const struct YamlIdStr enum_PotConfig[] = { - { POT_NONE, "none" }, - { POT_WITH_DETENT, "with_detent" }, - { POT_MULTIPOS_SWITCH, "multipos_switch" }, - { POT_WITHOUT_DETENT, "without_detent" }, - { 0, NULL } -}; - -static const struct YamlNode struct_potConfig[] = { - YAML_IDX_CUST( "pot", nullptr, pot_write ), - YAML_ENUM( "type", 2, enum_PotConfig), - YAML_CUSTOM( "name", nullptr, pot_name_write), - YAML_END -}; - -bool slider_write(void* user, yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(); - - const char* str = - yaml_output_enum(idx + MIXSRC_FIRST_SLIDER, enum_MixSources); - return str ? wf(opaque, str, strlen(str)) : true; -} - -bool sl_name_write(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(1); - - // data / bitoffs already incremented -#if defined(PCBTARANIS) - // Please note: - // slidersConfig is defined as a bit-field member, - // so let's take the next field and subtract 1 - // - data -= (idx + 4 /* bitsize previous field (auxSerialMode) */ + 1) / 8; - data -= offsetof(RadioData, potsConfig) - 1; -#else - data -= (idx + 1) / 8; - data -= offsetof(RadioData, slidersConfig); -#endif - - RadioData* rd = reinterpret_cast(data); - idx += NUM_STICKS + STORAGE_NUM_POTS; - const char* str = rd->anaNames[idx]; - if (!wf(opaque, "\"", 1)) return false; - if (!wf(opaque, str, strnlen(str, LEN_ANA_NAME))) - return false; - return wf(opaque, "\"", 1); -} - -static const struct YamlIdStr enum_SliderConfig[] = { - { SLIDER_NONE, "none" }, - { SLIDER_WITH_DETENT, "with_detent" }, - { 0, NULL } -}; - -static const struct YamlNode struct_sliderConfig[] = { - YAML_IDX_CUST( "sl", nullptr, slider_write ), - YAML_ENUM( "type", 1, enum_SliderConfig), - YAML_CUSTOM( "name", nullptr, sl_name_write), - YAML_END -}; - -extern const struct YamlIdStr enum_SwitchSources[]; - -#define r_swtchSrc nullptr - -static bool w_swtchSrc_unquoted(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque) -{ - int32_t sval = yaml_to_signed(val, node->size); - if (sval < 0) { - wf(opaque, "!", 1); - sval = abs(sval); - } - - const char* str = NULL; - if (sval >= SWSRC_FIRST_LOGICAL_SWITCH - && sval <= SWSRC_LAST_LOGICAL_SWITCH) { - - wf(opaque, "L", 1); - str = yaml_unsigned2str(sval - SWSRC_FIRST_LOGICAL_SWITCH + 1); - return wf(opaque,str, strlen(str)); - } -#if NUM_XPOTS > 0 - else if (sval >= SWSRC_FIRST_MULTIPOS_SWITCH - && sval <= SWSRC_LAST_MULTIPOS_SWITCH) { - - wf(opaque, "6P", 2); - - // pot #: start with 6P1 - sval -= SWSRC_FIRST_MULTIPOS_SWITCH; - str = yaml_unsigned2str(sval / XPOTS_MULTIPOS_COUNT); - wf(opaque,str, strlen(str)); - - // position - str = yaml_unsigned2str(sval % XPOTS_MULTIPOS_COUNT); - return wf(opaque,str, strlen(str)); - } -#endif - else if (sval >= SWSRC_FIRST_FLIGHT_MODE - && sval <= SWSRC_LAST_FLIGHT_MODE) { - - wf(opaque, "FM", 2); - str = yaml_unsigned2str(sval - SWSRC_FIRST_FLIGHT_MODE); - return wf(opaque,str, strlen(str)); - } - else if (sval >= SWSRC_FIRST_SENSOR - && sval <= SWSRC_LAST_SENSOR) { - - wf(opaque, "T", 1); - str = yaml_unsigned2str(sval - SWSRC_FIRST_SENSOR + 1); - return wf(opaque,str, strlen(str)); - } - - str = yaml_output_enum(sval, enum_SwitchSources); - return wf(opaque, str, strlen(str)); -} - -static bool w_swtchSrc(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - if (!wf(opaque,"\"",1) - || !w_swtchSrc_unquoted(node, val, wf, opaque) - || !wf(opaque,"\"",1)) - return false; - return true; -} -#endif - -bool cfn_is_active(void* user, uint8_t* data, uint32_t bitoffs) -{ - data += bitoffs >> 3UL; - return ((CustomFunctionData*)data)->swtch; -} - -bool gvar_is_active(void* user, uint8_t* data, uint32_t bitoffs) -{ - // TODO: no need to output 0 values for FM0 - gvar_t* gvar = (gvar_t*)(data + (bitoffs>>3UL)); - return *gvar != GVAR_MAX+1; -} - -bool fmd_is_active(void* user, uint8_t* data, uint32_t bitoffs) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(); - - // FM0 defaults to all 0 - if (idx == 0) { - return !yaml_is_zero(data, bitoffs, sizeof(FlightModeData) << 3UL); - } - - // assumes gvars array is last - bool is_active = !yaml_is_zero(data, bitoffs, offsetof(FlightModeData, gvars) << 3UL); - - data += bitoffs >> 3UL; - FlightModeData* fmd = (FlightModeData*)(data); - for (uint8_t i=0; igvars[i] != GVAR_MAX+1; // FM0 -> default - } - - return is_active; -} - -bool swash_is_active(void* user, uint8_t* data, uint32_t bitoffs) -{ - auto swashR = reinterpret_cast(data + (bitoffs >> 3UL)); - return swashR->type | swashR->value; -} - -#define r_swtchWarn nullptr - -#if defined(COLORLCD) -bool w_swtchWarn(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - for (int i = 0; i < STORAGE_NUM_SWITCHES; i++) { - //if (SWITCH_EXISTS(i)) { - - // decode check state - // -> 3 bits per switch - auto state = (val >> (3*i)) & 0x07; - - // state == 0 -> no check - // state == 1 -> UP - // state == 2 -> MIDDLE - // state == 3 -> DOWN - char swtchWarn[2] = {getRawSwitchFromIdx(i), 0}; - - switch (state) { - case 0: - break; - case 1: - swtchWarn[1] = 'u'; - break; - case 2: - swtchWarn[1] = '-'; - break; - case 3: - swtchWarn[1] = 'd'; - break; - default: - // this should never happen - swtchWarn[1] = 'x'; - break; - } - - if (swtchWarn[1] != 0) { - if (!wf(opaque, swtchWarn, 2)) { - return false; - } - } - //} - } - - return true; -} -#else -bool w_swtchWarn(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - data += (bitoffs >> 3UL); - - // switchWarningState - swarnstate_t states = *(swarnstate_t*)data; - data += sizeof(swarnstate_t); - - // switchWarningEnable - swarnenable_t enables = *(swarnenable_t*)data; - - for (int i = 0; i < STORAGE_NUM_SWITCHES; i++) { - // decode check state - // -> 2 bits per switch + enable - swarnenable_t en = (enables >> i) & 0x01; - if (en) continue; - - // state == 0 -> no check - // state == 1 -> UP - // state == 2 -> MIDDLE - // state == 3 -> DOWN - char swtchWarn[2] = {(char)('A' + i), 0}; - - uint8_t state = (states >> (2 * i)) & 0x03; - switch (state) { - case 0: - swtchWarn[1] = 'u'; - break; - case 1: - swtchWarn[1] = '-'; - break; - case 2: - swtchWarn[1] = 'd'; - break; - default: - // this should never happen - swtchWarn[1] = 'x'; - break; - } - - if (swtchWarn[1] != 0) { - if (!wf(opaque, swtchWarn, 2)) { - return false; - } - } - } - - return true; -} -#endif - -#if STORAGE_CONVERSIONS < 221 -extern const struct YamlIdStr enum_BeeperMode[]; - -#define r_beeperMode nullptr - -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)); -} -#endif - -#define r_5pos nullptr - -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)); -} - -#define r_vol nullptr - -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)); -} - -#define r_spPitch nullptr - -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)); -} - -#define r_vPitch nullptr - -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)); -} - -const struct YamlIdStr enum_TrainerMode[] = { -#if defined(PCBNV14) - { TRAINER_MODE_OFF, "OFF" }, -#endif - { TRAINER_MODE_MASTER_TRAINER_JACK, "MASTER_TRAINER_JACK" }, - { TRAINER_MODE_SLAVE, "SLAVE" }, -#if defined(PCBTARANIS) || defined(PCBNV14) - { TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE, "MASTER_SBUS_EXT" }, - { TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE, "MASTER_CPPM_EXT" }, -#endif -#if defined(PCBTARANIS) || defined(AUX_SERIAL) || defined(AUX2_SERIAL) - { TRAINER_MODE_MASTER_BATTERY_COMPARTMENT, "MASTER_BATT_COMP" }, -#endif - { TRAINER_MODE_MASTER_BLUETOOTH, "MASTER_BT" }, - { TRAINER_MODE_SLAVE_BLUETOOTH, "SLAVE_BT" }, - { TRAINER_MODE_MULTI, "MASTER_MULTI" }, - { 0, NULL } -}; - -#define r_trainerMode nullptr - -#if STORAGE_CONVERSIONS < 221 -static bool w_trainerMode(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque) -{ - const char* str = nullptr; - str = yaml_output_enum(val, enum_TrainerMode); - - if (str) { - return wf(opaque, str, strlen(str)); - } - - return true; -} -#endif - -#if !defined(COLORLCD) -#define r_tele_screen_type nullptr - -const char* _tele_screen_type_lookup[] = { - "NONE", - "VALUES", - "BARS", - "SCRIPT", -}; - -bool w_tele_screen_type(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(1); - - data -= sizeof(TelemetryScreenData) * idx + 1; - uint8_t type = ((*data) >> (2 * idx)) & 0x03; - - const char* str = _tele_screen_type_lookup[type]; - return wf(opaque, str, strlen(str)); -} - -uint8_t select_tele_screen_data(void* user, uint8_t* data, uint32_t bitoffs) -{ - auto tw = reinterpret_cast(user); - uint16_t idx = tw->getElmts(2); - - auto md = reinterpret_cast(data); - uint8_t st = (md->screensType >> (2 * idx)) & 0x03; - switch(st){ - case TELEMETRY_SCREEN_TYPE_NONE: - break; - case TELEMETRY_SCREEN_TYPE_VALUES: - return 1; // lines - case TELEMETRY_SCREEN_TYPE_BARS: - return 0; // bars - case TELEMETRY_SCREEN_TYPE_SCRIPT: - return 2; - } - - TRACE("select_tele_screen_data(idx=%d)", idx); - return 0; -} -#endif - -#define r_tele_sensor nullptr - -bool w_tele_sensor(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque) -{ - if (!val) { - return wf(opaque, "none", 4); - } - - const char* str = yaml_unsigned2str(val-1); - return wf(opaque, str, strlen(str)); -} - -#define r_flightModes nullptr - -bool w_flightModes(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque) -{ - for (uint32_t i = 0; i < node->size; i++) { - uint32_t bit = (val >> i) & 1; - if (!wf(opaque, bit ? "1" : "0", 1)) return false; - } - return true; -} - -#define r_customFn nullptr - -extern const char* _func_reset_param_lookup[]; -const char* _func_reset_param_lookup[] = { - "Tmr1","Tmr2","Tmr3","All","Tele" -}; - -extern const char* _func_failsafe_lookup[]; -const char* _func_failsafe_lookup[] = { - "Int","Ext" -}; - -// used in read routine as well -extern const char* _func_sound_lookup[]; -const char* _func_sound_lookup[] = { - "Bp1","Bp2","Bp3","Wrn1","Wrn2", - "Chee","Rata","Tick","Sirn","Ring", - "SciF","Robt","Chrp","Tada","Crck","Alrm" -}; -extern const uint8_t _func_sound_lookup_size = 16; - -// force external linkage -extern const char* _adjust_gvar_mode_lookup[]; -const char* _adjust_gvar_mode_lookup[] = { - "Cst", "Src", "GVar", "IncDec" -}; -extern const uint8_t _adjust_gvar_mode_lookup_size = 4; - -#if STORAGE_CONVERSIONS < 221 -bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - data += bitoffs >> 3UL; - data -= offsetof(CustomFunctionData, all); - - auto cfn = reinterpret_cast(data); - uint8_t func = CFN_FUNC(cfn); - - const char* str = nullptr; - bool add_comma = true; - if (!wf(opaque, "\"", 1)) return false; - - switch (func) { - case FUNC_OVERRIDE_CHANNEL: - str = yaml_unsigned2str(CFN_CH_INDEX(cfn)); // CH index - if (!wf(opaque, str, strlen(str))) return false; - if (!wf(opaque, ",", 1)) return false; - str = yaml_signed2str(CFN_PARAM(cfn)); // value - if (!wf(opaque, str, strlen(str))) return false; - break; - - case FUNC_TRAINER: { - int16_t value = CFN_CH_INDEX(cfn); - switch(value) { - case 0: - if (!wf(opaque, "sticks", 6)) return false; - break; - case NUM_STICKS + 1: - if (!wf(opaque, "chans", 5)) return false; - break; - default: - if (value > 0 && value < NUM_STICKS + 1) { - str = yaml_output_enum(value - 1 + MIXSRC_FIRST_STICK, enum_MixSources); - if (str && !wf(opaque, str, strlen(str))) return false; - } - } - } break; - - case FUNC_RESET: - if (CFN_PARAM(cfn) < FUNC_RESET_PARAM_FIRST_TELEM) { - // Tmr1,Tmr2,Tmr3,All - str = _func_reset_param_lookup[CFN_PARAM(cfn)]; - } else { - // sensor index - str = yaml_unsigned2str(CFN_PARAM(cfn) - FUNC_RESET_PARAM_FIRST_TELEM); - } - if (!wf(opaque, str, strlen(str))) return false; - break; - - case FUNC_VOLUME: - case FUNC_BACKLIGHT: - case FUNC_PLAY_VALUE: - if (!w_mixSrcRaw(nullptr, CFN_PARAM(cfn), wf, opaque)) return false; - break; - - case FUNC_PLAY_SOUND: - // Bp1,Bp2,Bp3,Wrn1,Wrn2,Chee,Rata,Tick,Sirn,Ring,SciF,Robt,Chrp,Tada,Crck,Alrm - str = _func_sound_lookup[CFN_PARAM(cfn)]; - if (!wf(opaque, str, strlen(str))) return false; - break; - - case FUNC_PLAY_TRACK: - case FUNC_BACKGND_MUSIC: - case FUNC_PLAY_SCRIPT: - if (!wf(opaque, cfn->play.name, strnlen(cfn->play.name, LEN_FUNCTION_NAME))) - return false; - break; - - case FUNC_SET_TIMER: - // Tmr1,Tmr2,Tmr3 - str = _func_reset_param_lookup[CFN_TIMER_INDEX(cfn)]; - if (!wf(opaque, str, strlen(str))) return false; - if (!wf(opaque,",",1)) return false; - str = yaml_unsigned2str(CFN_PARAM(cfn)); - if (!wf(opaque, str, strlen(str))) return false; - break; - - case FUNC_SET_FAILSAFE: - // Int,Ext - str = _func_failsafe_lookup[CFN_PARAM(cfn)]; - if (!wf(opaque, str, strlen(str))) return false; - break; - - case FUNC_HAPTIC: - case FUNC_LOGS: // 10th of seconds - str = yaml_unsigned2str(CFN_PARAM(cfn)); - if (!wf(opaque, str, strlen(str))) return false; - break; - - case FUNC_ADJUST_GVAR: - str = yaml_unsigned2str(CFN_GVAR_INDEX(cfn)); // GVAR index - if (!wf(opaque, str, strlen(str))) return false; - if (!wf(opaque,",",1)) return false; - - // output CFN_GVAR_MODE - str = _adjust_gvar_mode_lookup[CFN_GVAR_MODE(cfn)]; - if (!wf(opaque, str, strlen(str))) return false; - if (!wf(opaque,",",1)) return false; - - // output param - switch(CFN_GVAR_MODE(cfn)) { - case FUNC_ADJUST_GVAR_CONSTANT: - case FUNC_ADJUST_GVAR_INCDEC: - str = yaml_signed2str(CFN_PARAM(cfn)); - if (!wf(opaque, str, strlen(str))) return false; - break; - case FUNC_ADJUST_GVAR_SOURCE: - if (!w_mixSrcRaw(nullptr, CFN_PARAM(cfn), wf, opaque)) return false; - break; - case FUNC_ADJUST_GVAR_GVAR: - if (!w_mixSrcRaw(nullptr, CFN_PARAM(cfn) + MIXSRC_FIRST_GVAR, wf, opaque)) return false; - break; - } - break; - - default: - add_comma = false; - break; - } - - if (HAS_ENABLE_PARAM(func)) { - if (add_comma) { - // "," - if (!wf(opaque,",",1)) return false; - } - // "0/1" - if (!wf(opaque,CFN_ACTIVE(cfn) ? "1":"0",1)) return false; - } else if (HAS_REPEAT_PARAM(func)) { - if (add_comma) { - // "," - if (!wf(opaque,",",1)) return false; - } - if (CFN_PLAY_REPEAT(cfn) == 0) { - // "1x" - if (!wf(opaque,"1x",2)) return false; - } else if (CFN_PLAY_REPEAT(cfn) == CFN_PLAY_REPEAT_NOSTART) { - // "!1x" - if (!wf(opaque,"!1x",3)) return false; - } else { - // repeat time in seconds - str = yaml_unsigned2str(CFN_PLAY_REPEAT(cfn) * CFN_PLAY_REPEAT_MUL); - if (!wf(opaque, str, strlen(str))) return false; - } - } - if (!wf(opaque, "\"", 1)) return false; - return true; -} - -#define r_logicSw nullptr - -static const struct YamlNode _ls_node_v1 = YAML_PADDING(10); -static const struct YamlNode _ls_node_v2 = YAML_PADDING(16); - -bool w_logicSw(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - data += bitoffs >> 3UL; - data -= sizeof(LogicalSwitchData::func); - if (!wf(opaque,"\"",1)) return false; - - const char* str = nullptr; - auto ls = reinterpret_cast(data); - switch(lswFamily(ls->func)) { - - case LS_FAMILY_BOOL: - case LS_FAMILY_STICKY: - if (!w_swtchSrc_unquoted(&_ls_node_v1, ls->v1, wf, opaque)) return false; - if (!wf(opaque,",",1)) return false; - if (!w_swtchSrc_unquoted(&_ls_node_v2, ls->v2, wf, opaque)) return false; - break; - - case LS_FAMILY_EDGE: - if (!w_swtchSrc_unquoted(&_ls_node_v1, ls->v1, wf, opaque)) return false; - if (!wf(opaque,",",1)) return false; - str = yaml_unsigned2str(lswTimerValue(ls->v2)); - if (!wf(opaque,str,strlen(str))) return false; - if (!wf(opaque,",",1)) return false; - if (ls->v3 < 0) { - if (!wf(opaque,"<",1)) return false; - } else if(ls->v3 == 0) { - if (!wf(opaque,"-",1)) return false; - } else { - str = yaml_unsigned2str(lswTimerValue(ls->v2 + ls->v3)); - if (!wf(opaque, str, strlen(str))) return false; - } - break; - - case LS_FAMILY_COMP: - if (!w_mixSrcRaw(nullptr, ls->v1, wf, opaque)) return false; - if (!wf(opaque,",",1)) return false; - if (!w_mixSrcRaw(nullptr, ls->v2, wf, opaque)) return false; - break; - - case LS_FAMILY_TIMER: - str = yaml_unsigned2str(lswTimerValue(ls->v1)); - if (!wf(opaque,str,strlen(str))) return false; - if (!wf(opaque,",",1)) return false; - str = yaml_unsigned2str(lswTimerValue(ls->v2)); - if (!wf(opaque,str,strlen(str))) return false; - break; - - default: - if (!w_mixSrcRaw(nullptr, ls->v1, wf, opaque)) return false; - if (!wf(opaque,",",1)) return false; - // TODO?: ls->v1 <= MIXSRC_LAST_CH ? calc100toRESX(ls->v2) : ls->v2 - str = yaml_signed2str(ls->v2); - if (!wf(opaque,str,strlen(str))) return false; - break; - } - - if (!wf(opaque,"\"",1)) return false; - return true; -} - -#define r_thrSrc nullptr - -int16_t throttleSource2Source_v220(int16_t thrSrc) -{ - if (thrSrc == 0) return (int16_t)MIXSRC_Thr; - if (--thrSrc < NUM_POTS + NUM_SLIDERS) - return (int16_t)(thrSrc + MIXSRC_FIRST_POT); - return (int16_t)(thrSrc - (NUM_POTS + NUM_SLIDERS) + MIXSRC_FIRST_CH); -} - -static bool w_thrSrc(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - auto src = throttleSource2Source_v220(val); - return w_mixSrcRaw(nullptr, src, wf, opaque); -} -#endif - -// Force external linkage -extern const struct YamlIdStr enum_XJT_Subtypes[]; -extern const struct YamlIdStr enum_ISRM_Subtypes[]; -extern const struct YamlIdStr enum_R9M_Subtypes[]; -extern const struct YamlIdStr enum_FLYSKY_Subtypes[]; -extern const struct YamlIdStr enum_DSM2_Subtypes[]; - -const struct YamlIdStr enum_XJT_Subtypes[] = { - { MODULE_SUBTYPE_PXX1_ACCST_D16, "D16" }, - { MODULE_SUBTYPE_PXX1_ACCST_D8, "D8" }, - { MODULE_SUBTYPE_PXX1_ACCST_LR12, "LR12" }, - { 0, NULL } -}; - -const struct YamlIdStr enum_ISRM_Subtypes[] = { - { MODULE_SUBTYPE_ISRM_PXX2_ACCESS, "ACCESS" }, - { MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, "D16" }, - // unused !!! - // { MODULE_SUBTYPE_ISRM_PXX2_ACCST_LR12, "LR12" }, - // { MODULE_SUBTYPE_ISRM_PXX2_ACCST_D8, "D8" }, - { 0, NULL } -}; - -const struct YamlIdStr enum_R9M_Subtypes[] = { - { MODULE_SUBTYPE_R9M_FCC, "FCC" }, - { MODULE_SUBTYPE_R9M_EU, "EU" }, - { MODULE_SUBTYPE_R9M_EUPLUS, "EUPLUS" }, - { MODULE_SUBTYPE_R9M_AUPLUS, "AUPLUS" }, - { 0, NULL } -}; - -const struct YamlIdStr enum_FLYSKY_Subtypes[] = { - { FLYSKY_SUBTYPE_AFHDS3, "AFHDS3" }, - { FLYSKY_SUBTYPE_AFHDS2A, "AFHDS2A" }, - { 0, NULL } -}; - -const struct YamlIdStr enum_DSM2_Subtypes[] = { - { 0, "LP45" }, - { 1, "DSM2" }, - { 2, "DSMX" }, - { 0, NULL } -}; - -#define r_modSubtype nullptr - -bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque) -{ - // rfProtocol + subType, depending on the module - data += bitoffs >> 3UL; - data -= offsetof(ModuleData, channelsStart); - - const char* str = nullptr; - auto md = reinterpret_cast(data); - int32_t val = md->subType; - if (md->type == MODULE_TYPE_XJT_PXX1 || md->type == MODULE_TYPE_XJT_LITE_PXX2) { - str = yaml_output_enum(val, enum_XJT_Subtypes); - } else if (md->type == MODULE_TYPE_ISRM_PXX2) { - str = yaml_output_enum(val, enum_ISRM_Subtypes); - } else if (md->type == MODULE_TYPE_R9M_PXX1 || md->type == MODULE_TYPE_R9M_LITE_PXX1) { - str = yaml_output_enum(val, enum_R9M_Subtypes); - } else if (md->type == MODULE_TYPE_FLYSKY) { - str = yaml_output_enum(val, enum_FLYSKY_Subtypes); - } else if (md->type == MODULE_TYPE_MULTIMODULE) { -#if defined(MULTIMODULE) - // Use type/subType by the book (see MPM documentation) - // TODO: remove that crappy translation and use the MPM - // data as-is (no FrSky special casing) - int type = md->getMultiProtocol() + 1; - int subtype = val; - convertEtxProtocolToMulti(&type, &subtype); - - // output "[type],[subtype]" - str = yaml_unsigned2str(type); - if (!wf(opaque, str, strlen(str))) return false; - if (!wf(opaque, ",", 1)) return false; - str = yaml_unsigned2str(subtype); -#endif - } else if (md->type == MODULE_TYPE_DSM2) { - str = yaml_output_enum(md->rfProtocol, enum_DSM2_Subtypes); - } else { - str = yaml_unsigned2str(val); - } - - if (str && !wf(opaque, str, strlen(str))) - return false; - - return true; -} - -#define r_channelsCount nullptr - -bool w_channelsCount(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) -{ - // offset 8 - int32_t sval = yaml_to_signed(val, node->size) + 8; - const char* str = yaml_signed2str(sval); - return wf(opaque,str,strlen(str)); -} - -// force storage class -extern const struct YamlIdStr enum_UartModes[]; diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_nv14.cpp deleted file mode 100644 index 1b12702e3d2..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_nv14.cpp +++ /dev/null @@ -1,893 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { FUNC_DISABLE_TOUCH, "DISABLE_TOUCH" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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_TimerModes[] = { - { TMRMODE_OFF, "OFF" }, - { TMRMODE_ON, "ON" }, - { TMRMODE_START, "START" }, - { TMRMODE_THR, "THR" }, - { TMRMODE_THR_REL, "THR_REL" }, - { TMRMODE_THR_START, "THR_START" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 16 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 48 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - 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_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[] = { - 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_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 9, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ENUM("aux2SerialMode", 4, enum_UartModes), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), - YAML_ARRAY("slidersConfig", 1, 8, struct_sliderConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 216 ), - 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_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 15), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_STRING("bitmap", 14), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 10), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_UNSIGNED( "flysky_telemetry", 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode struct_string_32[] = { - YAML_IDX, - YAML_STRING("val", 4), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -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_STRING("widgetName", 12), - YAML_STRUCT("widgetData", 480, struct_WidgetPersistentData, NULL), - YAML_END -}; -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_STRING("LayoutId", 10), - YAML_STRUCT("layoutData", 6720, struct_LayoutPersistentData, NULL), - YAML_END -}; -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", 248, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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", 72, 64, struct_CustomFunctionData, cfn_is_active), - YAML_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 320, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - 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_CUST( "rssiSource", 8, r_tele_sensor, w_tele_sensor ), - YAML_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("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_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", 248, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp deleted file mode 100644 index 5d02e2cd77d..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_t12.cpp +++ /dev/null @@ -1,862 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_t8.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_t8.cpp deleted file mode 100644 index 3b7452e96c6..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_t8.cpp +++ /dev/null @@ -1,862 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_tlite.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_tlite.cpp deleted file mode 100644 index 3b7452e96c6..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_tlite.cpp +++ /dev/null @@ -1,862 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_tx12.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_tx12.cpp deleted file mode 100644 index 366acd3da82..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_tx12.cpp +++ /dev/null @@ -1,862 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_tx12mk2.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_tx12mk2.cpp deleted file mode 100644 index 11a53480fc0..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_tx12mk2.cpp +++ /dev/null @@ -1,854 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x10.cpp deleted file mode 100644 index db2bd42cbdf..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x10.cpp +++ /dev/null @@ -1,910 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { FUNC_DISABLE_TOUCH, "DISABLE_TOUCH" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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_TimerModes[] = { - { TMRMODE_OFF, "OFF" }, - { TMRMODE_ON, "ON" }, - { TMRMODE_START, "START" }, - { TMRMODE_THR, "THR" }, - { TMRMODE_THR_REL, "THR_REL" }, - { TMRMODE_THR_START, "THR_START" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_S1, "S1" }, - { MIXSRC_6POS, "6POS" }, - { MIXSRC_S2, "S2" }, - { MIXSRC_EXT1, "EXT1" }, - { MIXSRC_EXT2, "EXT2" }, - { MIXSRC_LS, "LS" }, - { MIXSRC_RS, "RS" }, - { MIXSRC_MOUSE1, "MOUSE1" }, - { MIXSRC_MOUSE2, "MOUSE2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_TrimT5, "TrimT5" }, - { MIXSRC_TrimT6, "TrimT6" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_TrimT5Down, "TrimT5Down" }, - { SWSRC_TrimT5Up, "TrimT5Up" }, - { SWSRC_TrimT6Down, "TrimT6Down" }, - { SWSRC_TrimT6Up, "TrimT6Up" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 16 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 48 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - 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_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[] = { - 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_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 15, struct_CalibData, NULL), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "vBatWarn", 8 ), - YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_ENUM("backlightMode", 3, enum_BacklightMode), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ENUM("aux2SerialMode", 4, enum_UartModes), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), - YAML_ARRAY("slidersConfig", 1, 8, struct_sliderConfig, nullptr), - YAML_PADDING( 240 ), - YAML_PADDING( 312 ), - 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_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 15), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_STRING("bitmap", 14), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 6, struct_trim_t, NULL), - YAML_STRING("name", 10), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode struct_string_32[] = { - YAML_IDX, - YAML_STRING("val", 4), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -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_STRING("widgetName", 12), - YAML_STRUCT("widgetData", 480, struct_WidgetPersistentData, NULL), - YAML_END -}; -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_STRING("LayoutId", 10), - YAML_STRUCT("layoutData", 6720, struct_LayoutPersistentData, NULL), - YAML_END -}; -static const struct YamlNode struct_TopBarPersistentData[] = { - YAML_ARRAY("zones", 576, 4, struct_ZonePersistentData, NULL), - YAML_ARRAY("options", 96, 1, struct_ZoneOptionValueTyped, NULL), - YAML_END -}; -static const struct YamlNode struct_ModelData[] = { - YAML_STRUCT("header", 248, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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", 72, 64, struct_CustomFunctionData, cfn_is_active), - YAML_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 352, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - 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_CUST( "rssiSource", 8, r_tele_sensor, w_tele_sensor ), - YAML_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 32, 32, struct_string_32, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 9, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL), - YAML_STRUCT("topbarData", 2400, struct_TopBarPersistentData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 248, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x12s.cpp deleted file mode 100644 index 41e00722ffd..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x12s.cpp +++ /dev/null @@ -1,910 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { FUNC_DISABLE_TOUCH, "DISABLE_TOUCH" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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_TimerModes[] = { - { TMRMODE_OFF, "OFF" }, - { TMRMODE_ON, "ON" }, - { TMRMODE_START, "START" }, - { TMRMODE_THR, "THR" }, - { TMRMODE_THR_REL, "THR_REL" }, - { TMRMODE_THR_START, "THR_START" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_S1, "S1" }, - { MIXSRC_6POS, "6POS" }, - { MIXSRC_S2, "S2" }, - { MIXSRC_S3, "S3" }, - { MIXSRC_S4, "S4" }, - { MIXSRC_LS, "LS" }, - { MIXSRC_RS, "RS" }, - { MIXSRC_MOUSE1, "MOUSE1" }, - { MIXSRC_MOUSE2, "MOUSE2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_TrimT5, "TrimT5" }, - { MIXSRC_TrimT6, "TrimT6" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_TrimT5Down, "TrimT5Down" }, - { SWSRC_TrimT5Up, "TrimT5Up" }, - { SWSRC_TrimT6Down, "TrimT6Down" }, - { SWSRC_TrimT6Up, "TrimT6Up" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 16 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 48 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - 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_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[] = { - 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_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 15, struct_CalibData, NULL), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "vBatWarn", 8 ), - YAML_SIGNED( "txVoltageCalibration", 8 ), - YAML_ENUM("backlightMode", 3, enum_BacklightMode), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ENUM("aux2SerialMode", 4, enum_UartModes), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 8, struct_potConfig, nullptr), - YAML_ARRAY("slidersConfig", 1, 8, struct_sliderConfig, nullptr), - YAML_PADDING( 240 ), - YAML_PADDING( 312 ), - 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_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 15), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_STRING("bitmap", 14), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 6, struct_trim_t, NULL), - YAML_STRING("name", 10), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode struct_string_32[] = { - YAML_IDX, - YAML_STRING("val", 4), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -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_STRING("widgetName", 12), - YAML_STRUCT("widgetData", 480, struct_WidgetPersistentData, NULL), - YAML_END -}; -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_STRING("LayoutId", 10), - YAML_STRUCT("layoutData", 6720, struct_LayoutPersistentData, NULL), - YAML_END -}; -static const struct YamlNode struct_TopBarPersistentData[] = { - YAML_ARRAY("zones", 576, 4, struct_ZonePersistentData, NULL), - YAML_ARRAY("options", 96, 1, struct_ZoneOptionValueTyped, NULL), - YAML_END -}; -static const struct YamlNode struct_ModelData[] = { - YAML_STRUCT("header", 248, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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", 72, 64, struct_CustomFunctionData, cfn_is_active), - YAML_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 352, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - 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_CUST( "rssiSource", 8, r_tele_sensor, w_tele_sensor ), - YAML_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 32, 32, struct_string_32, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 9, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL), - YAML_STRUCT("topbarData", 2400, struct_TopBarPersistentData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 248, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x7.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x7.cpp deleted file mode 100644 index 3b7452e96c6..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x7.cpp +++ /dev/null @@ -1,862 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x9d.cpp deleted file mode 100644 index 5241e7d0094..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x9d.cpp +++ /dev/null @@ -1,877 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { 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" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { 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" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_2[] = { - YAML_SIGNED( "val", 16 ), - YAML_UNSIGNED( "mode", 8 ), - YAML_UNSIGNED( "param", 8 ), - YAML_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - 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_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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 9, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - 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_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 16, struct_switchConfig, nullptr), - YAML_PADDING( 216 ), - YAML_PADDING( 216 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 12), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_STRING("bitmap", 10), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 10), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode struct_string_32[] = { - YAML_IDX, - YAML_STRING("val", 4), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 3, struct_LineDataSource, 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_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_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_ModelData[] = { - YAML_STRUCT("header", 192, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 320, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 48 ), - 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", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("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_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, 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_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x9e.cpp deleted file mode 100644 index aeaed279feb..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x9e.cpp +++ /dev/null @@ -1,917 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_POT3, "POT3" }, - { MIXSRC_POT4, "POT4" }, - { MIXSRC_SLIDER1, "SLIDER1" }, - { MIXSRC_SLIDER2, "SLIDER2" }, - { MIXSRC_SLIDER3, "SLIDER3" }, - { MIXSRC_SLIDER4, "SLIDER4" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SI, "SI" }, - { MIXSRC_SJ, "SJ" }, - { MIXSRC_SK, "SK" }, - { MIXSRC_SL, "SL" }, - { MIXSRC_SM, "SM" }, - { MIXSRC_SN, "SN" }, - { MIXSRC_SO, "SO" }, - { MIXSRC_SP, "SP" }, - { MIXSRC_SQ, "SQ" }, - { MIXSRC_SR, "SR" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_SI0, "SI0" }, - { SWSRC_SI1, "SI1" }, - { SWSRC_SI2, "SI2" }, - { SWSRC_SJ0, "SJ0" }, - { SWSRC_SJ1, "SJ1" }, - { SWSRC_SJ2, "SJ2" }, - { SWSRC_SK0, "SK0" }, - { SWSRC_SK1, "SK1" }, - { SWSRC_SK2, "SK2" }, - { SWSRC_SL0, "SL0" }, - { SWSRC_SL1, "SL1" }, - { SWSRC_SL2, "SL2" }, - { SWSRC_SM0, "SM0" }, - { SWSRC_SM1, "SM1" }, - { SWSRC_SM2, "SM2" }, - { SWSRC_SN0, "SN0" }, - { SWSRC_SN1, "SN1" }, - { SWSRC_SN2, "SN2" }, - { SWSRC_SO0, "SO0" }, - { SWSRC_SO1, "SO1" }, - { SWSRC_SO2, "SO2" }, - { SWSRC_SP0, "SP0" }, - { SWSRC_SP1, "SP1" }, - { SWSRC_SP2, "SP2" }, - { SWSRC_SQ0, "SQ0" }, - { SWSRC_SQ1, "SQ1" }, - { SWSRC_SQ2, "SQ2" }, - { SWSRC_SR0, "SR0" }, - { SWSRC_SR1, "SR1" }, - { SWSRC_SR2, "SR2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_2[] = { - YAML_SIGNED( "val", 16 ), - YAML_UNSIGNED( "mode", 8 ), - YAML_UNSIGNED( "param", 8 ), - YAML_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - 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_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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 64 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 32, struct_switchConfig, nullptr), - YAML_PADDING( 432 ), - YAML_PADDING( 288 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 12), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_STRING("bitmap", 10), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 8), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 10), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode struct_string_32[] = { - YAML_IDX, - YAML_STRING("val", 4), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 3, struct_LineDataSource, 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_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_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_ModelData[] = { - YAML_STRUCT("header", 192, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 104, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 320, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 96 ), - 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", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 32, 32, struct_string_32, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 8, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_UNSIGNED( "toplcdTimer", 8 ), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, 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_ARRAY("timers", 128, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x9lite.cpp deleted file mode 100644 index d65fb41acb4..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x9lite.cpp +++ /dev/null @@ -1,847 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 5, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 120 ), - YAML_PADDING( 120 ), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 1, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_x9lites.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_x9lites.cpp deleted file mode 100644 index 903bf0b7f53..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_x9lites.cpp +++ /dev/null @@ -1,857 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 5, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 168 ), - YAML_PADDING( 120 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 1, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_xlite.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_xlite.cpp deleted file mode 100644 index f42f557834d..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_xlite.cpp +++ /dev/null @@ -1,854 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 144 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_xlites.cpp deleted file mode 100644 index fc0febc7dec..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_xlites.cpp +++ /dev/null @@ -1,858 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_GYRO1, "GYRO1" }, - { MIXSRC_GYRO2, "GYRO2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_PADDING( 1 ), - 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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 144 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "gyroMax", 8 ), - YAML_SIGNED( "gyroOffset", 8 ), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState", NULL, w_swtchWarn ), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_zorro.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_zorro.cpp deleted file mode 100644 index 4a655962a0d..00000000000 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_zorro.cpp +++ /dev/null @@ -1,862 +0,0 @@ -// generated by generate_yaml.py - -// -// 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TrainerMultiplex[] = { - { TRAINER_OFF, "OFF" }, - { TRAINER_ADD, "ADD" }, - { TRAINER_REPL, "REPL" }, - { 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_BluetoothModes[] = { - { BLUETOOTH_OFF, "OFF" }, - { BLUETOOTH_TELEMETRY, "TELEMETRY" }, - { BLUETOOTH_TRAINER, "TRAINER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_Functions[] = { - { FUNC_OVERRIDE_CHANNEL, "OVERRIDE_CHANNEL" }, - { FUNC_TRAINER, "TRAINER" }, - { FUNC_INSTANT_TRIM, "INSTANT_TRIM" }, - { FUNC_RESET, "RESET" }, - { FUNC_SET_TIMER, "SET_TIMER" }, - { FUNC_ADJUST_GVAR, "ADJUST_GVAR" }, - { FUNC_VOLUME, "VOLUME" }, - { FUNC_SET_FAILSAFE, "SET_FAILSAFE" }, - { FUNC_RANGECHECK, "RANGECHECK" }, - { FUNC_BIND, "BIND" }, - { FUNC_PLAY_SOUND, "PLAY_SOUND" }, - { FUNC_PLAY_TRACK, "PLAY_TRACK" }, - { FUNC_PLAY_VALUE, "PLAY_VALUE" }, - { FUNC_RESERVE4, "RESERVE4" }, - { FUNC_PLAY_SCRIPT, "PLAY_SCRIPT" }, - { FUNC_RESERVE5, "RESERVE5" }, - { FUNC_BACKGND_MUSIC, "BACKGND_MUSIC" }, - { FUNC_BACKGND_MUSIC_PAUSE, "BACKGND_MUSIC_PAUSE" }, - { FUNC_VARIO, "VARIO" }, - { FUNC_HAPTIC, "HAPTIC" }, - { FUNC_LOGS, "LOGS" }, - { FUNC_BACKLIGHT, "BACKLIGHT" }, - { FUNC_SCREENSHOT, "SCREENSHOT" }, - { FUNC_RACING_MODE, "RACING_MODE" }, - { 0, NULL } -}; -const struct YamlIdStr enum_UartModes[] = { - { UART_MODE_NONE, "MODE_NONE" }, - { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, - { UART_MODE_TELEMETRY, "MODE_TELEMETRY" }, - { UART_MODE_SBUS_TRAINER, "MODE_SBUS_TRAINER" }, - { UART_MODE_LUA, "MODE_LUA" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixerMultiplex[] = { - { MLTPX_ADD, "ADD" }, - { MLTPX_MUL, "MUL" }, - { MLTPX_REPL, "REPL" }, - { 0, NULL } -}; -const struct YamlIdStr enum_MixSources[] = { - { MIXSRC_NONE, "NONE" }, - { MIXSRC_Rud, "Rud" }, - { MIXSRC_Ele, "Ele" }, - { MIXSRC_Thr, "Thr" }, - { MIXSRC_Ail, "Ail" }, - { MIXSRC_POT1, "POT1" }, - { MIXSRC_POT2, "POT2" }, - { MIXSRC_MAX, "MAX" }, - { MIXSRC_CYC1, "CYC1" }, - { MIXSRC_CYC2, "CYC2" }, - { MIXSRC_CYC3, "CYC3" }, - { MIXSRC_TrimRud, "TrimRud" }, - { MIXSRC_TrimEle, "TrimEle" }, - { MIXSRC_TrimThr, "TrimThr" }, - { MIXSRC_TrimAil, "TrimAil" }, - { MIXSRC_SA, "SA" }, - { MIXSRC_SB, "SB" }, - { MIXSRC_SC, "SC" }, - { MIXSRC_SD, "SD" }, - { MIXSRC_SE, "SE" }, - { MIXSRC_SF, "SF" }, - { MIXSRC_SG, "SG" }, - { MIXSRC_SH, "SH" }, - { MIXSRC_SW1, "SW1" }, - { MIXSRC_CH1, "CH1" }, - { MIXSRC_CH2, "CH2" }, - { MIXSRC_CH3, "CH3" }, - { MIXSRC_CH4, "CH4" }, - { MIXSRC_CH5, "CH5" }, - { MIXSRC_CH6, "CH6" }, - { MIXSRC_CH7, "CH7" }, - { MIXSRC_CH8, "CH8" }, - { MIXSRC_CH9, "CH9" }, - { MIXSRC_CH10, "CH10" }, - { MIXSRC_CH11, "CH11" }, - { MIXSRC_CH12, "CH12" }, - { MIXSRC_CH13, "CH13" }, - { MIXSRC_CH14, "CH14" }, - { MIXSRC_CH15, "CH15" }, - { MIXSRC_CH16, "CH16" }, - { 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" }, - { 0, NULL } -}; -const struct YamlIdStr enum_LogicalSwitchesFunctions[] = { - { LS_FUNC_NONE, "FUNC_NONE" }, - { LS_FUNC_VEQUAL, "FUNC_VEQUAL" }, - { LS_FUNC_VALMOSTEQUAL, "FUNC_VALMOSTEQUAL" }, - { LS_FUNC_VPOS, "FUNC_VPOS" }, - { LS_FUNC_VNEG, "FUNC_VNEG" }, - { LS_FUNC_RANGE, "FUNC_RANGE" }, - { LS_FUNC_APOS, "FUNC_APOS" }, - { LS_FUNC_ANEG, "FUNC_ANEG" }, - { LS_FUNC_AND, "FUNC_AND" }, - { LS_FUNC_OR, "FUNC_OR" }, - { LS_FUNC_XOR, "FUNC_XOR" }, - { LS_FUNC_EDGE, "FUNC_EDGE" }, - { LS_FUNC_EQUAL, "FUNC_EQUAL" }, - { LS_FUNC_GREATER, "FUNC_GREATER" }, - { LS_FUNC_LESS, "FUNC_LESS" }, - { LS_FUNC_DIFFEGREATER, "FUNC_DIFFEGREATER" }, - { LS_FUNC_ADIFFEGREATER, "FUNC_ADIFFEGREATER" }, - { LS_FUNC_TIMER, "FUNC_TIMER" }, - { LS_FUNC_STICKY, "FUNC_STICKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwashType[] = { - { SWASH_TYPE_NONE, "TYPE_NONE" }, - { SWASH_TYPE_120, "TYPE_120" }, - { SWASH_TYPE_120X, "TYPE_120X" }, - { SWASH_TYPE_140, "TYPE_140" }, - { SWASH_TYPE_90, "TYPE_90" }, - { 0, NULL } -}; -const struct YamlIdStr enum_SwitchSources[] = { - { SWSRC_NONE, "NONE" }, - { SWSRC_SA0, "SA0" }, - { SWSRC_SA1, "SA1" }, - { SWSRC_SA2, "SA2" }, - { SWSRC_SB0, "SB0" }, - { SWSRC_SB1, "SB1" }, - { SWSRC_SB2, "SB2" }, - { SWSRC_SC0, "SC0" }, - { SWSRC_SC1, "SC1" }, - { SWSRC_SC2, "SC2" }, - { SWSRC_SD0, "SD0" }, - { SWSRC_SD1, "SD1" }, - { SWSRC_SD2, "SD2" }, - { SWSRC_SE0, "SE0" }, - { SWSRC_SE1, "SE1" }, - { SWSRC_SE2, "SE2" }, - { SWSRC_SF0, "SF0" }, - { SWSRC_SF1, "SF1" }, - { SWSRC_SF2, "SF2" }, - { SWSRC_SG0, "SG0" }, - { SWSRC_SG1, "SG1" }, - { SWSRC_SG2, "SG2" }, - { SWSRC_SH0, "SH0" }, - { SWSRC_SH1, "SH1" }, - { SWSRC_SH2, "SH2" }, - { SWSRC_TrimRudLeft, "TrimRudLeft" }, - { SWSRC_TrimRudRight, "TrimRudRight" }, - { SWSRC_TrimEleDown, "TrimEleDown" }, - { SWSRC_TrimEleUp, "TrimEleUp" }, - { SWSRC_TrimThrDown, "TrimThrDown" }, - { SWSRC_TrimThrUp, "TrimThrUp" }, - { SWSRC_TrimAilLeft, "TrimAilLeft" }, - { SWSRC_TrimAilRight, "TrimAilRight" }, - { SWSRC_SW1, "SW1" }, - { SWSRC_SW2, "SW2" }, - { SWSRC_ON, "ON" }, - { SWSRC_ONE, "ONE" }, - { SWSRC_TELEMETRY_STREAMING, "TELEMETRY_STREAMING" }, - { SWSRC_RADIO_ACTIVITY, "RADIO_ACTIVITY" }, - { SWSRC_OFF, "OFF" }, - { 0, NULL } -}; -const struct YamlIdStr enum_PotsWarnMode[] = { - { POTS_WARN_OFF, "WARN_OFF" }, - { POTS_WARN_MANUAL, "WARN_MANUAL" }, - { POTS_WARN_AUTO, "WARN_AUTO" }, - { 0, NULL } -}; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { 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_FLYSKY, "TYPE_FLYSKY" }, - { 0, NULL } -}; -const struct YamlIdStr enum_FailsafeModes[] = { - { FAILSAFE_NOT_SET, "NOT_SET" }, - { FAILSAFE_HOLD, "HOLD" }, - { FAILSAFE_CUSTOM, "CUSTOM" }, - { FAILSAFE_NOPULSES, "NOPULSES" }, - { FAILSAFE_RECEIVER, "RECEIVER" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorFormula[] = { - { TELEM_FORMULA_ADD, "FORMULA_ADD" }, - { TELEM_FORMULA_AVERAGE, "FORMULA_AVERAGE" }, - { TELEM_FORMULA_MIN, "FORMULA_MIN" }, - { TELEM_FORMULA_MAX, "FORMULA_MAX" }, - { TELEM_FORMULA_MULTIPLY, "FORMULA_MULTIPLY" }, - { TELEM_FORMULA_TOTALIZE, "FORMULA_TOTALIZE" }, - { TELEM_FORMULA_CELL, "FORMULA_CELL" }, - { TELEM_FORMULA_CONSUMPTION, "FORMULA_CONSUMPTION" }, - { TELEM_FORMULA_DIST, "FORMULA_DIST" }, - { 0, NULL } -}; -const struct YamlIdStr enum_TelemetrySensorType[] = { - { TELEM_TYPE_CUSTOM, "TYPE_CUSTOM" }, - { TELEM_TYPE_CALCULATED, "TYPE_CALCULATED" }, - { 0, NULL } -}; - -// -// Structs last -// - -static const struct YamlNode struct_CalibData[] = { - YAML_IDX_CUST("calib",r_calib,w_calib), - YAML_SIGNED( "mid", 16 ), - YAML_SIGNED( "spanNeg", 16 ), - YAML_SIGNED( "spanPos", 16 ), - YAML_END -}; -static const struct YamlNode struct_signed_16[] = { - YAML_IDX, - YAML_SIGNED( "val", 16 ), - YAML_END -}; -static const struct YamlNode struct_TrainerMix[] = { - YAML_IDX, - YAML_UNSIGNED( "srcChn", 6 ), - YAML_ENUM("mode", 2, enum_TrainerMultiplex), - YAML_SIGNED( "studWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_TrainerData[] = { - YAML_ARRAY("calib", 16, 4, struct_signed_16, NULL), - YAML_ARRAY("mix", 16, 4, struct_TrainerMix, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_1[] = { - 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_SIGNED( "spare", 32 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_3[] = { - YAML_SIGNED( "val1", 32 ), - YAML_SIGNED( "val2", 32 ), - YAML_END -}; -static const struct YamlNode union_anonymous_0_elmts[] = { - YAML_STRUCT("play", 48, struct_anonymous_1, NULL), - YAML_STRUCT("all", 64, struct_anonymous_2, NULL), - YAML_STRUCT("clear", 64, 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_CUSTOM("def",r_customFn,w_customFn), - YAML_PADDING( 64 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_string_24[] = { - YAML_IDX, - YAML_STRING("val", 3), - YAML_END -}; -static const struct YamlNode struct_RadioData[] = { - YAML_UNSIGNED( "version", 8 ), - YAML_CUSTOM("board",nullptr,w_board), - YAML_PADDING( 16 ), - YAML_ARRAY("calib", 48, 6, 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), - YAML_ENUM("antennaMode", 2, enum_AntennaModes), - YAML_UNSIGNED( "disableRtcWarning", 1 ), - YAML_UNSIGNED( "keysBacklight", 1 ), - YAML_PADDING( 1 ), - YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "fai", 1 ), - YAML_SIGNED_CUST( "beepMode", 2, r_beeperMode, w_beeperMode ), - YAML_UNSIGNED( "alarmsFlash", 1 ), - YAML_UNSIGNED( "disableMemoryWarning", 1 ), - YAML_UNSIGNED( "disableAlarmWarning", 1 ), - YAML_UNSIGNED( "stickMode", 2 ), - YAML_SIGNED( "timezone", 5 ), - YAML_UNSIGNED( "adjustRTC", 1 ), - YAML_UNSIGNED( "inactivityTimer", 8 ), - YAML_UNSIGNED( "telemetryBaudrate", 3 ), - YAML_SIGNED( "splashMode", 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_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_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 ), - YAML_UNSIGNED( "globalTimer", 32 ), - YAML_UNSIGNED( "bluetoothBaudrate", 4 ), - YAML_ENUM("bluetoothMode", 4, enum_BluetoothModes), - YAML_UNSIGNED( "countryCode", 2 ), - YAML_SIGNED( "pwrOnSpeed", 3 ), - YAML_SIGNED( "pwrOffSpeed", 3 ), - YAML_UNSIGNED( "imperial", 1 ), - YAML_UNSIGNED( "jitterFilter", 1 ), - YAML_UNSIGNED( "disableRssiPoweroffAlarm", 1 ), - YAML_UNSIGNED( "USBMode", 2 ), - YAML_UNSIGNED( "jackMode", 2 ), - YAML_PADDING( 1 ), - YAML_STRING("ttsLanguage", 2), - 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_ENUM("auxSerialMode", 4, enum_UartModes), - YAML_ARRAY("slidersConfig", 1, 4, struct_sliderConfig, nullptr), - YAML_ARRAY("potsConfig", 2, 4, struct_potConfig, nullptr), - YAML_UNSIGNED( "backlightColor", 8 ), - YAML_UNSIGNED( "switchUnlockStates", 16 ), - YAML_ARRAY("sticksConfig", 0, 4, struct_sticksConfig, stick_name_valid), - YAML_ARRAY("switchConfig", 2, 8, struct_switchConfig, nullptr), - YAML_PADDING( 192 ), - YAML_PADDING( 144 ), - YAML_PADDING( 8 ), - YAML_STRING("bluetoothName", 10), - YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "uartSampleMode", 2 ), - YAML_END -}; -static const struct YamlNode struct_unsigned_8[] = { - YAML_IDX, - YAML_UNSIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_ModelHeader[] = { - YAML_STRING("name", 10), - YAML_ARRAY("modelId", 8, 2, struct_unsigned_8, NULL), - YAML_END -}; -static const struct YamlNode struct_TimerData[] = { - YAML_IDX, - YAML_UNSIGNED( "start", 22 ), - YAML_SIGNED_CUST( "swtch", 10, r_swtchSrc, w_swtchSrc ), - YAML_SIGNED( "value", 22 ), - YAML_ENUM("mode", 3, enum_TimerModes), - YAML_UNSIGNED( "countdownBeep", 2 ), - YAML_UNSIGNED( "minuteBeep", 1 ), - YAML_UNSIGNED( "persistent", 2 ), - YAML_SIGNED( "countdownStart", 2 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_CurveRef[] = { - YAML_UNSIGNED( "type", 8 ), - YAML_SIGNED_CUST( "value", 8, in_read_weight, in_write_weight ), - YAML_END -}; -static const struct YamlNode struct_MixData[] = { - YAML_SIGNED_CUST( "weight", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "destCh", 5 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED( "carryTrim", 1 ), - YAML_UNSIGNED( "mixWarn", 2 ), - YAML_ENUM("mltpx", 2, enum_MixerMultiplex), - YAML_PADDING( 1 ), - YAML_SIGNED_CUST( "offset", 14, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_UNSIGNED( "delayUp", 8 ), - YAML_UNSIGNED( "delayDown", 8 ), - YAML_UNSIGNED( "speedUp", 8 ), - YAML_UNSIGNED( "speedDown", 8 ), - YAML_STRING("name", 6), - YAML_END -}; -static const struct YamlNode struct_LimitData[] = { - YAML_IDX, - YAML_SIGNED_CUST( "min", 11, in_read_weight, in_write_weight ), - YAML_SIGNED_CUST( "max", 11, in_read_weight, in_write_weight ), - YAML_SIGNED( "ppmCenter", 10 ), - YAML_SIGNED_CUST( "offset", 11, in_read_weight, in_write_weight ), - YAML_UNSIGNED( "symetrical", 1 ), - YAML_UNSIGNED( "revert", 1 ), - YAML_PADDING( 3 ), - YAML_SIGNED( "curve", 8 ), - YAML_STRING("name", 4), - YAML_END -}; -static const struct YamlNode struct_ExpoData[] = { - YAML_UNSIGNED( "mode", 2 ), - YAML_UNSIGNED( "scale", 14 ), - YAML_UNSIGNED_CUST( "srcRaw", 10, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "carryTrim", 6 ), - YAML_UNSIGNED( "chn", 5 ), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_UNSIGNED_CUST( "flightModes", 9, r_flightModes, w_flightModes ), - YAML_SIGNED_CUST( "weight", 8, in_read_weight, in_write_weight ), - YAML_PADDING( 1 ), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "offset", 8, in_read_weight, in_write_weight ), - YAML_STRUCT("curve", 16, struct_CurveRef, NULL), - YAML_END -}; -static const struct YamlNode struct_CurveHeader[] = { - YAML_IDX, - YAML_UNSIGNED( "type", 1 ), - YAML_UNSIGNED( "smooth", 1 ), - YAML_SIGNED( "points", 6 ), - YAML_STRING("name", 3), - YAML_END -}; -static const struct YamlNode struct_signed_8[] = { - YAML_IDX, - YAML_SIGNED( "val", 8 ), - YAML_END -}; -static const struct YamlNode struct_LogicalSwitchData[] = { - YAML_IDX, - YAML_ENUM("func", 8, enum_LogicalSwitchesFunctions), - YAML_CUSTOM("def",r_logicSw,w_logicSw), - YAML_PADDING( 10 ), - YAML_PADDING( 10 ), - YAML_SIGNED_CUST( "andsw", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 1 ), - YAML_PADDING( 2 ), - YAML_PADDING( 16 ), - YAML_UNSIGNED( "delay", 8 ), - YAML_UNSIGNED( "duration", 8 ), - YAML_END -}; -static const struct YamlNode struct_SwashRingData[] = { - YAML_ENUM("type", 8, enum_SwashType), - YAML_UNSIGNED( "value", 8 ), - YAML_UNSIGNED_CUST( "collectiveSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "aileronSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_UNSIGNED_CUST( "elevatorSource", 8, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "collectiveWeight", 8 ), - YAML_SIGNED( "aileronWeight", 8 ), - YAML_SIGNED( "elevatorWeight", 8 ), - YAML_END -}; -static const struct YamlNode struct_trim_t[] = { - YAML_IDX, - YAML_SIGNED( "value", 11 ), - YAML_UNSIGNED( "mode", 5 ), - YAML_END -}; -static const struct YamlNode struct_FlightModeData[] = { - YAML_IDX, - YAML_ARRAY("trim", 16, 4, struct_trim_t, NULL), - YAML_STRING("name", 6), - YAML_SIGNED_CUST( "swtch", 9, r_swtchSrc, w_swtchSrc ), - YAML_PADDING( 7 ), - YAML_UNSIGNED( "fadeIn", 8 ), - YAML_UNSIGNED( "fadeOut", 8 ), - YAML_ARRAY("gvars", 16, 9, struct_signed_16, gvar_is_active), - YAML_END -}; -static const struct YamlNode struct_GVarData[] = { - YAML_IDX, - YAML_STRING("name", 3), - YAML_UNSIGNED( "min", 12 ), - YAML_UNSIGNED( "max", 12 ), - YAML_UNSIGNED( "popup", 1 ), - YAML_UNSIGNED( "prec", 1 ), - YAML_UNSIGNED( "unit", 2 ), - YAML_PADDING( 4 ), - YAML_END -}; -static const struct YamlNode struct_VarioData[] = { - YAML_UNSIGNED_CUST( "source", 7, r_tele_sensor, w_tele_sensor ), - YAML_UNSIGNED( "centerSilent", 1 ), - YAML_SIGNED( "centerMax", 8 ), - YAML_SIGNED( "centerMin", 8 ), - YAML_SIGNED( "min", 8 ), - YAML_SIGNED( "max", 8 ), - YAML_END -}; -static const struct YamlNode struct_RssiAlarmData[] = { - YAML_SIGNED( "disabled", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "warning", 6 ), - YAML_PADDING( 2 ), - YAML_SIGNED( "critical", 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_5[] = { - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_UNSIGNED( "outputType", 1 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), - YAML_UNSIGNED( "disableTelemetry", 1 ), - YAML_UNSIGNED( "disableMapping", 1 ), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "autoBindMode", 1 ), - YAML_UNSIGNED( "lowPowerMode", 1 ), - YAML_SIGNED( "optionValue", 8 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_PADDING( 6 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_7[] = { - YAML_UNSIGNED( "power", 2 ), - YAML_PADDING( 2 ), - YAML_UNSIGNED( "receiverTelemetryOff", 1 ), - YAML_UNSIGNED( "receiverHigherChannels", 1 ), - YAML_SIGNED( "antennaMode", 2 ), - YAML_PADDING( 8 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_8[] = { - YAML_PADDING( 6 ), - YAML_UNSIGNED( "noninverted", 1 ), - YAML_PADDING( 1 ), - YAML_SIGNED( "refreshRate", 8 ), - YAML_END -}; -static const struct YamlNode struct_string_64[] = { - YAML_IDX, - YAML_STRING("val", 8), - YAML_END -}; -static const struct YamlNode struct_anonymous_9[] = { - YAML_UNSIGNED( "receivers", 7 ), - YAML_UNSIGNED( "racingMode", 1 ), - 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), - YAML_STRUCT("multi", 24, struct_anonymous_6, NULL), - 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[] = { - YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), - YAML_CUSTOM("subType",r_modSubtype,w_modSubtype), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED_CUST( "channelsCount", 8, r_channelsCount, w_channelsCount ), - YAML_ENUM("failsafeMode", 4, enum_FailsafeModes), - YAML_PADDING( 3 ), - YAML_PADDING( 1 ), - YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), - YAML_END -}; -static const struct YamlNode struct_TrainerModuleData[] = { - YAML_UNSIGNED_CUST( "mode", 8, r_trainerMode, w_trainerMode ), - YAML_UNSIGNED( "channelsStart", 8 ), - YAML_SIGNED( "channelsCount", 8 ), - YAML_SIGNED( "frameLength", 8 ), - YAML_SIGNED( "delay", 6 ), - YAML_UNSIGNED( "pulsePol", 1 ), - YAML_PADDING( 1 ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput_elmts[] = { - YAML_SIGNED( "value", 16 ), - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode union_ScriptDataInput[] = { - YAML_IDX, - YAML_UNION("u", 16, union_ScriptDataInput_elmts, select_script_input), - YAML_END -}; -static const struct YamlNode struct_ScriptData[] = { - YAML_IDX, - YAML_STRING("file", 6), - YAML_STRING("name", 6), - YAML_ARRAY("inputs", 16, 6, union_ScriptDataInput, NULL), - YAML_END -}; -static const struct YamlNode union_anonymous_12_elmts[] = { - YAML_UNSIGNED( "id", 16 ), - YAML_UNSIGNED( "persistentValue", 16 ), - YAML_END -}; -static const struct YamlNode struct_anonymous_14[] = { - YAML_UNSIGNED( "physID", 5 ), - YAML_UNSIGNED( "rxIndex", 3 ), - YAML_END -}; -static const struct YamlNode union_anonymous_13_elmts[] = { - YAML_STRUCT("frskyInstance", 8, struct_anonymous_14, NULL), - YAML_UNSIGNED( "instance", 8 ), - YAML_ENUM("formula", 8, enum_TelemetrySensorFormula), - YAML_END -}; -static const struct YamlNode struct_anonymous_16[] = { - YAML_UNSIGNED( "ratio", 16 ), - YAML_SIGNED( "offset", 16 ), - YAML_END -}; -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_18[] = { - YAML_ARRAY("sources", 8, 4, struct_signed_8, NULL), - YAML_END -}; -static const struct YamlNode struct_anonymous_19[] = { - YAML_UNSIGNED( "source", 8 ), - YAML_PADDING( 24 ), - YAML_END -}; -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_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_12_elmts, select_id1), - YAML_UNION("id2", 8, union_anonymous_13_elmts, select_id2), - YAML_STRING("label", 4), - YAML_UNSIGNED( "subId", 8 ), - YAML_ENUM("type", 1, enum_TelemetrySensorType), - YAML_PADDING( 1 ), - YAML_UNSIGNED( "unit", 6 ), - YAML_UNSIGNED( "prec", 2 ), - YAML_UNSIGNED( "autoOffset", 1 ), - YAML_UNSIGNED( "filter", 1 ), - YAML_UNSIGNED( "logs", 1 ), - YAML_UNSIGNED( "persistent", 1 ), - YAML_UNSIGNED( "onlyPositive", 1 ), - YAML_PADDING( 1 ), - YAML_UNION("cfg", 32, union_anonymous_15_elmts, select_sensor_cfg), - YAML_END -}; -static const struct YamlNode struct_FrSkyBarData[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "source", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_SIGNED( "barMin", 16 ), - YAML_SIGNED( "barMax", 16 ), - YAML_END -}; -static const struct YamlNode struct_LineDataSource[] = { - YAML_IDX, - YAML_UNSIGNED_CUST( "val", 16, r_mixSrcRaw, w_mixSrcRaw ), - YAML_END -}; -static const struct YamlNode struct_FrSkyLineData[] = { - YAML_IDX, - YAML_ARRAY("sources", 16, 2, struct_LineDataSource, 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_u_elmts[] = { - YAML_ARRAY("bars", 48, 4, struct_FrSkyBarData, NULL), - YAML_ARRAY("lines", 32, 4, struct_FrSkyLineData, NULL), - YAML_STRUCT("script", 176, struct_TelemetryScriptData, NULL), - YAML_END -}; -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_ModelData[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_UNSIGNED( "telemetryProtocol", 3 ), - YAML_UNSIGNED( "thrTrim", 1 ), - YAML_UNSIGNED( "noGlobalFunctions", 1 ), - YAML_UNSIGNED( "displayTrims", 2 ), - YAML_UNSIGNED( "ignoreSensorIds", 1 ), - YAML_SIGNED( "trimInc", 3 ), - YAML_UNSIGNED( "disableThrottleWarning", 1 ), - YAML_UNSIGNED( "displayChecklist", 1 ), - YAML_UNSIGNED( "extendedLimits", 1 ), - YAML_UNSIGNED( "extendedTrims", 1 ), - YAML_UNSIGNED( "throttleReversed", 1 ), - YAML_UNSIGNED( "beepANACenter", 16 ), - YAML_ARRAY("mixData", 160, 64, struct_MixData, NULL), - YAML_ARRAY("limitData", 88, 32, struct_LimitData, NULL), - YAML_ARRAY("expoData", 136, 64, struct_ExpoData, NULL), - 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_STRUCT("swashR", 64, struct_SwashRingData, swash_is_active), - YAML_ARRAY("flightModeData", 288, 9, struct_FlightModeData, fmd_is_active), - YAML_UNSIGNED_CUST( "thrTraceSrc", 8, r_thrSrc, w_thrSrc ), - YAML_CUSTOM("switchWarningState",r_swtchWarn,w_swtchWarn), - YAML_PADDING( 24 ), - 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_STRUCT("rssiAlarms", 16, struct_RssiAlarmData, NULL), - YAML_PADDING( 3 ), - YAML_UNSIGNED( "thrTrimSw", 3 ), - YAML_ENUM("potsWarnMode", 2, enum_PotsWarnMode), - 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("inputNames", 24, 32, struct_string_24, NULL), - YAML_UNSIGNED( "potsWarnEnabled", 8 ), - YAML_ARRAY("potsWarnPosition", 8, 2, struct_signed_8, NULL), - YAML_ARRAY("telemetrySensors", 112, 40, struct_TelemetrySensor, NULL), - YAML_PADDING( 8 ), - YAML_ARRAY("screens", 192, 4, struct_TelemetryScreenData, NULL), - YAML_UNSIGNED( "view", 8 ), - YAML_STRING("modelRegistrationID", 8), - YAML_END -}; -static const struct YamlNode struct_PartialModel[] = { - YAML_STRUCT("header", 96, struct_ModelHeader, NULL), - YAML_ARRAY("timers", 88, 3, struct_TimerData, NULL), - YAML_END -}; - -#define MAX_RADIODATA_MODELDATA_PARTIALMODEL_STR_LEN 24 - -static const struct YamlNode __RadioData_root_node = YAML_ROOT( struct_RadioData ); - -const YamlNode* get_radiodata_nodes() -{ - return &__RadioData_root_node; -} -static const struct YamlNode __ModelData_root_node = YAML_ROOT( struct_ModelData ); - -const YamlNode* get_modeldata_nodes() -{ - return &__ModelData_root_node; -} -static const struct YamlNode __PartialModel_root_node = YAML_ROOT( struct_PartialModel ); - -const YamlNode* get_partialmodel_nodes() -{ - return &__PartialModel_root_node; -} - diff --git a/radio/src/storage/conversions/yaml/zone_220.h b/radio/src/storage/conversions/yaml/zone_220.h deleted file mode 100644 index 694ea642582..00000000000 --- a/radio/src/storage/conversions/yaml/zone_220.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#pragma once - -#define LEN_ZONE_OPTION_STRING 8 - -union ZoneOptionValue -{ - uint32_t unsignedValue; - int32_t signedValue; - uint32_t boolValue; - char stringValue[LEN_ZONE_OPTION_STRING]; -}; - -enum ZoneOptionValueEnum { - ZOV_Unsigned=0, - ZOV_Signed, - ZOV_Bool, - ZOV_String, - // added for conversion: - ZOV_Source, - ZOV_Color -}; - -struct ZoneOption -{ - enum Type { - Integer, - Source, - Bool, - String, - File, - TextSize, - Timer, - Switch, - Color - }; - - const char * name; - Type type; - ZoneOptionValue deflt; - ZoneOptionValue min; - ZoneOptionValue max; -}; - -struct ZoneOptionValueTyped -{ - ZoneOptionValueEnum type; - ZoneOptionValue value; -}; diff --git a/radio/src/storage/eeprom_common.cpp b/radio/src/storage/eeprom_common.cpp deleted file mode 100644 index f48d37bc497..00000000000 --- a/radio/src/storage/eeprom_common.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include "opentx.h" -#include "../timers.h" -#include "model_init.h" - -void eeLoadModel(uint8_t index) -{ - if (index < MAX_MODELS) { - preModelLoad(); - - uint16_t size = eeLoadModelData(index); - -#if defined(SIMU) && defined(EEPROM_ZONE_SIZE) - if (sizeof(uint16_t) + sizeof(g_model) > EEPROM_ZONE_SIZE) { - TRACE("Model data size can't exceed %d bytes (%d bytes)", int(EEPROM_ZONE_SIZE-sizeof(uint16_t)), (int)sizeof(g_model)); - } -#endif - -#if defined(SIMU) - if (size > 0 && size != sizeof(g_model)) { - TRACE("Model data read=%d bytes vs %d bytes\n", size, (int)sizeof(ModelData)); - } -#endif - - bool alarms = true; - if (size < EEPROM_MIN_MODEL_SIZE) { // if not loaded a fair amount - setModelDefaults(index); - storageCheck(true); - alarms = false; - } - - postModelLoad(alarms); - } -} - -void storageClearRadioSettings() -{ - memclear(&g_eeGeneral, sizeof(RadioData)); -} - -bool storageReadRadioSettings(bool allowFixes) -{ - if (!eepromOpen() || !eeLoadGeneral(allowFixes)) { - if (!allowFixes) { - storageClearRadioSettings(); - return false; - } - storageEraseAll(true); - } - else { - loadModelHeaders(); - } - - for (uint8_t i=0; languagePacks[i]; i++) { - if (!strncmp(g_eeGeneral.ttsLanguage, languagePacks[i]->id, 2)) { - currentLanguagePackIdx = i; - currentLanguagePack = languagePacks[i]; - } - } - - postRadioSettingsLoad(); - - return true; -} - -void storageReadCurrentModel() -{ - eeLoadModel(g_eeGeneral.currModel); -} - -void storageReadAll() -{ - storageReadRadioSettings(); - storageReadCurrentModel(); -} - -void storageEraseAll(bool warn) -{ - TRACE("storageEraseAll"); - - generalDefault(); - setModelDefaults(); - - if (warn) { - ALERT(STR_STORAGE_WARNING, STR_BAD_RADIO_DATA, AU_BAD_RADIODATA); - } - - RAISE_ALERT(STR_STORAGE_WARNING, STR_STORAGE_FORMAT, nullptr, AU_NONE); - - storageFormat(); - storageDirty(EE_GENERAL|EE_MODEL); - storageCheck(true); -} - -void checkModelIdUnique(uint8_t index, uint8_t module) -{ - if (isModuleXJTD8(module)) - return; - - uint8_t modelId = g_model.header.modelId[module]; - uint8_t additionalOnes = 0; - char * name = reusableBuffer.moduleSetup.msg; - - memset(reusableBuffer.moduleSetup.msg, 0, sizeof(reusableBuffer.moduleSetup.msg)); - - if (modelId != 0) { - for (uint8_t i = 0; i < MAX_MODELS; i++) { - if (i != index) { - if (modelId == modelHeaders[i].modelId[module]) { - if ((WARNING_LINE_LEN - 4 - (name - reusableBuffer.moduleSetup.msg)) > (signed)(modelHeaders[i].name[0] ? zlen(modelHeaders[i].name, LEN_MODEL_NAME) : sizeof(TR_MODEL) + 2)) { // you cannot rely exactly on WARNING_LINE_LEN so using WARNING_LINE_LEN-2 (-2 for the ",") - if (reusableBuffer.moduleSetup.msg[0] != '\0') { - name = strAppend(name, ", "); - } - if (modelHeaders[i].name[0] == 0) { - name = strAppend(name, STR_MODEL); - name = strAppendUnsigned(name+strlen(name), i + 1, 2); - } - else { - name = strAppend(name, modelHeaders[i].name, LEN_MODEL_NAME); - } - } - else { - additionalOnes++; - } - } - } - } - } - - if (additionalOnes) { - name = strAppend(name, " (+"); - name = strAppendUnsigned(name, additionalOnes); - strAppend(name, ")"); - } - - if (reusableBuffer.moduleSetup.msg[0]) { - POPUP_WARNING(STR_MODELIDUSED, reusableBuffer.moduleSetup.msg); - } -} diff --git a/radio/src/storage/eeprom_common.h b/radio/src/storage/eeprom_common.h deleted file mode 100644 index d0761b536d9..00000000000 --- a/radio/src/storage/eeprom_common.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _EEPROM_COMMON_H_ -#define _EEPROM_COMMON_H_ - -#define EEPROM_MIN_MODEL_SIZE 256 - -uint16_t eeLoadModelData(uint8_t id); -uint16_t eeLoadModelData(uint8_t index, uint8_t* data, unsigned size); -void eeWriteModelData(uint8_t index, uint8_t* data, unsigned size, bool immediately); - -uint16_t eeLoadGeneralSettingsData(); -uint16_t eeLoadGeneralSettingsData(uint8_t* data, unsigned size); -void eeWriteGeneralSettingData(uint8_t* data, unsigned size, bool immediately); - -bool eeModelExists(uint8_t id); -void eeLoadModel(uint8_t id); -uint8_t eeFindEmptyModel(uint8_t id, bool down); -void selectModel(uint8_t sub); - -void storageClearRadioSettings(); -bool storageReadRadioSettings(bool allowFixes = true); -void storageReadCurrentModel(); - -void checkModelIdUnique(uint8_t index, uint8_t module); - -#if defined(EEPROM_RLC) -#include "eeprom_rlc.h" -#else -#include "eeprom_raw.h" -#endif - -#endif diff --git a/radio/src/storage/eeprom_none.cpp b/radio/src/storage/eeprom_none.cpp deleted file mode 100644 index 92b2e92b012..00000000000 --- a/radio/src/storage/eeprom_none.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" -//#include "eeprom_common.h" - -void eepromCheck() -{ -} - -void storageFormat() -{ -} - -bool eepromOpen() -{ - return true; -} - -uint16_t eeLoadModelData(uint8_t index) -{ - modelDefault(index); - return sizeof(g_model); -} - -bool eeLoadGeneral() -{ - generalDefault(); - return true; -} - -void eeLoadModelName(uint8_t id, char *name) -{ - memclear(name, sizeof(g_model.header.name)); -} - -bool eeModelExists(uint8_t id) -{ - return true; -} - -void storageCheck(bool immediately) -{ -} - -void eeLoadModelHeader(uint8_t id, ModelHeader * header) -{ - memclear(header, sizeof(ModelHeader)); -} - -bool eeCopyModel(uint8_t dst, uint8_t src) -{ - return true; -} - -void eeSwapModels(uint8_t id1, uint8_t id2) -{ -} - -void eeDeleteModel(uint8_t idx) -{ -} diff --git a/radio/src/storage/eeprom_raw.cpp b/radio/src/storage/eeprom_raw.cpp deleted file mode 100644 index 46a8e9a8e6f..00000000000 --- a/radio/src/storage/eeprom_raw.cpp +++ /dev/null @@ -1,581 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include "opentx.h" -#include "timers.h" -#include "conversions/conversions.h" - -#define EEPROM_MARK 0x84697771 /* thanks ;) */ -#define EEPROM_ZONE_SIZE (8*1024) -#define EEPROM_BUFFER_SIZE 256 -#define EEPROM_FAT_SIZE 128 -#define EEPROM_MAX_ZONES (EEPROM_SIZE / EEPROM_ZONE_SIZE) -#define EEPROM_MAX_FILES (EEPROM_MAX_ZONES - 1) -#define FIRST_FILE_AVAILABLE (1+MAX_MODELS) - -PACK(struct EepromHeaderFile -{ - uint8_t zoneIndex:7; - uint8_t exists:1; -}); - -PACK(struct EepromHeader -{ - uint32_t mark; - uint32_t index; - EepromHeaderFile files[EEPROM_MAX_FILES]; -}); - -PACK(struct EepromFileHeader -{ - uint16_t fileIndex; - uint16_t size; -}); - -EepromHeader eepromHeader __DMA; -volatile EepromWriteState eepromWriteState = EEPROM_IDLE; -uint8_t eepromWriteZoneIndex = FIRST_FILE_AVAILABLE; -uint8_t eepromWriteFileIndex; -uint16_t eepromWriteSize; -uint8_t * eepromWriteSourceAddr; -uint32_t eepromWriteDestinationAddr; -uint16_t eepromFatAddr = 0; -uint8_t eepromWriteBuffer[EEPROM_BUFFER_SIZE] __DMA; - -void eepromWaitReadStatus() -{ - while (!eepromReadStatus()) { } -} - -void eepromWaitTransferComplete() -{ - while (!eepromIsTransferComplete()) { } -} - -void eepromEraseBlock(uint32_t address, bool blocking=true) -{ - // TRACE("eepromEraseBlock(%d)", address); - - eepromBlockErase(address); - - if (blocking) { - eepromWaitTransferComplete(); - eepromWaitReadStatus(); - } -} - -void eepromRead(uint8_t * buffer, size_t address, size_t size) -{ - // TRACE("eepromRead(%p, %d, %d)", buffer, address, size); - - eepromStartRead(buffer, address, size); - eepromWaitTransferComplete(); -} - -void eepromWrite(uint8_t * buffer, size_t address, size_t size, bool blocking=true) -{ - // TRACE("eepromWrite(%p, %d, %d)", buffer, address, size); - - eepromStartWrite(buffer, address, size); - - if (blocking) { - eepromWaitTransferComplete(); - eepromWaitReadStatus(); - } -} - -bool eepromOpen() -{ - TRACE("eepromOpen"); - - int32_t bestFatAddr = -1; - uint32_t bestFatIndex = 0; - eepromFatAddr = 0; - while (eepromFatAddr < EEPROM_ZONE_SIZE) { - eepromRead((uint8_t *)&eepromHeader, eepromFatAddr, sizeof(eepromHeader.mark) + sizeof(eepromHeader.index)); - if (eepromHeader.mark == EEPROM_MARK && eepromHeader.index >= bestFatIndex) { - bestFatAddr = eepromFatAddr; - bestFatIndex = eepromHeader.index; - } - eepromFatAddr += EEPROM_FAT_SIZE; - } - if (bestFatAddr >= 0) { - eepromFatAddr = bestFatAddr; - eepromRead((uint8_t *)&eepromHeader, eepromFatAddr, sizeof(eepromHeader)); - return true; - } - else { - return false; - } -} - -uint32_t readFile(int index, uint8_t * data, uint32_t size) -{ - if (eepromHeader.files[index].exists) { - EepromFileHeader header; - uint32_t address = eepromHeader.files[index].zoneIndex * EEPROM_ZONE_SIZE; - eepromRead((uint8_t *)&header, address, sizeof(header)); - if (size < header.size) { - header.size = size; - } - if (header.size > 0) { - eepromRead(data, address + sizeof(header), header.size); - size -= header.size; - } - if (size > 0) { - memset(data + header.size, 0, size); - } - return header.size; - } - else { - return 0; - } -} - -void eepromIncFatAddr() -{ - eepromHeader.index += 1; - eepromFatAddr += EEPROM_FAT_SIZE; - if (eepromFatAddr >= EEPROM_ZONE_SIZE) { - eepromFatAddr = 0; - } -} - -void writeFile(int index, uint8_t * data, uint32_t size) -{ - uint32_t zoneIndex = eepromHeader.files[eepromWriteZoneIndex].zoneIndex; - eepromHeader.files[eepromWriteZoneIndex].exists = 0; - eepromHeader.files[eepromWriteZoneIndex].zoneIndex = eepromHeader.files[index].zoneIndex; - eepromHeader.files[index].exists = (size > 0); - eepromHeader.files[index].zoneIndex = zoneIndex; - eepromWriteFileIndex = index; - eepromWriteSourceAddr = data; - eepromWriteSize = size; - eepromWriteDestinationAddr = zoneIndex * EEPROM_ZONE_SIZE; - eepromWriteState = EEPROM_START_WRITE; - eepromWriteZoneIndex += 1; - if (eepromWriteZoneIndex >= EEPROM_MAX_FILES) { - eepromWriteZoneIndex = FIRST_FILE_AVAILABLE; - } - eepromIncFatAddr(); -} - -void eeDeleteModel(uint8_t index) -{ - storageCheck(true); - memclear(&modelHeaders[index], sizeof(ModelHeader)); - writeFile(index+1, (uint8_t *)&g_model, 0); - eepromWriteWait(); -} - -bool eeCopyModel(uint8_t dst, uint8_t src) -{ - storageCheck(true); - - uint32_t eepromWriteSourceAddr = eepromHeader.files[src+1].zoneIndex * EEPROM_ZONE_SIZE; - uint32_t eepromWriteDestinationAddr = eepromHeader.files[dst+1].zoneIndex * EEPROM_ZONE_SIZE; - - // erase blocks - eepromEraseBlock(eepromWriteDestinationAddr); - eepromEraseBlock(eepromWriteDestinationAddr+EEPROM_BLOCK_SIZE); - - // write model - for (int pos=0; posfileIndex = eepromWriteFileIndex; - header->size = eepromWriteSize; - uint32_t size = min(EEPROM_BUFFER_SIZE-sizeof(EepromFileHeader), eepromWriteSize); - memcpy(eepromWriteBuffer+sizeof(EepromFileHeader), eepromWriteSourceAddr, size); - eepromWriteState = EEPROM_WRITING_BUFFER; - eepromWrite(eepromWriteBuffer, eepromWriteDestinationAddr, sizeof(EepromFileHeader)+size, false); - eepromWriteSourceAddr += size; - eepromWriteDestinationAddr += sizeof(EepromFileHeader)+size; - eepromWriteSize -= size; - break; - } - - case EEPROM_WRITE_NEXT_BUFFER: - { - uint32_t size = min(EEPROM_BUFFER_SIZE, eepromWriteSize); - if (size > 0) { - memcpy(eepromWriteBuffer, eepromWriteSourceAddr, size); - eepromWriteState = EEPROM_WRITING_BUFFER; - eepromWrite(eepromWriteBuffer, eepromWriteDestinationAddr, size, false); - eepromWriteSourceAddr += size; - eepromWriteDestinationAddr += size; - eepromWriteSize -= size; - break; - } - else if (eepromFatAddr == 0 || eepromFatAddr == EEPROM_BLOCK_SIZE) { - eepromWriteState = EEPROM_ERASING_FAT_BLOCK; - eepromEraseBlock(eepromFatAddr, false); - break; - } - } - /* no break */ - - case EEPROM_WRITE_NEW_FAT: - eepromWriteState = EEPROM_WRITING_NEW_FAT; - eepromWrite((uint8_t *)&eepromHeader, eepromFatAddr, sizeof(eepromHeader), false); - break; - - case EEPROM_END_WRITE: - eepromWriteState = EEPROM_IDLE; - break; - - default: - break; - } -} - -uint16_t eeModelSize(uint8_t index) -{ - uint16_t result = 0; - - if (eepromHeader.files[index+1].exists) { - uint32_t address = eepromHeader.files[index+1].zoneIndex * EEPROM_ZONE_SIZE; - EepromFileHeader header; - eepromRead((uint8_t *)&header, address, sizeof(header)); - result = header.size; - } - - return result; -} - -#if defined(SDCARD) -const char * eeBackupModel(uint8_t i_fileSrc) -{ - char * buf = reusableBuffer.modelsel.mainname; - FIL archiveFile; - UINT written; - - storageCheck(true); - - if (!sdMounted()) { - return STR_NO_SDCARD; - } - - // check and create folder here - strcpy(buf, STR_MODELS_PATH); - const char * error = sdCheckAndCreateDirectory(buf); - if (error) { - return error; - } - - buf[sizeof(MODELS_PATH)-1] = '/'; - strcpy(strcat_modelname(&buf[sizeof(MODELS_PATH)], i_fileSrc, 0), STR_MODELS_EXT); - - FRESULT result = f_open(&archiveFile, buf, FA_CREATE_ALWAYS | FA_WRITE); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } - - - uint16_t size = eeModelSize(i_fileSrc); - - *(uint32_t*)&buf[0] = ETX_FOURCC; - buf[4] = g_eeGeneral.version; - buf[5] = 'M'; - *(uint16_t*)&buf[6] = size; - - result = f_write(&archiveFile, buf, 8, &written); - if (result != FR_OK || written != 8) { - f_close(&archiveFile); - return SDCARD_ERROR(result); - } - - uint32_t address = eepromHeader.files[i_fileSrc+1].zoneIndex * EEPROM_ZONE_SIZE + sizeof(EepromFileHeader); - while (size > 0) { - uint16_t blockSize = min(size, EEPROM_BUFFER_SIZE); - eepromRead(eepromWriteBuffer, address, blockSize); - result = f_write(&archiveFile, eepromWriteBuffer, blockSize, &written); - if (result != FR_OK || written != blockSize) { - f_close(&archiveFile); - return SDCARD_ERROR(result); - } - size -= blockSize; - address += blockSize; - } - - f_close(&archiveFile); - - - return NULL; -} - -const char * eeRestoreModel(uint8_t i_fileDst, char *model_name) -{ - char * buf = reusableBuffer.modelsel.mainname; - FIL restoreFile; - UINT read; - - storageCheck(true); - - if (!sdMounted()) { - return STR_NO_SDCARD; - } - - strcpy(buf, STR_MODELS_PATH); - buf[sizeof(MODELS_PATH)-1] = '/'; - strcpy(&buf[sizeof(MODELS_PATH)], model_name); - strcpy(&buf[strlen(buf)], STR_MODELS_EXT); - - FRESULT result = f_open(&restoreFile, buf, FA_OPEN_EXISTING | FA_READ); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } - - if (f_size(&restoreFile) < 8) { - f_close(&restoreFile); - return STR_INCOMPATIBLE; - } - - result = f_read(&restoreFile, (uint8_t *)buf, 8, &read); - if (result != FR_OK || read != 8) { - f_close(&restoreFile); - return SDCARD_ERROR(result); - } - - uint8_t version = (uint8_t)buf[4]; - if (*(uint32_t*)&buf[0] != ETX_FOURCC || version < FIRST_CONV_EEPROM_VER || version > EEPROM_VER || buf[5] != 'M') { - f_close(&restoreFile); - return STR_INCOMPATIBLE; - } - - if (eeModelExists(i_fileDst)) { - eeDeleteModel(i_fileDst); - } - - uint16_t size = min(sizeof(g_model), *(uint16_t*)&buf[6]); - uint32_t address = eepromHeader.files[i_fileDst+1].zoneIndex * EEPROM_ZONE_SIZE; - - // erase blocks - eepromEraseBlock(address); - eepromEraseBlock(address+EEPROM_BLOCK_SIZE); - - // write header - EepromFileHeader * header = (EepromFileHeader *)eepromWriteBuffer; - header->fileIndex = i_fileDst+1; - header->size = size; - - int offset = 4; - - // write model - do { - uint16_t blockSize = min(size, EEPROM_BUFFER_SIZE-offset); - result = f_read(&restoreFile, eepromWriteBuffer+offset, blockSize, &read); - if (result != FR_OK || read != blockSize) { - f_close(&g_oLogFile); - return SDCARD_ERROR(result); - } - eepromWrite(eepromWriteBuffer, address, blockSize+offset); - size -= blockSize; - address += EEPROM_BUFFER_SIZE; - offset = 0; - } while (size > 0); - - // write FAT - eepromHeader.files[i_fileDst+1].exists = 1; - eepromIncFatAddr(); - eepromWriteState = EEPROM_WRITE_NEW_FAT; - eepromWriteWait(); - - eeLoadModelHeader(i_fileDst, &modelHeaders[i_fileDst]); - -#if defined(STORAGE_CONVERSIONS) - if (version < EEPROM_VER) { - eeConvertModel(i_fileDst, version); - eeLoadModel(g_eeGeneral.currModel); - } -#endif - - return NULL; -} -#endif diff --git a/radio/src/storage/eeprom_rlc.cpp b/radio/src/storage/eeprom_rlc.cpp deleted file mode 100644 index cfaa9106ef6..00000000000 --- a/radio/src/storage/eeprom_rlc.cpp +++ /dev/null @@ -1,950 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include "opentx.h" -#include "../timers.h" - -#include "hal/eeprom_driver.h" -#include "storage/eeprom_common.h" -#include "storage/eeprom_rlc.h" -#include "conversions/conversions.h" - -uint8_t s_write_err = 0; // error reasons -RlcFile theFile; //used for any file operation -EeFs eeFs; - -blkid_t freeBlocks = 0; - -uint8_t s_sync_write = false; - -static uint8_t EeFsRead(blkid_t blk, uint8_t ofs) -{ - uint8_t byte; - eepromReadBlock(&byte, (size_t)(blk*BS+ofs+BLOCKS_OFFSET), 1); - return byte; -} - -static blkid_t EeFsGetLink(blkid_t blk) -{ - blkid_t ret; - eepromReadBlock((uint8_t *)&ret, blk*BS+BLOCKS_OFFSET, sizeof(blkid_t)); - return ret; -} - -static void EeFsSetLink(blkid_t blk, blkid_t val) -{ - static blkid_t s_link; // we write asynchronously, then nothing on the stack! - s_link = val; - eepromWriteBlock((uint8_t *)&s_link, (blk*BS)+BLOCKS_OFFSET, sizeof(blkid_t)); -} - -static uint8_t EeFsGetDat(blkid_t blk, uint8_t ofs) -{ - return EeFsRead(blk, ofs+sizeof(blkid_t)); -} - -static void EeFsSetDat(blkid_t blk, uint8_t ofs, uint8_t *buf, uint8_t len) -{ - eepromWriteBlock(buf, (blk*BS)+ofs+sizeof(blkid_t)+BLOCKS_OFFSET, len); -} - -static void EeFsFlushFreelist() -{ - eepromWriteBlock((uint8_t *)&eeFs.freeList, offsetof(EeFs, freeList), sizeof(eeFs.freeList)); -} - -static void EeFsFlushDirEnt(uint8_t i_fileId) -{ - eepromWriteBlock((uint8_t *)&eeFs.files[i_fileId], offsetof(EeFs, files) + sizeof(DirEnt)*i_fileId, sizeof(DirEnt)); -} - -static void EeFsFlush() -{ - eepromWriteBlock((uint8_t *)&eeFs, 0, sizeof(eeFs)); -} - -uint16_t EeFsGetFree() -{ - int32_t ret = freeBlocks * (BS-sizeof(blkid_t)); - ret += eeFs.files[FILE_TMP].size; - ret -= eeFs.files[FILE_MODEL(g_eeGeneral.currModel)].size; - return (ret > 0 ? ret : 0); -} - -/// free one or more blocks -static void EeFsFree(blkid_t blk) -{ - blkid_t i = blk; - blkid_t tmp; - - freeBlocks++; - - while ((tmp=EeFsGetLink(i))) { - i = tmp; - freeBlocks++; - } - - EeFsSetLink(i, eeFs.freeList); - eeFs.freeList = blk; //chain in front - EeFsFlushFreelist(); -} - -void eepromCheck() -{ - ENABLE_SYNC_WRITE(true); - - uint8_t *bufp = (uint8_t *)&g_model; - memclear(bufp, BLOCKS); - blkid_t blk ; - - blkid_t blocksCount; - for (uint8_t i=0; i<=MAXFILES; i++) { - blocksCount = 0; - blkid_t blk = (i==MAXFILES ? eeFs.freeList : eeFs.files[i].startBlk); - blkid_t lastBlk = 0; - while (blk) { - if (blk < FIRSTBLK || // bad blk index - blk >= BLOCKS || // bad blk indexchan - bufp[blk]) // blk double usage - { - if (lastBlk) { - EeFsSetLink(lastBlk, 0); - } - else { - EeFsFlush(); - } - blk = 0; // abort - } - else { - blocksCount++; - bufp[blk] = i+1; - lastBlk = blk; - blk = EeFsGetLink(blk); - } - } - } - - freeBlocks = blocksCount; - - for (blk=FIRSTBLK; blk len) i_len = len; - - uint8_t remaining = i_len; - while (remaining) { - if (!m_currBlk) break; - - *buf++ = EeFsGetDat(m_currBlk, m_ofs++); - if (m_ofs >= BS-sizeof(blkid_t)) { - m_ofs = 0; - m_currBlk = EeFsGetLink(m_currBlk); - } - remaining--; - } - - i_len -= remaining; - m_pos += i_len; - return i_len; -} - -/* - * Read runlength (RLE) compressed bytes into buf. - */ -uint16_t RlcFile::readRlc(uint8_t *buf, uint16_t i_len) -{ - uint16_t i = 0; - for( ; 1; ) { - uint8_t ln = min(m_zeroes, i_len-i); - memclear(&buf[i], ln); - i += ln; - m_zeroes -= ln; - if (m_zeroes) - break; - - ln = min(m_bRlc, i_len-i); - uint8_t lr = read(&buf[i], ln); - i += lr ; - m_bRlc -= lr; - if (m_bRlc) break; - - if (read(&m_bRlc, 1) != 1) - break; // read how many bytes to read - - assert(m_bRlc & 0x7f); - - if (m_bRlc&0x80) { // if contains high byte - m_zeroes =(m_bRlc>>4) & 0x7; - m_bRlc = m_bRlc & 0x0f; - } - else if (m_bRlc&0x40) { - m_zeroes = m_bRlc & 0x3f; - m_bRlc = 0; - } - } - return i; -} - -void RlcFile::write1(uint8_t b) -{ - m_write1_byte = b; - write(&m_write1_byte, 1); -} - -void RlcFile::write(uint8_t *buf, uint8_t i_len) -{ - m_write_len = i_len; - m_write_buf = buf; - - do { - nextWriteStep(); - } while (IS_SYNC_WRITE_ENABLE() && m_write_len && !s_write_err); -} - -void RlcFile::nextWriteStep() -{ - if (!m_currBlk && m_pos==0) { - eeFs.files[FILE_TMP].startBlk = m_currBlk = eeFs.freeList; - if (m_currBlk) { - freeBlocks--; - eeFs.freeList = EeFsGetLink(m_currBlk); - m_write_step |= WRITE_FIRST_LINK; - EeFsFlushFreelist(); - return; - } - } - - if ((m_write_step & 0x0f) == WRITE_FIRST_LINK) { - m_write_step -= WRITE_FIRST_LINK; - EeFsSetLink(m_currBlk, 0); - return; - } - - while (m_write_len) { - if (!m_currBlk) { - s_write_err = ERR_FULL; - break; - } - if (m_ofs >= (BS-sizeof(blkid_t))) { - m_ofs = 0; - blkid_t nextBlk = EeFsGetLink(m_currBlk); - if (!nextBlk) { - if (!eeFs.freeList) { - s_write_err = ERR_FULL; - break; - } - m_write_step += WRITE_NEXT_LINK_1; - EeFsSetLink(m_currBlk, eeFs.freeList); - // TODO not good - return; - } - m_currBlk = nextBlk; - } - switch (m_write_step & 0x0f) { - case WRITE_NEXT_LINK_1: - m_currBlk = eeFs.freeList; - freeBlocks--; - eeFs.freeList = EeFsGetLink(eeFs.freeList); - m_write_step += 1; - EeFsFlushFreelist(); - return; - case WRITE_NEXT_LINK_2: - m_write_step -= WRITE_NEXT_LINK_2; - EeFsSetLink(m_currBlk, 0); - return; - } - uint8_t tmp = BS-sizeof(blkid_t)-m_ofs; if(tmp>m_write_len) tmp = m_write_len; - m_write_buf += tmp; - m_write_len -= tmp; - m_ofs += tmp; - m_pos += tmp; - EeFsSetDat(m_currBlk, m_ofs-tmp, m_write_buf-tmp, tmp); - return; - } - - if (s_write_err == ERR_FULL) { - POPUP_WARNING(STR_EEPROMOVERFLOW); - m_write_step = 0; - m_write_len = 0; - m_cur_rlc_len = 0; - } - else if (!IS_SYNC_WRITE_ENABLE()) { - nextRlcWriteStep(); - } -} - -void RlcFile::create(uint8_t i_fileId, uint8_t typ, uint8_t sync_write) -{ - // all write operations will be executed on FILE_TMP - openRlc(FILE_TMP); // internal use - eeFs.files[FILE_TMP].typ = typ; - eeFs.files[FILE_TMP].size = 0; - m_fileId = i_fileId; - ENABLE_SYNC_WRITE(sync_write); -} - -/* - * Copy file src to dst - */ -bool RlcFile::copy(uint8_t i_fileDst, uint8_t i_fileSrc) -{ - EFile theFile2; - theFile2.openRd(i_fileSrc); - - create(i_fileDst, FILE_TYP_MODEL/*optimization, only model files are copied. should be eeFs.files[i_fileSrc].typ*/, true); - - uint8_t buf[BS-sizeof(blkid_t)]; - uint8_t len; - while ((len=theFile2.read(buf, sizeof(buf)))) - { - write(buf, len); - if (write_errno() != 0) { - ENABLE_SYNC_WRITE(false); - return false; - } - } - - blkid_t fri=0; - if (m_currBlk && (fri=EeFsGetLink(m_currBlk))) - EeFsSetLink(m_currBlk, 0); - - if (fri) EeFsFree(fri); //chain in - - eeFs.files[FILE_TMP].size = m_pos; - EFile::swap(m_fileId, FILE_TMP); - - assert(!m_write_step); - - // s_sync_write is set to false in swap(); - return true; -} - -#if defined(SDCARD) && !defined(SDCARD_RAW) && !defined(SDCARD_YAML) -const char * eeBackupModel(uint8_t i_fileSrc) -{ - char * buf = reusableBuffer.modelsel.mainname; - UINT written; - - // we must close the logs as we reuse the same FIL structure - logsClose(); - - // check and create folder here - strcpy(buf, STR_MODELS_PATH); - const char * error = sdCheckAndCreateDirectory(buf); - if (error) { - return error; - } - - buf[sizeof(MODELS_PATH)-1] = '/'; - eeLoadModelName(i_fileSrc, &buf[sizeof(MODELS_PATH)]); - buf[sizeof(MODELS_PATH)+sizeof(g_model.header.name)] = '\0'; - - uint8_t i = sizeof(MODELS_PATH)+sizeof(g_model.header.name)-1; - uint8_t len = 0; - while (i > sizeof(MODELS_PATH)-1) { - if (!len && buf[i]) - len = i+1; - if (len) { - if (!buf[i]) - buf[i] = '_'; - } - i--; - } - - if (len == 0) { - uint8_t num = i_fileSrc + 1; - strcpy(&buf[sizeof(MODELS_PATH)], STR_MODEL); - buf[sizeof(MODELS_PATH) + PSIZE(TR_MODEL)] = (char)((num / 10) + '0'); - buf[sizeof(MODELS_PATH) + PSIZE(TR_MODEL) + 1] = (char)((num % 10) + '0'); - len = sizeof(MODELS_PATH) + PSIZE(TR_MODEL) + 2; - } - -#if defined(RTCLOCK) - char * tmp = strAppendDate(&buf[len]); - len = tmp - buf; -#endif - - strcpy(&buf[len], STR_MODELS_EXT); - -#ifdef SIMU - TRACE("SD-card backup filename=%s", buf); -#endif - - FRESULT result = f_open(&g_oLogFile, buf, FA_CREATE_ALWAYS | FA_WRITE); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } - - EFile theFile2; - theFile2.openRd(FILE_MODEL(i_fileSrc)); - - *(uint32_t*)&buf[0] = ETX_FOURCC; - buf[4] = g_eeGeneral.version; - buf[5] = 'M'; - *(uint16_t*)&buf[6] = eeModelSize(i_fileSrc); - - result = f_write(&g_oLogFile, buf, 8, &written); - if (result != FR_OK || written != 8) { - f_close(&g_oLogFile); - return SDCARD_ERROR(result); - } - - while ((len=theFile2.read((uint8_t *)buf, 15))) { - result = f_write(&g_oLogFile, (uint8_t *)buf, len, &written); - if (result != FR_OK || written != len) { - f_close(&g_oLogFile); - return SDCARD_ERROR(result); - } - } - - f_close(&g_oLogFile); - return NULL; -} - -const char * eeRestoreModel(uint8_t i_fileDst, char *model_name) -{ - char * buf = reusableBuffer.modelsel.mainname; - UINT read; - - // we must close the logs as we reuse the same FIL structure - logsClose(); - - strcpy(buf, STR_MODELS_PATH); - buf[sizeof(MODELS_PATH)-1] = '/'; - strcpy(&buf[sizeof(MODELS_PATH)], model_name); - strcpy(&buf[strlen(buf)], STR_MODELS_EXT); - - FRESULT result = f_open(&g_oLogFile, buf, FA_OPEN_EXISTING | FA_READ); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } - - if (f_size(&g_oLogFile) < 8) { - f_close(&g_oLogFile); - return STR_INCOMPATIBLE; - } - - result = f_read(&g_oLogFile, (uint8_t *)buf, 8, &read); - if (result != FR_OK || read != 8) { - f_close(&g_oLogFile); - return SDCARD_ERROR(result); - } - - uint8_t version = (uint8_t)buf[4]; - if (*(uint32_t*)&buf[0] != ETX_FOURCC || version < FIRST_CONV_EEPROM_VER || version > EEPROM_VER || buf[5] != 'M') { - f_close(&g_oLogFile); - return STR_INCOMPATIBLE; - } - - if (eeModelExists(i_fileDst)) { - eeDeleteModel(i_fileDst); - } - - theFile.create(FILE_MODEL(i_fileDst), FILE_TYP_MODEL, true); - - do { - result = f_read(&g_oLogFile, (uint8_t *)buf, 15, &read); - if (result != FR_OK) { - ENABLE_SYNC_WRITE(false); - f_close(&g_oLogFile); - return SDCARD_ERROR(result); - } - if (read > 0) { - theFile.write((uint8_t *)buf, read); - if (write_errno() != 0) { - ENABLE_SYNC_WRITE(false); - f_close(&g_oLogFile); - return STR_EEPROMOVERFLOW; - } - } - } while (read == 15); - - blkid_t fri=0; - if (theFile.m_currBlk && (fri=EeFsGetLink(theFile.m_currBlk))) - EeFsSetLink(theFile.m_currBlk, 0); - - if (fri) EeFsFree(fri); //chain in - - eeFs.files[FILE_TMP].size = theFile.m_pos; - EFile::swap(theFile.m_fileId, FILE_TMP); // s_sync_write is set to false in swap(); - - f_close(&g_oLogFile); - -#if defined(STORAGE_CONVERSIONS) - if (version < EEPROM_VER) { - storageCheck(true); - eeConvertModel(i_fileDst, version); - eeLoadModel(g_eeGeneral.currModel); - } -#endif - - eeLoadModelHeader(i_fileDst, &modelHeaders[i_fileDst]); - - return NULL; -} -#endif - -void RlcFile::writeRlc(uint8_t i_fileId, uint8_t typ, uint8_t *buf, uint16_t i_len, uint8_t sync_write) -{ - create(i_fileId, typ, sync_write); - - m_write_step = WRITE_START_STEP; - m_rlc_buf = buf; - m_rlc_len = i_len; - m_cur_rlc_len = 0; - - do { - nextRlcWriteStep(); - } while (IS_SYNC_WRITE_ENABLE() && m_write_step && !s_write_err); -} - -void RlcFile::nextRlcWriteStep() -{ - uint8_t cnt = 1; - uint8_t cnt0 = 0; - uint16_t i = 0; - - if (m_cur_rlc_len) { - uint8_t tmp1 = m_cur_rlc_len; - uint8_t *tmp2 = m_rlc_buf; - m_rlc_buf += m_cur_rlc_len; - m_cur_rlc_len = 0; - write(tmp2, tmp1); - return; - } - - if (m_rlc_len>0) { - - bool run0 = (m_rlc_buf[0] == 0); - - for (i=1; 1; i++) { - bool cur0 = (iversion==EEFS_VERS && eeprom->mySize==sizeof(eeFs) && eeprom->bs==BS) - return true; - } - - // ersky9x EEPROM - { - const uint8_t * eeprom = (const uint8_t *)buffer; - uint8_t size = eeprom[1] ; - uint8_t bs = eeprom[3] ; - if (size==0x80 && bs==0x80) - return true; - } - - return false; -} - -void eepromBackup(); - -#if defined(SDCARD_RAW) || defined(SDCARD_YAML) -bool eeModelExistsRlc(uint8_t id); -#endif - -#endif // _EEPROM_RLC_H_ diff --git a/radio/src/storage/sdcard_common.cpp b/radio/src/storage/sdcard_common.cpp index 2f87482eddb..c44a36fce3f 100644 --- a/radio/src/storage/sdcard_common.cpp +++ b/radio/src/storage/sdcard_common.cpp @@ -23,7 +23,6 @@ #include "storage.h" #include "sdcard_common.h" #include "modelslist.h" -#include "conversions/conversions.h" #include "model_init.h" void getModelPath(char * path, const char * filename, const char* pathName) diff --git a/radio/src/storage/sdcard_raw.cpp b/radio/src/storage/sdcard_raw.cpp deleted file mode 100644 index 1d5224fc041..00000000000 --- a/radio/src/storage/sdcard_raw.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright (C) EdgeTX - * - * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include "opentx.h" -#include "modelslist.h" -#include "conversions/conversions.h" - -const char *writeFileBin(const char *filename, const uint8_t *data, - uint16_t size, uint8_t version) -{ - TRACE("writeFileBin(%s)", filename); - - FIL file; - unsigned char buf[8]; - UINT written; - - FRESULT result = f_open(&file, filename, FA_CREATE_ALWAYS | FA_WRITE); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } - - *(uint32_t*)&buf[0] = ETX_FOURCC; - buf[4] = version; - buf[5] = 'M'; - *(uint16_t*)&buf[6] = size; - - result = f_write(&file, buf, 8, &written); - if (result != FR_OK || written != 8) { - f_close(&file); - return SDCARD_ERROR(result); - } - - result = f_write(&file, data, size, &written); - if (result != FR_OK || written != size) { - f_close(&file); - return SDCARD_ERROR(result); - } - - f_close(&file); - return NULL; -} - -// TODO: move to "common" -const char * writeModelBin() -{ - char path[256]; - getModelPath(path, g_eeGeneral.currModelFilename); - - sdCheckAndCreateDirectory(MODELS_PATH); - return writeFileBin(path, (uint8_t *)&g_model, sizeof(g_model)); -} - -// TODO: move partly to common -const char * openFile(const char * fullpath, FIL * file) -{ - FRESULT result = f_open(file, fullpath, FA_OPEN_EXISTING | FA_READ); - if (result != FR_OK) { - return SDCARD_ERROR(result); - } - - return nullptr; -} - -const char* openFileBin(const char * fullpath, FIL * file, uint16_t * size, uint8_t * version) -{ - const char* err = openFile(fullpath, file); - if (err) return err; - - if (f_size(file) < 8) { - f_close(file); - return STR_INCOMPATIBLE; - } - - UINT read; - char buf[8]; - - FRESULT result = f_read(file, (uint8_t *)buf, sizeof(buf), &read); - if ((result != FR_OK) || (read != sizeof(buf))) { - f_close(file); - return SDCARD_ERROR(result); - } - - *version = (uint8_t)buf[4]; - if (*(uint32_t *)&buf[0] != ETX_FOURCC || *version < FIRST_CONV_EEPROM_VER || - *version > EEPROM_VER || buf[5] != 'M') { - f_close(file); - return STR_INCOMPATIBLE; - } - - *size = *(uint16_t*)&buf[6]; - return nullptr; -} - -const char *loadFileBin(const char *fullpath, uint8_t *data, - uint16_t maxsize, uint8_t *version) -{ - FIL file; - UINT read; - uint16_t size; - - TRACE("loadFileBin(%s)", fullpath); - - const char * err = openFileBin(fullpath, &file, &size, version); - if (err) - return err; - - size = min(maxsize, size); - FRESULT result = f_read(&file, data, size, &read); - if (result != FR_OK || read != size) { - f_close(&file); - return SDCARD_ERROR(result); - } - - f_close(&file); - return nullptr; -} - -#if defined(SDCARD_RAW) -const char* readModel(const char* filename, uint8_t* buffer, uint32_t size) -{ - uint8_t version = 0; - // Conversions from EEPROM are done in batch when converting the radio file. - // It is not supported on a model by model base when loaded. - const char *error = readModelBin(filename, buffer, size, &version); - if (error) return error; - -#if defined(STORAGE_CONVERSIONS) - if (version < EEPROM_VER) { - convertBinModelData(filename, version); - error = readModelBin(filename, buffer, size, &version); - } -#endif - - return error; -} -#endif - -const char *readModelBin(const char *filename, uint8_t *buffer, uint32_t size, - uint8_t *version) -{ - char path[256]; - getModelPath(path, filename); - return loadFileBin(path, buffer, size, version); -} - -const char * loadRadioSettingsBin(const char * path) -{ - uint8_t version; - const char * error = loadFileBin(path, (uint8_t *)&g_eeGeneral, sizeof(g_eeGeneral), &version); - if (error) { - TRACE("loadRadioSettings error=%s", error); - return error; - } - -#if defined(STORAGE_CONVERSIONS) - if (version < EEPROM_VER) { - convertBinRadioData(path, version); - } -#endif - - postRadioSettingsLoad(); - - return nullptr; -} - -const char * loadRadioSettingsBin() -{ - return loadRadioSettingsBin(RADIO_SETTINGS_PATH); -} - -const char * writeGeneralSettingsBin() -{ - return writeFileBin(RADIO_SETTINGS_PATH, (uint8_t *)&g_eeGeneral, sizeof(g_eeGeneral)); -} - diff --git a/radio/src/storage/sdcard_yaml.cpp b/radio/src/storage/sdcard_yaml.cpp index 1facf95d9cc..7a3721e8cda 100644 --- a/radio/src/storage/sdcard_yaml.cpp +++ b/radio/src/storage/sdcard_yaml.cpp @@ -38,8 +38,6 @@ #include "storage/eeprom_rlc.h" #endif -#include "storage/conversions/conversions.h" - const char * readYamlFile(const char* fullpath, const YamlParserCalls* calls, void* parser_ctx, ChecksumResult* checksum_result) { FIL file; @@ -177,30 +175,7 @@ const char * loadRadioSettings() if ( (f_stat(RADIO_SETTINGS_YAML_PATH, &fno) != FR_OK) && ((f_stat(RADIO_SETTINGS_TMPFILE_YAML_PATH, &fno) != FR_OK)) ) { // If neither the radio configuraion YAML file or the temporary file generated on write exist, this must be a first run with YAML support. // - thus requiring a conversion from binary to YAML. -#if STORAGE_CONVERSIONS < 221 -#if defined(STORAGE_MODELSLIST) - uint8_t version; - const char* error = loadFileBin(RADIO_SETTINGS_PATH, nullptr, 0, &version); - if (error) { - TRACE("loadRadioSettings error=%s", error); - return error; - } - convertBinRadioData(RADIO_SETTINGS_PATH, version); -#elif defined(EEPROM_RLC) - // Load from EEPROM - uint8_t versions[3]; - uint16_t* variant = (uint16_t*)&versions[1]; - if (!eepromOpen() || (eeLoadGeneralSettingsData(versions, 3) != 3) - || (*variant != EEPROM_VARIANT)) { - return "ERROR"; - } - eeConvert(versions[0]); -#else - #error "Unsupported conversion format" -#endif -#else return "no radio settings"; -#endif } #if defined(DEFAULT_INTERNAL_MODULE) diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index bc9694c6872..da804d3f291 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -26,77 +26,6 @@ #include "pulses/multi.h" #include "stamp.h" -// Use definitions from v220 conversions as long as nothing changes - -namespace yaml_conv_220 { - bool w_board(void* user, uint8_t* data, uint32_t bitoffs, yaml_writer_func wf, void* opaque); - - bool in_write_weight(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - - bool output_source_1_param(const char* src_prefix, size_t src_len, uint32_t n, - yaml_writer_func wf, void* opaque); - - bool w_vbat_min(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - bool w_vbat_max(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - - uint8_t select_zov(void* user, uint8_t* data, uint32_t bitoffs); - uint8_t select_script_input(void* user, uint8_t* data, uint32_t bitoffs); - uint8_t select_id1(void* user, uint8_t* data, uint32_t bitoffs); - uint8_t select_id2(void* user, uint8_t* data, uint32_t bitoffs); - uint8_t select_sensor_cfg(void* user, uint8_t* data, uint32_t bitoffs); - - extern const struct YamlIdStr enum_SwitchConfig[]; - - bool cfn_is_active(void* user, uint8_t* data, uint32_t bitoffs); - bool gvar_is_active(void* user, uint8_t* data, uint32_t bitoffs); - bool fmd_is_active(void* user, uint8_t* data, uint32_t bitoffs); - bool swash_is_active(void* user, uint8_t* data, uint32_t bitoffs); - - bool w_5pos(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - bool w_vol(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - bool w_spPitch(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - bool w_vPitch(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque); - - extern const char* _tele_screen_type_lookup[]; - bool w_tele_screen_type(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque); - - bool w_tele_sensor(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque); - - bool w_flightModes(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque); - - extern const char* _func_sound_lookup[]; - extern const uint8_t _func_sound_lookup_size; - - extern const char* _func_reset_param_lookup[]; - extern const char* _func_failsafe_lookup[]; - - extern const char* _adjust_gvar_mode_lookup[]; - extern const uint8_t _adjust_gvar_mode_lookup_size; - - bool w_zov_source(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque); - - bool w_zov_color(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque); - - extern const struct YamlIdStr enum_XJT_Subtypes[]; - extern const struct YamlIdStr enum_ISRM_Subtypes[]; - extern const struct YamlIdStr enum_R9M_Subtypes[]; - extern const struct YamlIdStr enum_FLYSKY_Subtypes[]; - extern const struct YamlIdStr enum_DSM2_Subtypes[]; - - bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, - yaml_writer_func wf, void* opaque); - - bool w_channelsCount(const YamlNode* node, uint32_t val, yaml_writer_func wf, - void* opaque); - - extern const struct YamlIdStr enum_UartModes[]; -}; - // // WARNING: // ======== @@ -142,7 +71,7 @@ static bool w_semver(void* user, uint8_t* data, uint32_t bitoffs, static bool w_board(void* user, uint8_t* data, uint32_t bitoffs, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_board(user, data, bitoffs, wf, opaque); + return wf(opaque, FLAVOUR, sizeof(FLAVOUR)-1); } static uint32_t in_read_weight(const YamlNode* node, const char* val, uint8_t val_len) @@ -173,10 +102,22 @@ static uint32_t in_read_weight(const YamlNode* node, const char* val, uint8_t va return (uint32_t)yaml_str2int(val, val_len); } -static bool in_write_weight(const YamlNode* node, uint32_t val, - yaml_writer_func wf, void* opaque) +bool in_write_weight(const YamlNode* node, uint32_t val, yaml_writer_func wf, + void* opaque) { - return yaml_conv_220::in_write_weight(node, val, wf, opaque); + int32_t sval = yaml_to_signed(val, node->size <= 11 ? node->size : 11); + int32_t gvar = (node->size > 8 ? GV1_LARGE : GV1_SMALL); + + if (sval >= gvar - 10 && sval <= gvar) { + char n = gvar - sval + '0'; + return wf(opaque, "-GV", 3) && wf(opaque, &n, 1); + } else if (sval <= -gvar + 10 && sval >= -gvar) { + char n = val - gvar + '1'; + return wf(opaque, "GV", 2) && wf(opaque, &n, 1); + } + + char* s = yaml_signed2str(sval); + return wf(opaque, s, strlen(s)); } extern const struct YamlIdStr enum_MixSources[]; @@ -274,6 +215,15 @@ static uint32_t r_mixSrcRaw(const YamlNode* node, const char* val, uint8_t val_l static constexpr char closing_parenthesis[] = ")"; +bool output_source_1_param(const char* src_prefix, size_t src_len, uint32_t n, + yaml_writer_func wf, void* opaque) +{ + if (!wf(opaque, src_prefix, src_len)) return false; + const char* str = yaml_unsigned2str(n); + if (!wf(opaque, str, strlen(str))) return false; + return true; +} + static bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { const char* str = nullptr; @@ -293,8 +243,7 @@ static bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, val -= MIXSRC_FIRST_LUA; uint32_t script = val / MAX_SCRIPT_OUTPUTS; - if (!yaml_conv_220::output_source_1_param("lua(", 4, script, wf, - opaque)) + if (!output_source_1_param("lua(", 4, script, wf, opaque)) return false; if (!wf(opaque, ",", 1)) return false; @@ -309,7 +258,7 @@ static bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, && val <= MIXSRC_LAST_LOGICAL_SWITCH) { val -= MIXSRC_FIRST_LOGICAL_SWITCH; - if (!yaml_conv_220::output_source_1_param("ls(", 3, val + 1, wf, opaque)) + if (!output_source_1_param("ls(", 3, val + 1, wf, opaque)) return false; str = closing_parenthesis; } @@ -317,7 +266,7 @@ static bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, && val <= MIXSRC_LAST_TRAINER) { val -= MIXSRC_FIRST_TRAINER; - if (!yaml_conv_220::output_source_1_param("tr(", 3, val, wf, opaque)) + if (!output_source_1_param("tr(", 3, val, wf, opaque)) return false; str = closing_parenthesis; } @@ -325,7 +274,7 @@ static bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, && val <= MIXSRC_LAST_CH) { val -= MIXSRC_FIRST_CH; - if (!yaml_conv_220::output_source_1_param("ch(", 3, val, wf, opaque)) + if (!output_source_1_param("ch(", 3, val, wf, opaque)) return false; str = closing_parenthesis; } @@ -333,7 +282,7 @@ static bool w_mixSrcRaw(const YamlNode* node, uint32_t val, yaml_writer_func wf, && val <= MIXSRC_LAST_GVAR) { val -= MIXSRC_FIRST_GVAR; - if (!yaml_conv_220::output_source_1_param("gv(", 3, val, wf, opaque)) + if (!output_source_1_param("gv(", 3, val, wf, opaque)) return false; str = closing_parenthesis; } @@ -397,7 +346,8 @@ static uint32_t r_vbat_min(const YamlNode* node, const char* val, uint8_t val_le static bool w_vbat_min(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_vbat_min(node, val, wf, opaque); + char* s = yaml_signed2str(yaml_to_signed(val,node->size) + 90); + return wf(opaque, s, strlen(s)); } static uint32_t r_vbat_max(const YamlNode* node, const char* val, uint8_t val_len) @@ -408,13 +358,18 @@ static uint32_t r_vbat_max(const YamlNode* node, const char* val, uint8_t val_le static bool w_vbat_max(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_vbat_max(node, val, wf, opaque); + char* s = yaml_signed2str(yaml_to_signed(val,node->size) + 120); + return wf(opaque, s, strlen(s)); } #if defined(COLORLCD) static uint8_t select_zov(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::select_zov(user, data, bitoffs); + data += bitoffs >> 3UL; + data -= offsetof(ZoneOptionValueTyped, value); + ZoneOptionValueEnum* p_zovt = (ZoneOptionValueEnum*)data; + if (*p_zovt > ZOV_Color) return 0; + return *p_zovt; } void r_zov_source(void* user, uint8_t* data, uint32_t bitoffs, @@ -454,7 +409,15 @@ void r_zov_color(void* user, uint8_t* data, uint32_t bitoffs, bool w_zov_color(void* user, uint8_t* data, uint32_t bitoffs, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_zov_color(user, data, bitoffs, wf, opaque); + data += bitoffs >> 3UL; + auto p_val = reinterpret_cast(data); + + uint32_t color = (uint32_t)GET_RED(p_val->unsignedValue) << 16 | + (uint32_t)GET_GREEN(p_val->unsignedValue) << 8 | + (uint32_t)GET_BLUE(p_val->unsignedValue); + + if (!wf(opaque, "0x", 2)) return false; + return wf(opaque, yaml_rgb2hex(color), 3 * 2); } #endif @@ -499,22 +462,55 @@ static uint8_t select_mod_type(void* user, uint8_t* data, uint32_t bitoffs) static uint8_t select_script_input(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::select_script_input(user, data, bitoffs); + // always use 'value' + return 0; } static uint8_t select_id1(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::select_id1(user, data, bitoffs); + data += bitoffs >> 3UL; + const TelemetrySensor* sensor = (const TelemetrySensor*)data; + + if (sensor->type == TELEM_TYPE_CALCULATED + && sensor->persistent) + return 1; + + return 0; } static uint8_t select_id2(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::select_id2(user, data, bitoffs); + data += bitoffs >> 3UL; + data -= 2 /* size of id1 union */; + const TelemetrySensor* sensor = (const TelemetrySensor*)data; + + if (sensor->type == TELEM_TYPE_CALCULATED) + return 2; // formula + + return 1; // instance } static uint8_t select_sensor_cfg(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::select_sensor_cfg(user, data, bitoffs); + data += bitoffs >> 3UL; + data -= offsetof(TelemetrySensor, param); + const TelemetrySensor* sensor = (const TelemetrySensor*)data; + + if (sensor->unit < UNIT_FIRST_VIRTUAL) { + if (sensor->type == TELEM_TYPE_CALCULATED) { + switch(sensor->formula) { + case TELEM_FORMULA_CELL: return 1; // cell + case TELEM_FORMULA_DIST: return 4; // dist + case TELEM_FORMULA_CONSUMPTION: return 3; // consumption + case TELEM_FORMULA_TOTALIZE: return 3; // consumption + default: return 2; // calc + } + } else { + return 0; // custom + } + } + + return 5; } static uint32_t r_calib(void* user, const char* val, uint8_t val_len) @@ -635,9 +631,17 @@ static bool sw_name_write(void* user, uint8_t* data, uint32_t bitoffs, return wf(opaque, "\"", 1); } +static const struct YamlIdStr enum_SwitchConfig[] = { + { SWITCH_NONE, "none" }, + { SWITCH_TOGGLE, "toggle" }, + { SWITCH_2POS, "2pos" }, + { SWITCH_3POS, "3pos" }, + { 0, NULL } +}; + static const struct YamlNode struct_switchConfig[] = { YAML_IDX_CUST( "sw", sw_read, sw_write), - YAML_ENUM( "type", 2, yaml_conv_220::enum_SwitchConfig), + YAML_ENUM( "type", 2, enum_SwitchConfig), YAML_CUSTOM( "name", sw_name_read, sw_name_write), YAML_END }; @@ -905,22 +909,43 @@ bool w_swtchSrc(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* o bool cfn_is_active(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::cfn_is_active(user, data, bitoffs); + data += bitoffs >> 3UL; + return ((CustomFunctionData*)data)->swtch; } static bool gvar_is_active(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::gvar_is_active(user, data, bitoffs); + // TODO: no need to output 0 values for FM0 + gvar_t* gvar = (gvar_t*)(data + (bitoffs>>3UL)); + return *gvar != GVAR_MAX+1; } static bool fmd_is_active(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::fmd_is_active(user, data, bitoffs); + auto tw = reinterpret_cast(user); + uint16_t idx = tw->getElmts(); + + // FM0 defaults to all 0 + if (idx == 0) { + return !yaml_is_zero(data, bitoffs, sizeof(FlightModeData) << 3UL); + } + + // assumes gvars array is last + bool is_active = !yaml_is_zero(data, bitoffs, offsetof(FlightModeData, gvars) << 3UL); + + data += bitoffs >> 3UL; + FlightModeData* fmd = (FlightModeData*)(data); + for (uint8_t i=0; igvars[i] != GVAR_MAX+1; // FM0 -> default + } + + return is_active; } static bool swash_is_active(void* user, uint8_t* data, uint32_t bitoffs) { - return yaml_conv_220::swash_is_active(user, data, bitoffs); + auto swashR = reinterpret_cast(data + (bitoffs >> 3UL)); + return swashR->type | swashR->value; } static void r_swtchWarn(void* user, uint8_t* data, uint32_t bitoffs, @@ -1034,17 +1059,21 @@ static uint32_t r_5pos(const YamlNode* node, const char* val, uint8_t val_len) static bool w_5pos(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_5pos(node, val, wf, 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); + 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) { - return yaml_conv_220::w_vol(node, val, wf, 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) @@ -1054,7 +1083,8 @@ static uint32_t r_spPitch(const YamlNode* node, const char* val, uint8_t val_len static bool w_spPitch(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_spPitch(node, val, wf, 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) @@ -1064,7 +1094,9 @@ static uint32_t r_vPitch(const YamlNode* node, const char* val, uint8_t val_len) static bool w_vPitch(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_vPitch(node, val, wf, opaque); + int32_t sval = yaml_to_signed(val,node->size); + char* s = yaml_signed2str(sval * 10); + return wf(opaque, s, strlen(s)); } static const struct YamlIdStr enum_TrainerMode[] = { @@ -1101,12 +1133,19 @@ static bool w_trainerMode(const YamlNode* node, uint32_t val, #if !defined(COLORLCD) +const char* _tele_screen_type_lookup[] = { + "NONE", + "VALUES", + "BARS", + "SCRIPT", +}; + static void r_tele_screen_type(void* user, uint8_t* data, uint32_t bitoffs, const char* val, uint8_t val_len) { uint8_t type = 0; for (uint8_t i = 0; i < 4; i++) { - if (!strncmp(val, yaml_conv_220::_tele_screen_type_lookup[i], val_len)) { + if (!strncmp(val, _tele_screen_type_lookup[i], val_len)) { type = i; break; } @@ -1124,7 +1163,14 @@ static void r_tele_screen_type(void* user, uint8_t* data, uint32_t bitoffs, static bool w_tele_screen_type(void* user, uint8_t* data, uint32_t bitoffs, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_tele_screen_type(user, data, bitoffs, wf, opaque); + auto tw = reinterpret_cast(user); + uint16_t idx = tw->getElmts(1); + + data -= sizeof(TelemetryScreenData) * idx + 1; + uint8_t type = ((*data) >> (2 * idx)) & 0x03; + + const char* str = _tele_screen_type_lookup[type]; + return wf(opaque, str, strlen(str)); } static uint8_t select_tele_screen_data(void* user, uint8_t* data, uint32_t bitoffs) @@ -1159,7 +1205,12 @@ static uint32_t r_tele_sensor(const YamlNode* node, const char* val, uint8_t val static bool w_tele_sensor(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_tele_sensor(node, val, wf, opaque); + if (!val) { + return wf(opaque, "none", 4); + } + + const char* str = yaml_unsigned2str(val-1); + return wf(opaque, str, strlen(str)); } static uint32_t r_flightModes(const YamlNode* node, const char* val, uint8_t val_len) @@ -1178,9 +1229,31 @@ static uint32_t r_flightModes(const YamlNode* node, const char* val, uint8_t val static bool w_flightModes(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_flightModes(node, val, wf, opaque); + for (uint32_t i = 0; i < node->size; i++) { + uint32_t bit = (val >> i) & 1; + if (!wf(opaque, bit ? "1" : "0", 1)) return false; + } + return true; } +static const char* _func_reset_param_lookup[] = { + "Tmr1","Tmr2","Tmr3","All","Tele" +}; + +static const char* _func_failsafe_lookup[] = { + "Int","Ext" +}; + +static const char* _func_sound_lookup[] = { + "Bp1","Bp2","Bp3","Wrn1","Wrn2", + "Chee","Rata","Tick","Sirn","Ring", + "SciF","Robt","Chrp","Tada","Crck","Alrm" +}; + +static const char* _adjust_gvar_mode_lookup[] = { + "Cst", "Src", "GVar", "IncDec" +}; + static void r_customFn(void* user, uint8_t* data, uint32_t bitoffs, const char* val, uint8_t val_len) { @@ -1269,8 +1342,8 @@ static void r_customFn(void* user, uint8_t* data, uint32_t bitoffs, case FUNC_PLAY_SOUND: // find "," and cut val_len - for (int i=0; i < yaml_conv_220::_func_sound_lookup_size; i++) { - if (!strncmp(yaml_conv_220::_func_sound_lookup[i],val,l_sep)) { + for (unsigned i=0; i < DIM(_func_sound_lookup); i++) { + if (!strncmp(_func_sound_lookup[i],val,l_sep)) { CFN_PARAM(cfn) = i; break; } @@ -1342,8 +1415,8 @@ static void r_customFn(void* user, uint8_t* data, uint32_t bitoffs, l_sep = sep ? sep - val : val_len; // parse CFN_GVAR_MODE - for (int i=0; i < yaml_conv_220::_adjust_gvar_mode_lookup_size; i++) { - if (!strncmp(yaml_conv_220::_adjust_gvar_mode_lookup[i],val,l_sep)) { + for (unsigned i=0; i < DIM(_adjust_gvar_mode_lookup); i++) { + if (!strncmp(_adjust_gvar_mode_lookup[i],val,l_sep)) { CFN_GVAR_MODE(cfn) = i; break; } @@ -1458,7 +1531,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, case FUNC_RESET: if (CFN_PARAM(cfn) < FUNC_RESET_PARAM_FIRST_TELEM) { // Tmr1,Tmr2,Tmr3,All - str = yaml_conv_220::_func_reset_param_lookup[CFN_PARAM(cfn)]; + str = _func_reset_param_lookup[CFN_PARAM(cfn)]; } else { // sensor index str = yaml_unsigned2str(CFN_PARAM(cfn) - FUNC_RESET_PARAM_FIRST_TELEM); @@ -1474,7 +1547,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, case FUNC_PLAY_SOUND: // Bp1,Bp2,Bp3,Wrn1,Wrn2,Chee,Rata,Tick,Sirn,Ring,SciF,Robt,Chrp,Tada,Crck,Alrm - str = yaml_conv_220::_func_sound_lookup[CFN_PARAM(cfn)]; + str = _func_sound_lookup[CFN_PARAM(cfn)]; if (!wf(opaque, str, strlen(str))) return false; break; @@ -1487,7 +1560,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, case FUNC_SET_TIMER: // Tmr1,Tmr2,Tmr3 - str = yaml_conv_220::_func_reset_param_lookup[CFN_TIMER_INDEX(cfn)]; + str = _func_reset_param_lookup[CFN_TIMER_INDEX(cfn)]; if (!wf(opaque, str, strlen(str))) return false; if (!wf(opaque,",",1)) return false; str = yaml_unsigned2str(CFN_PARAM(cfn)); @@ -1496,7 +1569,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, case FUNC_SET_FAILSAFE: // Int,Ext - str = yaml_conv_220::_func_failsafe_lookup[CFN_PARAM(cfn)]; + str = _func_failsafe_lookup[CFN_PARAM(cfn)]; if (!wf(opaque, str, strlen(str))) return false; break; @@ -1515,7 +1588,7 @@ static bool w_customFn(void* user, uint8_t* data, uint32_t bitoffs, if (!wf(opaque,",",1)) return false; // output CFN_GVAR_MODE - str = yaml_conv_220::_adjust_gvar_mode_lookup[CFN_GVAR_MODE(cfn)]; + str = _adjust_gvar_mode_lookup[CFN_GVAR_MODE(cfn)]; if (!wf(opaque, str, strlen(str))) return false; if (!wf(opaque,",",1)) return false; @@ -1731,6 +1804,43 @@ static bool w_thrSrc(const YamlNode* node, uint32_t val, yaml_writer_func wf, return w_mixSrcRaw(nullptr, src, wf, opaque); } +static const struct YamlIdStr enum_XJT_Subtypes[] = { + { MODULE_SUBTYPE_PXX1_ACCST_D16, "D16" }, + { MODULE_SUBTYPE_PXX1_ACCST_D8, "D8" }, + { MODULE_SUBTYPE_PXX1_ACCST_LR12, "LR12" }, + { 0, NULL } +}; + +static const struct YamlIdStr enum_ISRM_Subtypes[] = { + { MODULE_SUBTYPE_ISRM_PXX2_ACCESS, "ACCESS" }, + { MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, "D16" }, + // unused !!! + // { MODULE_SUBTYPE_ISRM_PXX2_ACCST_LR12, "LR12" }, + // { MODULE_SUBTYPE_ISRM_PXX2_ACCST_D8, "D8" }, + { 0, NULL } +}; + +static const struct YamlIdStr enum_R9M_Subtypes[] = { + { MODULE_SUBTYPE_R9M_FCC, "FCC" }, + { MODULE_SUBTYPE_R9M_EU, "EU" }, + { MODULE_SUBTYPE_R9M_EUPLUS, "EUPLUS" }, + { MODULE_SUBTYPE_R9M_AUPLUS, "AUPLUS" }, + { 0, NULL } +}; + +static const struct YamlIdStr enum_FLYSKY_Subtypes[] = { + { FLYSKY_SUBTYPE_AFHDS3, "AFHDS3" }, + { FLYSKY_SUBTYPE_AFHDS2A, "AFHDS2A" }, + { 0, NULL } +}; + +static const struct YamlIdStr enum_DSM2_Subtypes[] = { + { 0, "LP45" }, + { 1, "DSM2" }, + { 2, "DSMX" }, + { 0, NULL } +}; + static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, const char* val, uint8_t val_len) { @@ -1739,13 +1849,13 @@ static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, auto md = reinterpret_cast(data); if (isModuleTypeXJT(md->type)) { - md->subType = yaml_parse_enum(yaml_conv_220::enum_XJT_Subtypes, val, val_len); + md->subType = yaml_parse_enum(enum_XJT_Subtypes, val, val_len); } else if (isModuleTypeISRM(md->type)) { - md->subType = yaml_parse_enum(yaml_conv_220::enum_ISRM_Subtypes, val, val_len); + md->subType = yaml_parse_enum(enum_ISRM_Subtypes, val, val_len); } else if (isModuleTypeR9MNonAccess(md->type)) { - md->subType = yaml_parse_enum(yaml_conv_220::enum_R9M_Subtypes, val, val_len); + md->subType = yaml_parse_enum(enum_R9M_Subtypes, val, val_len); } else if (md->type == MODULE_TYPE_FLYSKY) { - md->subType = yaml_parse_enum(yaml_conv_220::enum_FLYSKY_Subtypes, val, val_len); + md->subType = yaml_parse_enum(enum_FLYSKY_Subtypes, val, val_len); } else if (md->type == MODULE_TYPE_MULTIMODULE) { #if defined(MULTIMODULE) // Read type/subType by the book (see MPM documentation) @@ -1770,7 +1880,7 @@ static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, } #endif } else if (md->type == MODULE_TYPE_DSM2) { - md->subType = yaml_parse_enum(yaml_conv_220::enum_DSM2_Subtypes, val, val_len); + md->subType = yaml_parse_enum(enum_DSM2_Subtypes, val, val_len); } else { md->subType = yaml_str2uint(val, val_len); } @@ -1787,13 +1897,13 @@ static bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, auto md = reinterpret_cast(data); int32_t val = md->subType; if (md->type == MODULE_TYPE_XJT_PXX1 || md->type == MODULE_TYPE_XJT_LITE_PXX2) { - str = yaml_output_enum(val, yaml_conv_220::enum_XJT_Subtypes); + str = yaml_output_enum(val, enum_XJT_Subtypes); } else if (md->type == MODULE_TYPE_ISRM_PXX2) { - str = yaml_output_enum(val, yaml_conv_220::enum_ISRM_Subtypes); + str = yaml_output_enum(val, enum_ISRM_Subtypes); } else if (md->type == MODULE_TYPE_R9M_PXX1 || md->type == MODULE_TYPE_R9M_LITE_PXX1) { - str = yaml_output_enum(val, yaml_conv_220::enum_R9M_Subtypes); + str = yaml_output_enum(val, enum_R9M_Subtypes); } else if (md->type == MODULE_TYPE_FLYSKY) { - str = yaml_output_enum(val, yaml_conv_220::enum_FLYSKY_Subtypes); + str = yaml_output_enum(val, enum_FLYSKY_Subtypes); } else if (md->type == MODULE_TYPE_MULTIMODULE) { #if defined(MULTIMODULE) // Use type/subType by the book (see MPM documentation) @@ -1810,7 +1920,7 @@ static bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, str = yaml_unsigned2str(subtype); #endif } else if (md->type == MODULE_TYPE_DSM2) { - str = yaml_output_enum(md->subType, yaml_conv_220::enum_DSM2_Subtypes); + str = yaml_output_enum(md->subType, enum_DSM2_Subtypes); } else { str = yaml_unsigned2str(val); } @@ -1828,7 +1938,10 @@ static uint32_t r_channelsCount(const YamlNode* node, const char* val, uint8_t v bool w_channelsCount(const YamlNode* node, uint32_t val, yaml_writer_func wf, void* opaque) { - return yaml_conv_220::w_channelsCount(node, val, wf, opaque); + // offset 8 + int32_t sval = yaml_to_signed(val, node->size) + 8; + const char* str = yaml_signed2str(sval); + return wf(opaque,str,strlen(str)); } static void r_jitterFilter(void* user, uint8_t* data, uint32_t bitoffs, @@ -1860,7 +1973,6 @@ static const struct YamlIdStr enum_SerialPort[] = { { 0, NULL } }; -#if STORAGE_CONVERSIONS >= 221 const struct YamlIdStr _old_enum_UartModes[] = { { UART_MODE_NONE, "MODE_NONE" }, { UART_MODE_TELEMETRY_MIRROR, "MODE_TELEMETRY_MIRROR" }, @@ -1869,7 +1981,6 @@ const struct YamlIdStr _old_enum_UartModes[] = { { UART_MODE_LUA, "MODE_LUA" }, { 0, NULL } }; -#endif static const struct YamlIdStr enum_UartModes[] = { { UART_MODE_NONE, "NONE" }, @@ -1927,11 +2038,7 @@ static void r_serialMode(void* user, uint8_t* data, uint32_t bitoffs, else return; -#if STORAGE_CONVERSIONS < 221 - auto m = yaml_parse_enum(yaml_conv_220::enum_UartModes, val, val_len); -#else auto m = yaml_parse_enum(_old_enum_UartModes, val, val_len); -#endif if (!m) return; auto serialPort = reinterpret_cast(data); diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index e1e3a32f510..1963b2e4b9b 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -13,8 +13,6 @@ set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(CPU_TYPE STM32F4) set(HSE_VALUE 12000000) set(SDCARD YES) -set(STORAGE SDCARD) -set(STORAGE_FORMAT RAW) set(STORAGE_MODELSLIST YES) set(HAPTIC YES) set(GUI_DIR colorlcd) @@ -34,11 +32,6 @@ else() set(LINKER_SCRIPT targets/horus/stm32f4_flash.ld) endif() -if(YAML_STORAGE) - set(STORAGE_CONVERT RAW) - set(STORAGE_FORMAT YAML) -endif() - # for size report script set(CPU_TYPE_FULL STM32F429xI) set(SIZE_TARGET_MEM_DEFINE "MEM_SIZE_SDRAM2=8192") diff --git a/radio/src/targets/nv14/CMakeLists.txt b/radio/src/targets/nv14/CMakeLists.txt index a01c4372698..1074b79891a 100644 --- a/radio/src/targets/nv14/CMakeLists.txt +++ b/radio/src/targets/nv14/CMakeLists.txt @@ -11,8 +11,6 @@ set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(CPU_TYPE STM32F4) set(HSE_VALUE 12000000) set(SDCARD YES) -set(STORAGE SDCARD) -set(STORAGE_FORMAT RAW) set(STORAGE_MODELSLIST YES) set(HAPTIC YES) set(GUI_DIR colorlcd) diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index afedf0bfa66..829f698d457 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -520,14 +520,6 @@ endif() set(HSE_VALUE 12000000) set(SDCARD YES) -if(YAML_STORAGE) - set(STORAGE SDCARD) - set(STORAGE_FORMAT YAML) - set(STORAGE_CONVERT EEPROM_RLC) -else() - set(STORAGE EEPROM) - set(STORAGE_FORMAT RLC) -endif() set(TARGET_DIR taranis) set(PPM_LIMITS_SYMETRICAL YES) diff --git a/radio/src/tests/conversions.cpp b/radio/src/tests/conversions.cpp index 107f002262a..b63637655e7 100644 --- a/radio/src/tests/conversions.cpp +++ b/radio/src/tests/conversions.cpp @@ -20,25 +20,14 @@ */ #include "gtests.h" -#include "storage/conversions/conversions.h" #include "location.h" -#if defined(EEPROM) || defined(EEPROM_RLC) -#include -#endif +#if 0 #if defined(SDCARD_YAML) #include #endif -#if defined(EEPROM_SIZE) -void loadEEPROMFile(const char * filename) -{ - FILE * f = fopen(filename, "rb"); - assert(fread(eeprom, 1, EEPROM_SIZE, f) == EEPROM_SIZE); -} -#endif - #if defined(PCBX9DP) TEST(Conversions, ConversionX9DPFrom23) { @@ -544,3 +533,4 @@ TEST(Conversions, ConversionTX16SFrom25) } #endif +#endif