From c7e7443c30ecd89ac469ae4ed096fd30b67b0ab5 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 7 Jan 2022 00:45:33 +0100 Subject: [PATCH] Fix EDGE logical switch (de-)serialization (#1361) Resolves #1359 --- .../src/firmwares/edgetx/yaml_logicalswitchdata.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/companion/src/firmwares/edgetx/yaml_logicalswitchdata.cpp b/companion/src/firmwares/edgetx/yaml_logicalswitchdata.cpp index 852179b12..41ecc4109 100644 --- a/companion/src/firmwares/edgetx/yaml_logicalswitchdata.cpp +++ b/companion/src/firmwares/edgetx/yaml_logicalswitchdata.cpp @@ -84,7 +84,13 @@ Node convert::encode(const LogicalSwitchData& rhs) def += ","; def += std::to_string(lswTimerValue(rhs.val2)); def += ","; - def += std::to_string(lswTimerValue(rhs.val3)); + if (rhs.val3 < 0) { + def += '<'; + } else if (rhs.val3 == 0) { + def += '-'; + } else { + def += std::to_string(lswTimerValue(rhs.val2 + rhs.val3)); + } } break; case LS_FAMILY_VCOMP: { @@ -147,7 +153,8 @@ bool convert::decode(const Node& node, rhs.val3 = 0; } else { def >> v3; - rhs.val3 = timerValue2lsw(v3); + v3 = timerValue2lsw(v3); + rhs.val3 = v3 - rhs.val2; } } break;