From edee58cf87ab27a6c090088d9d3fdc90f66723f9 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 9 Dec 2019 18:29:23 +0100 Subject: [PATCH] Multi status working --- radio/src/gui/colorlcd/model_setup.cpp | 4 +--- radio/src/gui/colorlcd/model_setup.h | 25 ++++++++++++++++++++++++- radio/src/telemetry/multi.h | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/radio/src/gui/colorlcd/model_setup.cpp b/radio/src/gui/colorlcd/model_setup.cpp index a0ca44edb..cc419fdef 100644 --- a/radio/src/gui/colorlcd/model_setup.cpp +++ b/radio/src/gui/colorlcd/model_setup.cpp @@ -569,9 +569,7 @@ class ModuleWindow : public FormGroup { // Multimodule status new StaticText(this, grid.getLabelSlot(true), STR_MODULE_STATUS); - char statusText[64] = {}; - getMultiModuleStatus(moduleIdx).getStatusString(statusText); - new StaticText(this, grid.getFieldSlot(), statusText); + new MultimoduleStatus(this, grid.getFieldSlot(), moduleIdx); // Multimodule sync /*if (multiSyncStatus.isValid()) { diff --git a/radio/src/gui/colorlcd/model_setup.h b/radio/src/gui/colorlcd/model_setup.h index 94cfcfe30..a396e502f 100644 --- a/radio/src/gui/colorlcd/model_setup.h +++ b/radio/src/gui/colorlcd/model_setup.h @@ -18,7 +18,30 @@ * GNU General Public License for more details. */ -#include "tabsgroup.h" +#include "opentx.h" + +class MultimoduleStatus: public StaticText +{ + public: + MultimoduleStatus(Window * parent, const rect_t & rect, uint8_t moduleIdx): + StaticText(parent, rect), + moduleIdx(moduleIdx) + { + } + + void checkEvents() override + { + char statusText[MULTIMODULE_STATUS_LEN] = {}; + getMultiModuleStatus(moduleIdx).getStatusString(statusText); + if (text != statusText) { + setText(statusText); + invalidate(); + } + } + + protected: + uint8_t moduleIdx; +}; class ModelSetupPage: public PageTab { public: diff --git a/radio/src/telemetry/multi.h b/radio/src/telemetry/multi.h index e9b9ada15..806f7416e 100644 --- a/radio/src/telemetry/multi.h +++ b/radio/src/telemetry/multi.h @@ -23,6 +23,7 @@ #define MULTI_BUFFER_SIZE 177 extern uint8_t * Multi_Buffer; +constexpr uint8_t MULTIMODULE_STATUS_LEN = 64; /* Multiprotocol telemetry definition