From d7ca02403fcc6c1838893685733c18a4b05f55de Mon Sep 17 00:00:00 2001 From: elecpower Date: Fri, 17 Dec 2021 17:23:45 +1100 Subject: [PATCH] Model gvars --- .../src/firmwares/edgetx/yaml_modeldata.cpp | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/companion/src/firmwares/edgetx/yaml_modeldata.cpp b/companion/src/firmwares/edgetx/yaml_modeldata.cpp index ee983ccbc..7c82c0540 100644 --- a/companion/src/firmwares/edgetx/yaml_modeldata.cpp +++ b/companion/src/firmwares/edgetx/yaml_modeldata.cpp @@ -280,6 +280,32 @@ struct convert { } }; +template <> +struct convert { + static Node encode(const GVarData& rhs) + { + Node node; + node["name"] = rhs.name; + node["min"] = rhs.min; + node["max"] = rhs.max; + node["popup"] = rhs.popup; + node["prec"] = rhs.prec; + node["unit"] = rhs.unit; + return node; + } + + static bool decode(const Node& node, GVarData& rhs) + { + node["name"] >> rhs.name; + node["min"] >> rhs.min; + node["max"] >> rhs.max; + node["popup"] >> rhs.popup; + node["prec"] >> rhs.prec; + node["unit"] >> rhs.unit; + return true; + } +}; + Node convert::encode(const ModelData& rhs) { Node node; @@ -383,7 +409,13 @@ Node convert::encode(const ModelData& rhs) node["displayChecklist"] = (int)rhs.displayChecklist; - // gvarData[] + for (int i = 0; i < CPN_MAX_GVARS; i++) { + const GVarData& gv = rhs.gvarData[i]; + if (!gv.isEmpty()) { + node["gvars"][std::to_string(i)] = gv; + } + } + // mavlink ??? // telemetryProtocol ??? // frsky @@ -474,6 +506,7 @@ bool convert::decode(const Node& node, ModelData& rhs) node["displayChecklist"] >> rhs.displayChecklist; // gvarData[] + node["gvars"] >> rhs.gvarData; // mavlink ??? // telemetryProtocol ??? // frsky