From 86d1ca43642c97cfb760d0d65f93c96c15b34338 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sat, 12 Mar 2022 16:36:55 +0100 Subject: [PATCH] Reorganize module type/subType/rfProtocol --- radio/src/datastructs_private.h | 26 ++------- radio/src/gui/128x64/model_setup.cpp | 14 ++--- radio/src/gui/212x64/model_setup.cpp | 18 +++--- radio/src/gui/colorlcd/model_setup.cpp | 10 ++-- radio/src/gui/colorlcd/multi_rfprotos.cpp | 4 +- .../src/gui/common/stdlcd/draw_functions.cpp | 2 +- radio/src/gui/gui_common.cpp | 2 +- radio/src/gui/gui_common.h | 10 ++-- radio/src/lua/api_model.cpp | 4 +- radio/src/pulses/modules_helpers.h | 32 +++++------ radio/src/pulses/multi.cpp | 55 ++----------------- radio/src/pulses/multi.h | 1 - radio/src/pulses/pulses.cpp | 5 +- radio/src/storage/modelslist.cpp | 14 ++--- radio/src/storage/modelslist.h | 2 +- radio/src/storage/storage_common.cpp | 10 +--- .../storage/yaml/yaml_datastructs_funcs.cpp | 4 +- .../storage/yaml/yaml_datastructs_nv14.cpp | 13 ++--- .../src/storage/yaml/yaml_datastructs_t12.cpp | 13 ++--- .../src/storage/yaml/yaml_datastructs_t8.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_tlite.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_tpro.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_tx12.cpp | 13 ++--- .../src/storage/yaml/yaml_datastructs_x10.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_x12s.cpp | 13 ++--- .../src/storage/yaml/yaml_datastructs_x7.cpp | 13 ++--- .../src/storage/yaml/yaml_datastructs_x9d.cpp | 13 ++--- .../src/storage/yaml/yaml_datastructs_x9e.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_x9lite.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_x9lites.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_xlite.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_xlites.cpp | 13 ++--- .../storage/yaml/yaml_datastructs_zorro.cpp | 13 ++--- .../src/targets/taranis/telemetry_driver.cpp | 3 +- radio/src/telemetry/multi.cpp | 4 +- radio/src/telemetry/spektrum.cpp | 4 +- radio/src/telemetry/telemetry.h | 4 +- radio/src/tests/conversions.cpp | 2 +- 38 files changed, 163 insertions(+), 275 deletions(-) diff --git a/radio/src/datastructs_private.h b/radio/src/datastructs_private.h index 513bc76d9..c95a4c13b 100644 --- a/radio/src/datastructs_private.h +++ b/radio/src/datastructs_private.h @@ -444,15 +444,12 @@ PACK(struct TrainerModuleData { #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 SKIP; + uint8_t type ENUM(ModuleType); CUST_ATTR(subType,r_modSubtype,w_modSubtype); uint8_t channelsStart; int8_t channelsCount CUST(r_channelsCount,w_channelsCount); // 0=8 channels uint8_t failsafeMode:4 ENUM(FailsafeModes); // only 3 bits used - uint8_t subType:3 SKIP; - uint8_t invertedSerial:1 SKIP; // telemetry serial inverted from standard + uint8_t subType:4 SKIP; union { uint8_t raw[PXX2_MAX_RECEIVERS_PER_MODULE * PXX2_LEN_RX_NAME + 1]; @@ -463,16 +460,15 @@ PACK(struct ModuleData { int8_t frameLength; } ppm); NOBACKUP(struct { - uint8_t rfProtocolExtra:3 SKIP; + uint8_t rfProtocol SKIP; uint8_t disableTelemetry:1; uint8_t disableMapping:1; - uint8_t customProto:1 SKIP; uint8_t autoBindMode:1; uint8_t lowPowerMode:1; - int8_t optionValue; uint8_t receiverTelemetryOff:1; uint8_t receiverHigherChannels:1; - uint8_t spare:6 SKIP; + uint8_t spare:2 SKIP; + int8_t optionValue; } multi); NOBACKUP(struct { uint8_t power:2; // 0=10 mW, 1=100 mW, 2=500 mW, 3=1W @@ -538,18 +534,6 @@ PACK(struct ModuleData { } crsf); } 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; diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 947173537..6e388e21c 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -972,7 +972,7 @@ void menuModelSetup(event_t event) else if (isModuleISRM(moduleIdx)) lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_ISRM_RF_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].subType, menuHorizontalPosition==1 ? attr : 0); else if (isModuleDSM2(moduleIdx)) - lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_DSM_PROTOCOLS, g_model.moduleData[moduleIdx].rfProtocol, menuHorizontalPosition==1 ? attr : 0); + lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_DSM_PROTOCOLS, g_model.moduleData[moduleIdx].subType, menuHorizontalPosition==1 ? attr : 0); else if (isModuleR9MNonAccess(moduleIdx)) lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_R9M_REGION, g_model.moduleData[moduleIdx].subType, (menuHorizontalPosition==1 ? attr : 0)); else if (moduleIdx == INTERNAL_MODULE && isModuleCrossfire(INTERNAL_MODULE)) @@ -1022,7 +1022,7 @@ void menuModelSetup(event_t event) g_model.moduleData[moduleIdx].subType = checkIncDec(event, g_model.moduleData[moduleIdx].subType, 0, MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16, EE_MODEL, isRfProtocolAvailable); } else if (isModuleDSM2(moduleIdx)) { - CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); + CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].subType, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); } else if (isModuleR9MNonAccess(moduleIdx)) { g_model.moduleData[moduleIdx].subType = checkIncDec(event, @@ -1129,10 +1129,10 @@ void menuModelSetup(event_t event) #endif { lcdDrawTextAlignedLeft(y, TR_TYPE); - int multi_rfProto = g_model.moduleData[moduleIdx].getMultiProtocol(); + int multi_rfProto = g_model.moduleData[moduleIdx].multi.rfProtocol; lcdDrawMultiProtocolString(MODEL_SETUP_2ND_COLUMN, y, moduleIdx, multi_rfProto, attr); if (attr) { - int multiRfProto = g_model.moduleData[moduleIdx].getMultiProtocol(); + int multiRfProto = g_model.moduleData[moduleIdx].multi.rfProtocol; MultiModuleStatus &status = getMultiModuleStatus(moduleIdx); if (status.isValid()) { int8_t direction = checkIncDec(event, 0, -1, 1); @@ -1153,7 +1153,7 @@ void menuModelSetup(event_t event) CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); } if (checkIncDec_Ret) { - g_model.moduleData[moduleIdx].setMultiProtocol(multiRfProto); + g_model.moduleData[moduleIdx].multi.rfProtocol = multiRfProto; g_model.moduleData[moduleIdx].subType = 0; resetMultiProtocolsOptions(moduleIdx); storageDirty(EE_MODEL); @@ -1670,7 +1670,7 @@ void menuModelSetup(event_t event) } int optionValue = g_model.moduleData[moduleIdx].multi.optionValue; - const uint8_t multi_proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + const uint8_t multi_proto = g_model.moduleData[moduleIdx].multi.rfProtocol; int8_t min, max; getMultiOptionValues(multi_proto, min, max); @@ -1824,7 +1824,7 @@ void menuModelSetup(event_t event) #if defined(HARDWARE_EXTERNAL_MODULE) case ITEM_MODEL_SETUP_EXTERNAL_MODULE_AUTOBIND: #endif - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) { + if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2) { int8_t value = (g_model.moduleData[moduleIdx].multi.optionValue & 0x02) >> 1; lcdDrawText(INDENT_WIDTH, y, STR_MULTI_SERVOFREQ); lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, value ? 11 : 22, attr); diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index b703f6d99..94825a043 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -940,7 +940,7 @@ void menuModelSetup(event_t event) if (isModuleXJT(EXTERNAL_MODULE)) lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_XJT_ACCST_RF_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==1 ? attr : 0); else if (isModuleDSM2(EXTERNAL_MODULE)) - lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_DSM_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0); + lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_DSM_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==1 ? attr : 0); else if (isModuleR9MNonAccess(EXTERNAL_MODULE)) lcdDrawTextAtIndex(lcdNextPos + 3, y, STR_R9M_REGION, g_model.moduleData[EXTERNAL_MODULE].subType, (menuHorizontalPosition==1 ? attr : 0)); #if defined(AFHDS3) @@ -970,14 +970,14 @@ void menuModelSetup(event_t event) case 1: if (isModuleDSM2(EXTERNAL_MODULE)) { - CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); + CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, DSM2_PROTO_LP45, DSM2_PROTO_DSMX); } #if defined(MULTIMODULE) else if (isModuleMultimodule(EXTERNAL_MODULE)) { - int multiRfProto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(); + int multiRfProto = g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol; CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); if (checkIncDec_Ret) { - g_model.moduleData[EXTERNAL_MODULE].setMultiProtocol(multiRfProto); + g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol = multiRfProto; g_model.moduleData[EXTERNAL_MODULE].subType = 0; resetMultiProtocolsOptions(EXTERNAL_MODULE); } @@ -1087,7 +1087,7 @@ void menuModelSetup(event_t event) { lcdDrawTextAlignedLeft(y, TR_TYPE); - uint8_t multi_rfProto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(); + uint8_t multi_rfProto = g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol; lcdDrawMultiProtocolString(MODEL_SETUP_2ND_COLUMN, y, EXTERNAL_MODULE, multi_rfProto, menuHorizontalPosition == 0 ? attr : 0); if (MULTIMODULE_HAS_SUBTYPE(EXTERNAL_MODULE)) lcdDrawMultiSubProtocolString(MODEL_SETUP_3RD_COLUMN + 15, y, EXTERNAL_MODULE, g_model.moduleData[EXTERNAL_MODULE].subType, @@ -1095,7 +1095,7 @@ void menuModelSetup(event_t event) if (attr) { switch (menuHorizontalPosition) { case 0: { - int multiRfProto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(); + int multiRfProto = g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol; MultiModuleStatus &status = getMultiModuleStatus(EXTERNAL_MODULE); if (status.isValid()) { int8_t direction = checkIncDec(event, 0, -1, 1); @@ -1116,7 +1116,7 @@ void menuModelSetup(event_t event) CHECK_INCDEC_MODELVAR_CHECK(event, multiRfProto, MODULE_SUBTYPE_MULTI_FIRST, MULTI_MAX_PROTOCOLS, isMultiProtocolSelectable); } if (checkIncDec_Ret) { - g_model.moduleData[EXTERNAL_MODULE].setMultiProtocol(multiRfProto); + g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol = multiRfProto; g_model.moduleData[EXTERNAL_MODULE].subType = 0; resetMultiProtocolsOptions(EXTERNAL_MODULE); storageDirty(EE_MODEL); @@ -1468,7 +1468,7 @@ void menuModelSetup(event_t event) } int optionValue = g_model.moduleData[moduleIdx].multi.optionValue; - const uint8_t multi_proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + const uint8_t multi_proto = g_model.moduleData[moduleIdx].multi.rfProtocol; int8_t min, max; getMultiOptionValues(multi_proto, min, max); @@ -1568,7 +1568,7 @@ void menuModelSetup(event_t event) #if defined (MULTIMODULE) case ITEM_MODEL_SETUP_EXTERNAL_MODULE_AUTOBIND: - if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) { + if (g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2) { int8_t value = (g_model.moduleData[EXTERNAL_MODULE].multi.optionValue & 0x02) >> 1; lcdDrawText(INDENT_WIDTH, y, STR_MULTI_SERVOFREQ); lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, value ? 11 : 22, attr); diff --git a/radio/src/gui/colorlcd/model_setup.cpp b/radio/src/gui/colorlcd/model_setup.cpp index 82e9a9c91..fd6bc81e8 100644 --- a/radio/src/gui/colorlcd/model_setup.cpp +++ b/radio/src/gui/colorlcd/model_setup.cpp @@ -655,7 +655,7 @@ class ModuleWindow : public FormGroup { } else if (isModuleDSM2(moduleIdx)) { new Choice(this, grid.getFieldSlot(2, 1), STR_DSM_PROTOCOLS, DSM2_PROTO_LP45, DSM2_PROTO_DSMX, - GET_SET_DEFAULT(g_model.moduleData[moduleIdx].rfProtocol)); + GET_SET_DEFAULT(g_model.moduleData[moduleIdx].subType)); } else if (isModuleR9M(moduleIdx)) { rfChoice = new Choice(this, grid.getFieldSlot(2, 1), STR_R9M_REGION, @@ -839,13 +839,13 @@ class ModuleWindow : public FormGroup { int count = LCD_W < LCD_H ? 1 - : (g_model.moduleData[moduleIdx].multi.customProto ? 3 : 2); + : (/*g_model.moduleData[moduleIdx].multi.customProto ? 3 :*/ 2); rfChoice = new MultiProtoChoice( this, grid.getFieldSlot(count, 0), moduleIdx, [=](int32_t newValue) { - g_model.moduleData[moduleIdx].setMultiProtocol(newValue); + g_model.moduleData[moduleIdx].multi.rfProtocol = newValue; g_model.moduleData[moduleIdx].subType = 0; resetMultiProtocolsOptions(moduleIdx); @@ -865,7 +865,7 @@ class ModuleWindow : public FormGroup { auto *rfProto = MultiRfProtocols::instance(moduleIdx)->getProto( - g_model.moduleData[moduleIdx].getMultiProtocol()); + g_model.moduleData[moduleIdx].multi.rfProtocol); if (rfProto && !rfProto->subProtos.empty()) { // Subtype (D16, DSMX,...) @@ -900,7 +900,7 @@ class ModuleWindow : public FormGroup { return std::string(msg); }, COLOR_THEME_PRIMARY1); - const uint8_t multi_proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + const uint8_t multi_proto = g_model.moduleData[moduleIdx].multi.rfProtocol; if (rfProto) { // Multi optional feature row const char *title = rfProto->getOptionStr(); diff --git a/radio/src/gui/colorlcd/multi_rfprotos.cpp b/radio/src/gui/colorlcd/multi_rfprotos.cpp index 1c5501b33..2a1a24366 100644 --- a/radio/src/gui/colorlcd/multi_rfprotos.cpp +++ b/radio/src/gui/colorlcd/multi_rfprotos.cpp @@ -85,7 +85,7 @@ MultiProtoChoice::MultiProtoChoice(FormGroup* parent, const rect_t& rect, std::function updateForm) : Choice( parent, rect, 0, 0, - [=] { return g_model.moduleData[moduleIdx].getMultiProtocol(); }, + [=] { return g_model.moduleData[moduleIdx].multi.rfProtocol; }, setValue), moduleIdx(moduleIdx) { @@ -118,7 +118,7 @@ void MultiProtoChoice::openMenu() addProto(p.proto, p.label.c_str()); }); - int idx = protos->getIndex(g_model.moduleData[moduleIdx].getMultiProtocol()); + int idx = protos->getIndex(g_model.moduleData[moduleIdx].multi.rfProtocol); if (idx >= 0) menu->select(idx); } diff --git a/radio/src/gui/common/stdlcd/draw_functions.cpp b/radio/src/gui/common/stdlcd/draw_functions.cpp index e7e8aca13..2ddb186c6 100644 --- a/radio/src/gui/common/stdlcd/draw_functions.cpp +++ b/radio/src/gui/common/stdlcd/draw_functions.cpp @@ -40,7 +40,7 @@ void lcdDrawMultiProtocolString(coord_t x, coord_t y, uint8_t moduleIdx, uint8_t void lcdDrawMultiSubProtocolString(coord_t x, coord_t y, uint8_t moduleIdx, uint8_t subType, LcdFlags flags) { MultiModuleStatus & status = getMultiModuleStatus(moduleIdx); - const mm_protocol_definition * pdef = getMultiProtocolDefinition(g_model.moduleData[moduleIdx].getMultiProtocol()); + const mm_protocol_definition * pdef = getMultiProtocolDefinition(g_model.moduleData[moduleIdx].multi.rfProtocol); if (status.protocolName[0] && status.isValid()) { lcdDrawText(x, y, status.protocolSubName, flags); diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 7ffa5de8b..1b67c1330 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -1163,7 +1163,7 @@ const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol) #if defined(MULTIMODULE) const char * getMultiOptionTitleStatic(uint8_t moduleIdx) { - const uint8_t multi_proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + const uint8_t multi_proto = g_model.moduleData[moduleIdx].multi.rfProtocol; const mm_protocol_definition * pdef = getMultiProtocolDefinition(multi_proto); return pdef->optionsstr; } diff --git a/radio/src/gui/gui_common.h b/radio/src/gui/gui_common.h index 7758dd746..c0b153226 100644 --- a/radio/src/gui/gui_common.h +++ b/radio/src/gui/gui_common.h @@ -179,7 +179,7 @@ inline uint8_t MODULE_CHANNELS_ROWS(int moduleIdx) else if (isModuleMultimodule(moduleIdx)) { if (IS_RX_MULTI(moduleIdx)) return HIDDEN_ROW; - else if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) + else if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2) return 1; else return 0; @@ -226,7 +226,7 @@ inline uint8_t MULTI_DISABLE_CHAN_MAP_ROW_STATIC(uint8_t moduleIdx) if (!isModuleMultimodule(moduleIdx)) return HIDDEN_ROW; - uint8_t protocol = g_model.moduleData[moduleIdx].getMultiProtocol(); + uint8_t protocol = g_model.moduleData[moduleIdx].multi.rfProtocol; if (protocol < MODULE_SUBTYPE_MULTI_LAST) { const mm_protocol_definition * pdef = getMultiProtocolDefinition(protocol); if (pdef->disable_ch_mapping) @@ -260,7 +260,7 @@ inline bool MULTIMODULE_PROTOCOL_KNOWN(uint8_t moduleIdx) return false; } - if (g_model.moduleData[moduleIdx].getMultiProtocol() < MODULE_SUBTYPE_MULTI_LAST) { + if (g_model.moduleData[moduleIdx].multi.rfProtocol < MODULE_SUBTYPE_MULTI_LAST) { return true; } @@ -275,7 +275,7 @@ inline bool MULTIMODULE_PROTOCOL_KNOWN(uint8_t moduleIdx) inline bool MULTIMODULE_HAS_SUBTYPE(uint8_t moduleIdx) { MultiModuleStatus &status = getMultiModuleStatus(moduleIdx); - int proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + int proto = g_model.moduleData[moduleIdx].multi.rfProtocol; if (proto == MODULE_SUBTYPE_MULTI_FRSKY) { return true; @@ -311,7 +311,7 @@ inline uint8_t MULTIMODULE_HASOPTIONS(uint8_t moduleIdx) if (!isModuleMultimodule(moduleIdx)) return false; - uint8_t protocol = g_model.moduleData[moduleIdx].getMultiProtocol(); + uint8_t protocol = g_model.moduleData[moduleIdx].multi.rfProtocol; MultiModuleStatus &status = getMultiModuleStatus(moduleIdx); if (status.isValid()) diff --git a/radio/src/lua/api_model.cpp b/radio/src/lua/api_model.cpp index cab38373d..cdbf236d4 100644 --- a/radio/src/lua/api_model.cpp +++ b/radio/src/lua/api_model.cpp @@ -157,7 +157,7 @@ static int luaModelGetModule(lua_State *L) lua_pushtableinteger(L, "Type", module.type); #if defined(MULTIMODULE) if (module.type == MODULE_TYPE_MULTIMODULE) { - int protocol = g_model.moduleData[idx].getMultiProtocol() + 1; + int protocol = g_model.moduleData[idx].multi.rfProtocol + 1; int subprotocol = g_model.moduleData[idx].subType; convertEtxProtocolToMulti(&protocol, &subprotocol); // Special treatment for the FrSky entry... lua_pushtableinteger(L, "protocol", protocol); @@ -234,7 +234,7 @@ static int luaModelSetModule(lua_State *L) #if defined(MULTIMODULE) if (protocol > 0 && subprotocol >= 0) { // Both are needed to compute etx protocol convertMultiProtocolToEtx(&protocol, &subprotocol); - g_model.moduleData[idx].setMultiProtocol(protocol - 1); + g_model.moduleData[idx].multi.rfProtocol = protocol - 1; g_model.moduleData[idx].subType = subprotocol; } #endif diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 4ed1e40d7..e04aa6b64 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -41,37 +41,37 @@ extern uint32_t NV14internalModuleFwVersion; #if defined (MULTIMODULE) #define IS_D16_MULTI(module) \ - (((g_model.moduleData[module].getMultiProtocol() == \ + (((g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_FRSKY) && \ (g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16 || \ g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_8CH || \ g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT || \ g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_LBT_8CH || \ g_model.moduleData[module].subType == MM_RF_FRSKY_SUBTYPE_D16_CLONED)) || \ - (g_model.moduleData[module].getMultiProtocol() == \ + (g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_FRSKYX2)) #define IS_R9_MULTI(module) \ - (g_model.moduleData[module].getMultiProtocol() == \ + (g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_FRSKY_R9) #define IS_HOTT_MULTI(module) \ - (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_HOTT) + (g_model.moduleData[module].multi.rfProtocol == MODULE_SUBTYPE_MULTI_HOTT) #define IS_CONFIG_MULTI(module) \ - (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_CONFIG) + (g_model.moduleData[module].multi.rfProtocol == MODULE_SUBTYPE_MULTI_CONFIG) #define IS_DSM_MULTI(module) \ - (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) + (g_model.moduleData[module].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2) #define IS_RX_MULTI(module) \ - ((g_model.moduleData[module].getMultiProtocol() == \ + ((g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_AFHDS2A_RX) || \ - (g_model.moduleData[module].getMultiProtocol() == \ + (g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_FRSKYX_RX) || \ - (g_model.moduleData[module].getMultiProtocol() == \ + (g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_BAYANG_RX) || \ - (g_model.moduleData[module].getMultiProtocol() == \ + (g_model.moduleData[module].multi.rfProtocol == \ MODULE_SUBTYPE_MULTI_DSM_RX)) #if defined(HARDWARE_INTERNAL_MODULE) @@ -123,7 +123,7 @@ const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol); inline uint8_t getMaxMultiSubtype(uint8_t moduleIdx) { MultiModuleStatus &status = getMultiModuleStatus(moduleIdx); - auto proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + auto proto = g_model.moduleData[moduleIdx].multi.rfProtocol; if (proto == MODULE_SUBTYPE_MULTI_FRSKY) { return 7; } @@ -148,7 +148,7 @@ inline bool isModuleMultimodule(uint8_t idx) inline bool isModuleMultimoduleDSM2(uint8_t idx) { return isModuleMultimodule(idx) && - g_model.moduleData[idx].getMultiProtocol() == + g_model.moduleData[idx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2; } #else @@ -593,7 +593,7 @@ inline bool isModuleFailsafeAvailable(uint8_t moduleIdx) return status.supportsFailsafe(); } else { - auto proto = g_model.moduleData[moduleIdx].getMultiProtocol(); + auto proto = g_model.moduleData[moduleIdx].multi.rfProtocol; const mm_protocol_definition * pdef = getMultiProtocolDefinition(proto); if (pdef) return pdef->failsafe; return false; @@ -649,7 +649,7 @@ inline uint8_t getMaxRxNum(uint8_t idx) #if defined(MULTIMODULE) if (isModuleMultimodule(idx)) { - switch (g_model.moduleData[idx].getMultiProtocol()) { + switch (g_model.moduleData[idx].multi.rfProtocol) { case MODULE_SUBTYPE_MULTI_OLRS: return 4; case MODULE_SUBTYPE_MULTI_BUGS: @@ -776,7 +776,7 @@ inline void resetAccessAuthenticationCount() inline void resetAfhds3Options(uint8_t moduleIdx) { auto & data = g_model.moduleData[moduleIdx]; - data.rfProtocol = 0; + //data.rfProtocol = 0; data.subType = 0; #if defined(AFHDS3) data.afhds3.bindPower = 0; @@ -824,7 +824,7 @@ inline void resetMultiProtocolsOptions(uint8_t moduleIdx) return; // Sensible default for DSM2 (same as for ppm): 7ch@22ms + Autodetect settings enabled - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) { + if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2) { g_model.moduleData[moduleIdx].multi.autoBindMode = 1; } else { diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index ff75960d4..364a69a42 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -65,49 +65,6 @@ etx_serial_init multiSerialInitParams = { }; #endif -void multiPatchCustom(uint8_t moduleIdx) -{ - if (g_model.moduleData[moduleIdx].multi.customProto) { - uint8_t type = g_model.moduleData[moduleIdx].getMultiProtocol() - 1; // custom where starting at 1, etx list at 0 - int subtype = g_model.moduleData[moduleIdx].subType; - - g_model.moduleData[moduleIdx].multi.customProto = 0; - - if (type == 2) { // multi PROTO_FRSKYD - g_model.moduleData[moduleIdx].subType = 1; // D8 - return; - } - else if (type == 14) { // multi PROTO_FRSKYX - g_model.moduleData[moduleIdx].setMultiProtocol(2); - switch (subtype) { - case 0: //D16-16 - g_model.moduleData[moduleIdx].subType = 0; - break; - case 1: //D16-8 - g_model.moduleData[moduleIdx].subType = 2; - break; - case 2: //EU-16 - g_model.moduleData[moduleIdx].subType = 4; - break; - case 3: //EU-8 - g_model.moduleData[moduleIdx].subType = 5; - break; - } - return; - } - else if (type == 24) { // multi PROTO_FRSKYV - g_model.moduleData[moduleIdx].setMultiProtocol(2); - g_model.moduleData[moduleIdx].subType = 3; - return; - } - if (type > 14) - type -= 1; - if (type > 24) - type -= 1; - g_model.moduleData[moduleIdx].setMultiProtocol(type); - } -} - static void sendMulti(uint8_t moduleIdx, uint8_t b) { #if defined(HARDWARE_INTERNAL_MODULE) @@ -201,7 +158,7 @@ void setupPulsesMulti(uint8_t moduleIdx) sendMulti(moduleIdx, invert[moduleIdx] & 0x08); } else { - sendMulti(moduleIdx, (uint8_t) (((g_model.moduleData[moduleIdx].getMultiProtocol() + 3) & 0xC0) + sendMulti(moduleIdx, (uint8_t) (((g_model.moduleData[moduleIdx].multi.rfProtocol + 3) & 0xC0) | (g_model.header.modelId[moduleIdx] & 0x30) | (invert[moduleIdx] & 0x08) //| 0x04 // Future use @@ -430,7 +387,7 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) {// byte 1+2, protocol information // Our enumeration starts at 0 - int type = g_model.moduleData[moduleIdx].getMultiProtocol() + 1; + int type = g_model.moduleData[moduleIdx].multi.rfProtocol + 1; int subtype = g_model.moduleData[moduleIdx].subType; int8_t optionValue = g_model.moduleData[moduleIdx].multi.optionValue; @@ -481,12 +438,12 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) // Set the highest bit of option byte in AFHDS2A protocol to instruct MULTI to passthrough telemetry bytes instead // of sending Frsky D telemetry - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) + if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) optionValue = optionValue | 0x80; // For custom protocol send unmodified type byte - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MM_RF_CUSTOM_SELECTED) - type = g_model.moduleData[moduleIdx].getMultiProtocol(); + if (g_model.moduleData[moduleIdx].multi.rfProtocol == MM_RF_CUSTOM_SELECTED) + type = g_model.moduleData[moduleIdx].multi.rfProtocol; uint8_t headerByte = 0x55; // header, byte 0, 0x55 for proto 0-31, 0x54 for proto 32-63 @@ -500,7 +457,7 @@ void sendFrameProtocolHeader(uint8_t moduleIdx, bool failsafe) // protocol byte protoByte |= (type & 0x1f); - if (g_model.moduleData[moduleIdx].getMultiProtocol() != MODULE_SUBTYPE_MULTI_DSM2) + if (g_model.moduleData[moduleIdx].multi.rfProtocol != MODULE_SUBTYPE_MULTI_DSM2) protoByte |= (g_model.moduleData[moduleIdx].multi.autoBindMode << 6); sendMulti(moduleIdx, protoByte); diff --git a/radio/src/pulses/multi.h b/radio/src/pulses/multi.h index 1b5f11fa3..b41ba123d 100644 --- a/radio/src/pulses/multi.h +++ b/radio/src/pulses/multi.h @@ -26,7 +26,6 @@ #include "hal/serial_driver.h" #include "hal/module_driver.h" -void multiPatchCustom(uint8_t moduleIdx); void convertEtxProtocolToMulti(int *protocol, int *subprotocol); void convertMultiProtocolToEtx(int *protocol, int *subprotocol); diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 268e2ba83..a825a1269 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -262,7 +262,10 @@ uint8_t getRequiredProtocol(uint8_t module) #if defined(DSM2) case MODULE_TYPE_DSM2: - protocol = limit(PROTOCOL_CHANNELS_DSM2_LP45, PROTOCOL_CHANNELS_DSM2_LP45+g_model.moduleData[module].rfProtocol, PROTOCOL_CHANNELS_DSM2_DSMX); + protocol = limit( + PROTOCOL_CHANNELS_DSM2_LP45, + PROTOCOL_CHANNELS_DSM2_LP45 + g_model.moduleData[module].subType, + PROTOCOL_CHANNELS_DSM2_DSMX); // The module is set to OFF during one second before BIND start { static tmr10ms_t bindStartTime = 0; diff --git a/radio/src/storage/modelslist.cpp b/radio/src/storage/modelslist.cpp index f4c609114..0b28c932a 100644 --- a/radio/src/storage/modelslist.cpp +++ b/radio/src/storage/modelslist.cpp @@ -114,7 +114,7 @@ void ModelCell::setRfData(ModelData* model) setRfModuleData(i, &(model->moduleData[i])); TRACE("<%s/%i> : %X,%X,%X", strlen(modelName) ? modelName : modelFilename, - i, moduleData[i].type, moduleData[i].rfProtocol, modelId[i]); + i, moduleData[i].type, moduleData[i].subType, modelId[i]); } valid_rfData = true; } @@ -123,11 +123,11 @@ void ModelCell::setRfModuleData(uint8_t moduleIdx, ModuleData* modData) { moduleData[moduleIdx].type = modData->type; if (modData->type != MODULE_TYPE_MULTIMODULE) { - moduleData[moduleIdx].rfProtocol = (uint8_t)modData->rfProtocol; + moduleData[moduleIdx].subType = (uint8_t)modData->subType; } else { // do we care here about MM_RF_CUSTOM_SELECTED? probably not... - moduleData[moduleIdx].rfProtocol = modData->getMultiProtocol(); + moduleData[moduleIdx].subType = modData->multi.rfProtocol; } } @@ -551,7 +551,7 @@ bool ModelsList::isModelIdUnique(uint8_t moduleIdx, char* warn_buf, size_t warn_ uint8_t modelId = modelCell->modelId[moduleIdx]; uint8_t type = modelCell->moduleData[moduleIdx].type; - uint8_t rfProtocol = modelCell->moduleData[moduleIdx].rfProtocol; + uint8_t subType = modelCell->moduleData[moduleIdx].subType; uint8_t additionalOnes = 0; char* curr = warn_buf; @@ -570,7 +570,7 @@ bool ModelsList::isModelIdUnique(uint8_t moduleIdx, char* warn_buf, size_t warn_ if ((type != MODULE_TYPE_NONE) && (type == (*it)->moduleData[moduleIdx].type) && - (rfProtocol == (*it)->moduleData[moduleIdx].rfProtocol) && + (subType == (*it)->moduleData[moduleIdx].subType) && (modelId == (*it)->modelId[moduleIdx])) { // Hit found! @@ -614,7 +614,7 @@ uint8_t ModelsList::findNextUnusedModelId(uint8_t moduleIdx) } uint8_t type = modelCell->moduleData[moduleIdx].type; - uint8_t rfProtocol = modelCell->moduleData[moduleIdx].rfProtocol; + uint8_t subType = modelCell->moduleData[moduleIdx].subType; uint8_t usedModelIds[(MAX_RXNUM + 7) / 8]; memset(usedModelIds, 0, sizeof(usedModelIds)); @@ -631,7 +631,7 @@ uint8_t ModelsList::findNextUnusedModelId(uint8_t moduleIdx) // match module type and RF protocol if ((type != MODULE_TYPE_NONE) && (type == (*it)->moduleData[moduleIdx].type) && - (rfProtocol == (*it)->moduleData[moduleIdx].rfProtocol)) { + (subType == (*it)->moduleData[moduleIdx].subType)) { uint8_t id = (*it)->modelId[moduleIdx]; uint8_t mask = 1 << (id & 7u); diff --git a/radio/src/storage/modelslist.h b/radio/src/storage/modelslist.h index faa7fdfa2..7eb323ea8 100644 --- a/radio/src/storage/modelslist.h +++ b/radio/src/storage/modelslist.h @@ -44,7 +44,7 @@ struct ModuleData; struct SimpleModuleData { uint8_t type; - uint8_t rfProtocol; + uint8_t subType; }; class ModelCell diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index 9f7d93287..7b6ea46fe 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -165,21 +165,13 @@ void postModelLoad(bool alarms) if (!isInternalModuleAvailable(g_model.moduleData[INTERNAL_MODULE].type)) { memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData)); } -#if defined(MULTIMODULE) - else if (isModuleMultimodule(INTERNAL_MODULE)) - multiPatchCustom(INTERNAL_MODULE); -#endif #endif if (!isExternalModuleAvailable(g_model.moduleData[EXTERNAL_MODULE].type)) { memclear(&g_model.moduleData[EXTERNAL_MODULE], sizeof(ModuleData)); } -#if defined(MULTIMODULE) - else if (isModuleMultimodule(EXTERNAL_MODULE)) - multiPatchCustom(EXTERNAL_MODULE); -#if defined(MULTI_PROTOLIST) +#if defined(MULTIMODULE) && defined(MULTI_PROTOLIST) MultiRfProtocols::removeInstance(EXTERNAL_MODULE); -#endif #endif AUDIO_FLUSH(); diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index dba07917f..fedfcde27 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -1719,12 +1719,12 @@ static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, // convert to ETX format and write to vars convertMultiProtocolToEtx(&type, &subtype); if (type > 0) { - md->setMultiProtocol(type - 1); + md->multi.rfProtocol = type - 1; md->subType = subtype; } #endif } else if (md->type == MODULE_TYPE_DSM2) { - md->rfProtocol = yaml_parse_enum(yaml_conv_220::enum_DSM2_Subtypes, val, val_len); + md->subType = yaml_parse_enum(yaml_conv_220::enum_DSM2_Subtypes, val, val_len); } else { md->subType = yaml_str2uint(val, val_len); } diff --git a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 749defc07..eb7604663 100644 --- a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -606,16 +606,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -689,14 +688,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/yaml/yaml_datastructs_t12.cpp index 1bd49c0fd..2331badf7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t12.cpp @@ -574,16 +574,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -657,14 +656,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_t8.cpp b/radio/src/storage/yaml/yaml_datastructs_t8.cpp index 5a0f44126..2de910275 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t8.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t8.cpp @@ -574,16 +574,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -657,14 +656,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp index 5a0f44126..2de910275 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp @@ -574,16 +574,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -657,14 +656,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp index f5b765b7b..7b63a2470 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tpro.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tpro.cpp @@ -580,16 +580,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -663,14 +662,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp index 77bb37df6..f34bfcc5d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp @@ -574,16 +574,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -657,14 +656,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 03a7d8acc..78eca8bcd 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -627,16 +627,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -710,14 +709,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index 59fefc53c..f63ef17dc 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -625,16 +625,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -708,14 +707,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x7.cpp b/radio/src/storage/yaml/yaml_datastructs_x7.cpp index 5a0f44126..2de910275 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x7.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x7.cpp @@ -574,16 +574,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -657,14 +656,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp index 8b9d46f55..acbfbb2c7 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp @@ -582,16 +582,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -665,14 +664,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp index 7dc17894a..10000599d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp @@ -621,16 +621,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -704,14 +703,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp index 65060ffba..5a003451c 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp @@ -559,16 +559,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -642,14 +641,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp index f64b16fc3..16f71d317 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp @@ -569,16 +569,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -652,14 +651,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp index 6fa269d70..263711856 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp @@ -566,16 +566,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -649,14 +648,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index 2736d19f1..c2659e062 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -570,16 +570,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -653,14 +652,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/storage/yaml/yaml_datastructs_zorro.cpp b/radio/src/storage/yaml/yaml_datastructs_zorro.cpp index 413969539..034bdb15d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_zorro.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_zorro.cpp @@ -574,16 +574,15 @@ static const struct YamlNode struct_anonymous_5[] = { YAML_END }; static const struct YamlNode struct_anonymous_6[] = { - YAML_PADDING( 3 ), + YAML_PADDING( 8 ), 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_PADDING( 2 ), + YAML_SIGNED( "optionValue", 8 ), YAML_END }; static const struct YamlNode struct_anonymous_7[] = { @@ -657,14 +656,12 @@ static const struct YamlNode union_anonymous_4_elmts[] = { }; static const struct YamlNode struct_ModuleData[] = { YAML_IDX, - YAML_ENUM("type", 4, enum_ModuleType), - YAML_PADDING( 4 ), + YAML_ENUM("type", 8, enum_ModuleType), 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_PADDING( 4 ), YAML_UNION("mod", 200, union_anonymous_4_elmts, select_mod_type), YAML_END }; diff --git a/radio/src/targets/taranis/telemetry_driver.cpp b/radio/src/targets/taranis/telemetry_driver.cpp index 887e81adf..07fbfbac2 100644 --- a/radio/src/targets/taranis/telemetry_driver.cpp +++ b/radio/src/targets/taranis/telemetry_driver.cpp @@ -107,7 +107,8 @@ void telemetryPortInvertedInit(uint32_t baudrate) //TODO: // - handle conflict with HEARTBEAT disabled for trainer input... // - probably need to stop trainer input/output and restore after this is closed -#if !defined(TELEMETRY_EXTI_REUSE_INTERRUPT_ROTARY_ENCODER) && !defined(TELEMETRY_EXTI_REUSE_INTERRUPT_INTMODULE_HEARTBEAT) +#if !defined(TELEMETRY_EXTI_REUSE_INTERRUPT_ROTARY_ENCODER) && \ + !defined(TELEMETRY_EXTI_REUSE_INTERRUPT_INTMODULE_HEARTBEAT) NVIC_DisableIRQ(TELEMETRY_EXTI_IRQn); #endif NVIC_DisableIRQ(TELEMETRY_TIMER_IRQn); diff --git a/radio/src/telemetry/multi.cpp b/radio/src/telemetry/multi.cpp index 2ddc01efa..a2c126228 100644 --- a/radio/src/telemetry/multi.cpp +++ b/radio/src/telemetry/multi.cpp @@ -158,9 +158,9 @@ static MultiBufferState guessProtocol(uint8_t module) } #endif - if (g_model.moduleData[moduleIdx].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2) + if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2) return SpektrumTelemetryFallback; - else if (g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) + else if (g_model.moduleData[module].multi.rfProtocol == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) return FlyskyTelemetryFallback; else return FrskyTelemetryFallback; diff --git a/radio/src/telemetry/spektrum.cpp b/radio/src/telemetry/spektrum.cpp index e40cc8a03..fb8dae030 100644 --- a/radio/src/telemetry/spektrum.cpp +++ b/radio/src/telemetry/spektrum.cpp @@ -504,7 +504,7 @@ void processSpektrumPacket(const uint8_t *packet) void processDSMBindPacket(uint8_t module, const uint8_t *packet) { uint32_t debugval; - if (g_model.moduleData[module].type == MODULE_TYPE_MULTIMODULE && g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2 && g_model.moduleData[module].subType == MM_RF_DSM2_SUBTYPE_AUTO) { + if (g_model.moduleData[module].type == MODULE_TYPE_MULTIMODULE && g_model.moduleData[module].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2 && g_model.moduleData[module].subType == MM_RF_DSM2_SUBTYPE_AUTO) { // Only sets channel etc when in DSM/AUTO mode int channels = packet[5]; if (channels > 12) { @@ -548,7 +548,7 @@ void processDSMBindPacket(uint8_t module, const uint8_t *packet) setTelemetryValue(PROTOCOL_TELEMETRY_SPEKTRUM, (I2C_PSEUDO_TX << 8) + 4, 0, 0, debugval, UNIT_RAW, 0); /* Finally stop binding as the rx just told us that it is bound */ - if (g_model.moduleData[module].type == MODULE_TYPE_MULTIMODULE && g_model.moduleData[module].getMultiProtocol() == MODULE_SUBTYPE_MULTI_DSM2 && moduleState[module].mode == MODULE_MODE_BIND) { + if (g_model.moduleData[module].type == MODULE_TYPE_MULTIMODULE && g_model.moduleData[module].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2 && moduleState[module].mode == MODULE_MODE_BIND) { setMultiBindStatus(module, MULTI_BIND_FINISHED); } } diff --git a/radio/src/telemetry/telemetry.h b/radio/src/telemetry/telemetry.h index a3c2c84f3..bbd028343 100644 --- a/radio/src/telemetry/telemetry.h +++ b/radio/src/telemetry/telemetry.h @@ -135,9 +135,9 @@ inline const char* getRssiLabel() { #if defined(MULTIMODULE) if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE && - (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol() == + (g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol == MODULE_SUBTYPE_MULTI_FS_AFHDS2A || - g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol() == + g_model.moduleData[EXTERNAL_MODULE].multi.rfProtocol == MODULE_SUBTYPE_MULTI_HOTT)) { return "RQly"; } diff --git a/radio/src/tests/conversions.cpp b/radio/src/tests/conversions.cpp index 0e74e88f5..259db2023 100644 --- a/radio/src/tests/conversions.cpp +++ b/radio/src/tests/conversions.cpp @@ -453,7 +453,7 @@ TEST(Conversions, ConversionTX16SFrom25) EXPECT_STRNEQ("Model", g_model.header.name); - EXPECT_EQ(MODULE_SUBTYPE_MULTI_FRSKY, g_model.moduleData[0].getMultiProtocol()); + EXPECT_EQ(MODULE_SUBTYPE_MULTI_FRSKY, g_model.moduleData[0].multi.rfProtocol); EXPECT_EQ(MM_RF_FRSKY_SUBTYPE_D8_CLONED, g_model.moduleData[0].subType); EXPECT_EQ(-12, g_model.moduleData[0].multi.optionValue);