From cc793bbab6adafc6298852911102952dae64b7eb Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 5 Feb 2019 09:46:01 +0100 Subject: [PATCH] Add 'add receiver' and associated datastruct change --- radio/src/datastructs.h | 3 ++- radio/src/gui/128x64/model_setup.cpp | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 295edd9fd..a81d3cf2c 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -415,8 +415,9 @@ PACK(struct TrainerModuleData { */ PACK(struct ReceiverData { + uint8_t enabled:1; uint8_t telemetry:1; - uint8_t spare:7; + uint8_t spare:6; uint64_t channelMapping; // each receiver output (16) can be assigned to one of the 16 channels uint8_t rxID[LEN_RX_ID]; }); diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 6d96a4df8..2cf624ce8 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -79,6 +79,7 @@ enum MenuModelSetupItems { #if defined(PCBXLITE) || defined(PCBXLITES) ITEM_MODEL_INTERNAL_MODULE_ANTENNA, #endif + ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER, #endif ITEM_MODEL_EXTERNAL_MODULE_LABEL, ITEM_MODEL_EXTERNAL_MODULE_MODE, @@ -136,6 +137,7 @@ enum MenuModelSetupItems { #if defined(PCBTARANIS) #define CURRENT_MODULE_EDITED(k) (k >= ITEM_MODEL_EXTERNAL_MODULE_LABEL ? EXTERNAL_MODULE : INTERNAL_MODULE) + #define INTERNAL_MODULE_ADD_RECEIVER_ROW (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[MAX_RECEIVERS_PER_MODULE-1].enabled ? HIDDEN_ROW : (uint8_t)0) #elif defined(PCBSKY9X) && !defined(REVA) #define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_EXTRA_MODULE_LABEL ? EXTRA_MODULE : EXTERNAL_MODULE) #else @@ -275,6 +277,7 @@ void menuModelSetup(event_t event) IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe IF_INTERNAL_MODULE_ON((uint8_t)0), // Range check ANTENNA_ROW + INTERNAL_MODULE_ADD_RECEIVER_ROW, LABEL(ExternalModule), EXTERNAL_MODULE_MODE_ROWS, MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE) @@ -1002,7 +1005,7 @@ void menuModelSetup(event_t event) case ITEM_MODEL_INTERNAL_MODULE_RANGE: { - lcdDrawTextAlignedLeft(y, INDENT "Range"); + lcdDrawTextAlignedLeft(y, STR_RANGE); lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_RANGE, attr); if (attr && s_editMode>0) { moduleFlag[INTERNAL_MODULE] = MODULE_RANGECHECK; @@ -1011,9 +1014,14 @@ void menuModelSetup(event_t event) moduleFlag[INTERNAL_MODULE] = MODULE_NORMAL_MODE; } } - break; - + break; + case ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER: + { + lcdDrawTextAlignedLeft(y, STR_RECEIVER); + lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, "[Add]", attr); + } + break; #endif #if defined(PCBSKY9X) case ITEM_MODEL_EXTRA_MODULE_BIND: