This commit is contained in:
Bertrand Songis
2021-01-13 18:12:32 +01:00
parent 2ac4e7b64e
commit ab528f22e0
17 changed files with 39 additions and 52 deletions
@@ -47,7 +47,7 @@ enum {
ITEM_RECEIVER_SETTINGS_PWM_RATE,
ITEM_RECEIVER_SETTINGS_TELEMETRY,
ITEM_RECEIVER_SETTINGS_TELEMETRY_25MW,
ITEM_RECEIVER_SETTINGS_FPORT,
ITEM_RECEIVER_SETTINGS_SPORT_MODE,
ITEM_RECEIVER_SETTINGS_CAPABILITY_NOT_SUPPORTED1,
ITEM_RECEIVER_SETTINGS_CAPABILITY_NOT_SUPPORTED2,
ITEM_RECEIVER_SETTINGS_PINMAP_FIRST
@@ -59,11 +59,10 @@ enum {
#define CH_ENABLE_SPORT 4
#define CH_ENABLE_SBUS 5
bool isFPort2Available(int portType)
bool isSPortModeAvailable(int mode)
{
uint8_t receiverId = reusableBuffer.hardwareAndSettings.receiverSettings.receiverId;
if (!IS_RECEIVER_CAPABILITY_ENABLED(RECEIVER_CAPABILITY_FPORT2) && portType == 2)
{
if (mode == 2 && !IS_RECEIVER_CAPABILITY_ENABLED(RECEIVER_CAPABILITY_FPORT2)) {
return false;
}
return true;
@@ -91,7 +90,7 @@ void menuModelReceiverOptions(event_t event)
0, // PWM rate
isModuleR9MAccess(g_moduleIdx) && receiverVariant == PXX2_VARIANT_EU && reusableBuffer.hardwareAndSettings.moduleSettings.txPower > 14 /*25mW*/ ? READONLY_ROW : (uint8_t)0, // Telemetry
IF_RECEIVER_CAPABILITY(RECEIVER_CAPABILITY_TELEMETRY_25MW, 0),
IF_RECEIVER_CAPABILITY(RECEIVER_CAPABILITY_FPORT, 0) || IF_RECEIVER_CAPABILITY(RECEIVER_CAPABILITY_FPORT2, 0),
uint8_t((IS_RECEIVER_CAPABILITY_ENABLED(RECEIVER_CAPABILITY_FPORT) || IS_RECEIVER_CAPABILITY_ENABLED(RECEIVER_CAPABILITY_FPORT2)) ? 0 : HIDDEN_ROW),
uint8_t(reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].receivers[receiverId].information.capabilityNotSupported ? READONLY_ROW : HIDDEN_ROW),
uint8_t(reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].receivers[receiverId].information.capabilityNotSupported ? READONLY_ROW : HIDDEN_ROW),
0 // channels ...
@@ -174,12 +173,12 @@ void menuModelReceiverOptions(event_t event)
}
break;
case ITEM_RECEIVER_SETTINGS_FPORT:
case ITEM_RECEIVER_SETTINGS_SPORT_MODE:
{
lcdDrawText(0, y, STR_PROTOCOL);
uint8_t portType = reusableBuffer.hardwareAndSettings.receiverSettings.fport | reusableBuffer.hardwareAndSettings.receiverSettings.fport2 << 1;
lcdDrawTextAtIndex(LCD_W/2, y, STR_PORT_TYPES, portType, attr);
portType = checkIncDec(event, portType, 0, 2, EE_MODEL, isFPort2Available);
lcdDrawTextAtIndex(LCD_W/2, y, STR_SPORT_MODES, portType, attr);
portType = checkIncDec(event, portType, 0, 2, EE_MODEL, isSPortModeAvailable);
if (checkIncDec_Ret) {
reusableBuffer.hardwareAndSettings.receiverSettings.fport = portType & 0x01;
reusableBuffer.hardwareAndSettings.receiverSettings.fport2 = (portType & 0x02) >> 1;