Ghost support (#7900)

This commit is contained in:
3djc
2020-08-28 15:54:51 +02:00
committed by GitHub
parent 1cfe0edeb6
commit 205ac7a21d
48 changed files with 776 additions and 54 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ void onHardwareAntennaSwitchConfirm(const char * result)
#define EXTERNAL_ANTENNA_ROW
#endif
#if defined(CROSSFIRE)
#if (defined(CROSSFIRE) || defined(GHOST))
#define MAX_BAUDRATE_ROW 0
#else
#define MAX_BAUDRATE_ROW HIDDEN_ROW
@@ -162,7 +162,7 @@ enum {
ITEM_RADIO_HARDWARE_CAPACITY_CALIB,
#endif
#if defined(CROSSFIRE) && SPORT_MAX_BAUDRATE < 400000
#if (defined(CROSSFIRE) || defined(GHOST)) && SPORT_MAX_BAUDRATE < 400000
ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE,
#endif
@@ -278,7 +278,7 @@ void onHardwareAntennaSwitchConfirm(const char * result)
#define TX_CAPACITY_MEASUREMENT_ROWS
#endif
#if defined(CROSSFIRE) && SPORT_MAX_BAUDRATE < 400000
#if (defined(CROSSFIRE) || defined(GHOST)) && SPORT_MAX_BAUDRATE < 400000
#define MAX_BAUD_ROWS 0,
#else
#define MAX_BAUD_ROWS
@@ -544,7 +544,7 @@ void menuRadioHardware(event_t event)
break;
#endif
#if defined(CROSSFIRE) && SPORT_MAX_BAUDRATE < 400000
#if (defined(CROSSFIRE) || defined(GHOST)) && SPORT_MAX_BAUDRATE < 400000
case ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE:
lcdDrawTextAlignedLeft(y, STR_MAXBAUDRATE);
lcdDrawNumber(HW_SETTINGS_COLUMN2, y, CROSSFIRE_BAUDRATES[g_eeGeneral.telemetryBaudrate], attr|LEFT);
+26 -4
View File
@@ -584,6 +584,14 @@ bool isModuleUsingSport(uint8_t moduleBay, uint8_t moduleType)
}
}
bool areModulesConflicting(int intModuleType, int extModuleType)
{
if (intModuleType == MODULE_TYPE_ISRM_PXX2)
return (extModuleType == MODULE_TYPE_GHOST);
return false;
}
#if defined(HARDWARE_INTERNAL_MODULE)
bool isInternalModuleAvailable(int moduleType)
{
@@ -605,7 +613,7 @@ bool isInternalModuleAvailable(int moduleType)
if (moduleType == MODULE_TYPE_ISRM_PXX2) {
#if defined(PXX2) && defined(INTERNAL_MODULE_PXX2)
return true;
return !areModulesConflicting(moduleType, g_model.moduleData[EXTERNAL_MODULE].type);
#endif
}
@@ -620,9 +628,6 @@ bool isInternalModuleAvailable(int moduleType)
bool isExternalModuleAvailable(int moduleType)
{
if (moduleType == MODULE_TYPE_R9M_LITE_PRO_PXX1)
return false;
#if !defined(HARDWARE_EXTERNAL_MODULE_SIZE_SML)
if (isModuleTypeR9MLite(moduleType) || moduleType == MODULE_TYPE_XJT_LITE_PXX2)
return false;
@@ -657,6 +662,11 @@ bool isExternalModuleAvailable(int moduleType)
return false;
#endif
#if !defined(GHOST)
if (moduleType == MODULE_TYPE_GHOST)
return false;
#endif
#if !defined(DSM2)
if (moduleType == MODULE_TYPE_DSM2)
return false;
@@ -673,6 +683,9 @@ bool isExternalModuleAvailable(int moduleType)
#endif
#if defined(HARDWARE_INTERNAL_MODULE)
if (areModulesConflicting(g_model.moduleData[INTERNAL_MODULE].type, moduleType))
return false;
if (isTrainerUsingModuleBay() || (isModuleUsingSport(EXTERNAL_MODULE, moduleType) && isModuleUsingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type)))
return false;
#endif
@@ -697,6 +710,11 @@ bool isRfProtocolAvailable(int protocol)
return false;
}
#endif
#if defined(GHOST)
if (protocol != MODULE_SUBTYPE_PXX1_OFF && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_GHOST) {
return false;
}
#endif
#if !defined(MODULE_PROTOCOL_D8)
if (protocol == MODULE_SUBTYPE_PXX1_ACCST_D8) {
return false;
@@ -726,6 +744,10 @@ bool isTelemetryProtocolAvailable(int protocol)
return false;
}
if ( protocol== PROTOCOL_TELEMETRY_GHOST) {
return false;
}
#if !defined(MULTIMODULE)
if (protocol == PROTOCOL_TELEMETRY_SPEKTRUM || protocol == PROTOCOL_TELEMETRY_FLYSKY_IBUS || protocol == PROTOCOL_TELEMETRY_MULTIMODULE) {
return false;
+1 -1
View File
@@ -175,7 +175,7 @@ inline uint8_t MODULE_CHANNELS_ROWS(int moduleIdx)
else
return 0;
}
else if (isModuleDSM2(moduleIdx) || isModuleCrossfire(moduleIdx) || isModuleSBUS(moduleIdx)) {
else if (isModuleDSM2(moduleIdx) || isModuleCrossfire(moduleIdx) || isModuleGhost(moduleIdx) || isModuleSBUS(moduleIdx)) {
return 0;
}
else {