fix(nv14): incorrect read/write of module data (#4953)

This commit is contained in:
philmoz
2024-05-03 10:14:50 +10:00
committed by GitHub
parent 5281b8b3c8
commit dd87ecb89a
3 changed files with 26 additions and 23 deletions
@@ -2063,11 +2063,13 @@ static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs,
md->subType = yaml_parse_enum(enum_ISRM_Subtypes, val, val_len);
} else if (isModuleTypeR9MNonAccess(md->type)) {
md->subType = yaml_parse_enum(enum_R9M_Subtypes, val, val_len);
#if defined(AFHDS3)
} else if (md->type == MODULE_TYPE_FLYSKY_AFHDS2A) {
// Flysky sub-types have been converted into separate module types
auto sub_type = yaml_parse_enum(enum_FLYSKY_Subtypes, val, val_len);
if (sub_type == FLYSKY_SUBTYPE_AFHDS3)
md->type = MODULE_TYPE_FLYSKY_AFHDS3;
#endif
} else if (md->type == MODULE_TYPE_MULTIMODULE) {
#if defined(MULTIMODULE)
// Read type/subType by the book (see MPM documentation)
@@ -2128,6 +2130,10 @@ static bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs,
str = yaml_output_enum(md->subType, enum_DSM2_Subtypes);
} else if (md->type == MODULE_TYPE_PPM) {
str = yaml_output_enum(md->subType, enum_PPM_Subtypes);
} else if (md->type == MODULE_TYPE_FLYSKY_AFHDS2A) {
str = yaml_output_enum(FLYSKY_SUBTYPE_AFHDS2A, enum_FLYSKY_Subtypes);
} else if (md->type == MODULE_TYPE_FLYSKY_AFHDS3) {
str = yaml_output_enum(FLYSKY_SUBTYPE_AFHDS3, enum_FLYSKY_Subtypes);
} else {
str = yaml_unsigned2str(val);
}