Basic 128x64 internal module receivers menu logic

This commit is contained in:
3djc
2019-02-05 11:24:06 +01:00
parent cc793bbab6
commit 53bb46ef81
+59 -1
View File
@@ -79,6 +79,14 @@ enum MenuModelSetupItems {
#if defined(PCBXLITE) || defined(PCBXLITES)
ITEM_MODEL_INTERNAL_MODULE_ANTENNA,
#endif
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_NUMBER,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_RANGE,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_TELEM,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_BIND,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_RANGE,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_TELEM,
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_BIND,
ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER,
#endif
ITEM_MODEL_EXTERNAL_MODULE_LABEL,
@@ -137,7 +145,10 @@ enum MenuModelSetupItems {
#if defined(PCBTARANIS)
#define CURRENT_MODULE_EDITED(k) (k >= ITEM_MODEL_EXTERNAL_MODULE_LABEL ? EXTERNAL_MODULE : INTERNAL_MODULE)
#define CURRENT_RECEIVER_EDITED(k) (k >= ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER ? 1 : 0)
#define INTERNAL_MODULE_ADD_RECEIVER_ROW (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[MAX_RECEIVERS_PER_MODULE-1].enabled ? HIDDEN_ROW : (uint8_t)0)
#define IF_INTERNAL_MODULE_RECEIVER_1_ON(x) (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[0].enabled ? (uint8_t)(x) : HIDDEN_ROW)
#define IF_INTERNAL_MODULE_RECEIVER_2_ON(x) (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[1].enabled ? (uint8_t)(x) : HIDDEN_ROW)
#elif defined(PCBSKY9X) && !defined(REVA)
#define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_EXTRA_MODULE_LABEL ? EXTRA_MODULE : EXTERNAL_MODULE)
#else
@@ -277,6 +288,14 @@ 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
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Number
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Range
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Telemetry
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Bind/Delete
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Number
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Range
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Telemetry
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Bind/Delete
INTERNAL_MODULE_ADD_RECEIVER_ROW,
LABEL(ExternalModule),
EXTERNAL_MODULE_MODE_ROWS,
@@ -1018,8 +1037,47 @@ void menuModelSetup(event_t event)
case ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER:
{
lcdDrawTextAlignedLeft(y, STR_RECEIVER);
lcdDrawTextAlignedLeft(y, "Receiver");
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, "[Add]", attr);
if (attr && s_editMode>0) {
if(g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[0].enabled) {
g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[1].enabled = 0x01;
}
else {
g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[0].enabled = 0x01;
}
s_editMode = 0;
}
}
break;
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_NUMBER:
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER:
{
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);
lcdDrawTextAlignedLeft(y, "Receiver");
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, receiverIdx+1);
}
break;
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_RANGE:
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_RANGE:
{
lcdDrawTextAlignedLeft(y, TR_CHANNELRANGE);
}
break;
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_TELEM:
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_TELEM:
{
lcdDrawTextAlignedLeft(y, INDENT "Telem");
}
break;
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_BIND:
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_BIND:
{
lcdDrawTextAlignedLeft(y, INDENT "Receiver");
}
break;
#endif