1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-23 16:25:16 +03:00

External module list depends on compilation options

- option PPM=NO is added for radios which don't support PPM anymore
- option SBUS=NO
- option DSM2=NO
This commit is contained in:
Bertrand Songis 2019-05-17 09:24:04 +02:00
parent c2e6985e3b
commit db23a2125d
4 changed files with 82 additions and 21 deletions

View file

@ -591,45 +591,63 @@ bool isInternalModuleAvailable(int moduleType)
bool isExternalModuleAvailable(int moduleType) bool isExternalModuleAvailable(int moduleType)
{ {
#if !defined(PCBXLITE) #if !defined(PCBXLITE) && !defined(PCBX9LITE)
if (moduleType == MODULE_TYPE_PXX_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE_PRO) { if (moduleType == MODULE_TYPE_PXX_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE_PRO)
return false; return false;
}
#endif #endif
#if !defined(PXX1) #if !defined(PXX1)
if (moduleType == MODULE_TYPE_PXX_XJT || moduleType == MODULE_TYPE_PXX_R9M || moduleType == MODULE_TYPE_PXX_R9M_LITE) { if (moduleType == MODULE_TYPE_PXX_XJT || moduleType == MODULE_TYPE_PXX_R9M || moduleType == MODULE_TYPE_PXX_R9M_LITE)
return false; return false;
}
#endif #endif
#if defined(FRSKY_RELEASE)
if (moduleType == MODULE_TYPE_PXX_R9M)
return false;
#endif
if (moduleType == MODULE_TYPE_ACCESS_ISRM || moduleType == MODULE_TYPE_ACCESS_R9M)
return false;
#if !defined(PXX2) #if !defined(PXX2)
if (moduleType == MODULE_TYPE_ACCESS_ISRM || moduleType == MODULE_TYPE_ACCESS_R9M || moduleType == MODULE_TYPE_ACCESS_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE_PRO) { if (moduleType == MODULE_TYPE_ACCESS_R9M || moduleType == MODULE_TYPE_ACCESS_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE_PRO) {
return false; return false;
} }
#endif #endif
#if defined(CROSSFIRE) #if defined(CROSSFIRE)
if (moduleType == MODULE_TYPE_CROSSFIRE && g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE) { if (moduleType == MODULE_TYPE_CROSSFIRE && g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE)
return false; return false;
}
#else #else
if (moduleType == MODULE_TYPE_CROSSFIRE) { if (moduleType == MODULE_TYPE_CROSSFIRE)
return false; return false;
}
#endif #endif
#if !defined(DSM2) #if !defined(DSM2)
if (moduleType == MODULE_TYPE_DSM2) { if (moduleType == MODULE_TYPE_DSM2)
return false; return false;
}
#endif #endif
#if !defined(MULTIMODULE)
if (moduleType == MODULE_TYPE_MULTIMODULE) { #if !defined(SBUS)
if (moduleType == MODULE_TYPE_SBUS)
return false; return false;
}
#endif #endif
#if !defined(MULTIMODULE)
if (moduleType == MODULE_TYPE_MULTIMODULE)
return false;
#endif
#if defined(HARDWARE_INTERNAL_MODULE) #if defined(HARDWARE_INTERNAL_MODULE)
if (isModuleUSingSport(EXTERNAL_MODULE, moduleType) && isModuleUSingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type)) if (isModuleUSingSport(EXTERNAL_MODULE, moduleType) && isModuleUSingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type))
return false; return false;
#endif #endif
#if !defined(EXTERNAL_MODULE_PPM)
if (moduleType == MODULE_TYPE_PPM)
return false;
#endif
return true; return true;
} }

View file

@ -153,13 +153,20 @@ inline bool isModuleDSM2(uint8_t idx)
{ {
return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_DSM2; return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_DSM2;
} }
#else
inline bool isModuleDSM2(uint8_t idx)
{
return false;
}
#endif
#if defined(SBUS)
inline bool isModuleSBUS(uint8_t idx) inline bool isModuleSBUS(uint8_t idx)
{ {
return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_SBUS; return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_SBUS;
} }
#else #else
inline bool isModuleDSM2(uint8_t idx) inline bool isModuleSBUS(uint8_t idx)
{ {
return false; return false;
} }

View file

@ -173,13 +173,18 @@ void disablePulses(uint8_t module, uint8_t protocol)
#if defined(MULTIMODULE) #if defined(MULTIMODULE)
case PROTOCOL_CHANNELS_MULTIMODULE: case PROTOCOL_CHANNELS_MULTIMODULE:
#endif #endif
#if defined(SBUS)
case PROTOCOL_CHANNELS_SBUS: case PROTOCOL_CHANNELS_SBUS:
disable_serial(module); disable_serial(module);
break; break;
#endif
#if defined(PPM)
case PROTOCOL_CHANNELS_PPM: case PROTOCOL_CHANNELS_PPM:
disable_ppm(module); disable_ppm(module);
break; break;
#endif
} }
} }
@ -303,10 +308,12 @@ void setupPulsesExternalModule(uint8_t protocol)
break; break;
#endif #endif
#if defined(SBUS)
case PROTOCOL_CHANNELS_SBUS: case PROTOCOL_CHANNELS_SBUS:
setupPulsesSbus(); setupPulsesSbus();
scheduleNextMixerCalculation(EXTERNAL_MODULE, SBUS_PERIOD); scheduleNextMixerCalculation(EXTERNAL_MODULE, SBUS_PERIOD);
break; break;
#endif
#if defined(DSM2) #if defined(DSM2)
case PROTOCOL_CHANNELS_DSM2_LP45: case PROTOCOL_CHANNELS_DSM2_LP45:
@ -331,10 +338,12 @@ void setupPulsesExternalModule(uint8_t protocol)
break; break;
#endif #endif
#if defined(PPM)
case PROTOCOL_CHANNELS_PPM: case PROTOCOL_CHANNELS_PPM:
setupPulsesPPMExternalModule(); setupPulsesPPMExternalModule();
scheduleNextMixerCalculation(EXTERNAL_MODULE, PPM_PERIOD(EXTERNAL_MODULE)); scheduleNextMixerCalculation(EXTERNAL_MODULE, PPM_PERIOD(EXTERNAL_MODULE));
break; break;
#endif
default: default:
break; break;

View file

@ -7,9 +7,12 @@ option(TRACE_SD_CARD "Traces SD enabled" OFF)
option(TRACE_FATFS "Traces FatFS enabled" OFF) option(TRACE_FATFS "Traces FatFS enabled" OFF)
option(TRACE_AUDIO "Traces audio enabled" OFF) option(TRACE_AUDIO "Traces audio enabled" OFF)
option(DEBUG_TRACE_BUFFER "Debug Trace Screen" OFF) option(DEBUG_TRACE_BUFFER "Debug Trace Screen" OFF)
option(PPM "PPM TX Module" ON)
option(DSM2 "DSM2 TX Module" ON)
option(SBUS "SBUS TX Module" ON)
option(CROSSFIRE "Crossfire TX Module" OFF)
option(MULTIMODULE "DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)" OFF) option(MULTIMODULE "DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)" OFF)
option(MULTI_SPORT "SPORT telemetry support" OFF) option(MULTI_SPORT "SPORT telemetry support" OFF)
option(CROSSFIRE "Crossfire TX Module" OFF)
option(SUPPORT_D16_EU_ONLY "XJT module only supports D16-EU and LR12-EU" OFF) # TODO rename to XJT_EU_ONLY option(SUPPORT_D16_EU_ONLY "XJT module only supports D16-EU and LR12-EU" OFF) # TODO rename to XJT_EU_ONLY
option(DEBUG_INTERRUPTS "Count interrupts" OFF) option(DEBUG_INTERRUPTS "Count interrupts" OFF)
option(DEBUG_USB_INTERRUPTS "Count individual USB interrupts" OFF) option(DEBUG_USB_INTERRUPTS "Count individual USB interrupts" OFF)
@ -90,7 +93,13 @@ endif()
# Protocols supported # Protocols supported
add_definitions(-DDSM2 -DSBUS) if(DSM2)
add_definitions(-DDSM2)
endif()
if(SBUS)
add_definitions(-DSBUS)
endif()
if(PXX1) if(PXX1)
add_definitions(-DPXX -DPXX1) add_definitions(-DPXX -DPXX1)
@ -185,7 +194,25 @@ set(FIRMWARE_SRC
set(PULSES_SRC set(PULSES_SRC
${PULSES_SRC} ${PULSES_SRC}
pulses.cpp pulses.cpp
ppm.cpp
dsm2.cpp
sbus.cpp
) )
if(PPM)
set(PULSES_SRC
${PULSES_SRC}
ppm.cpp
)
endif()
if(DSM2)
set(PULSES_SRC
${PULSES_SRC}
dsm2.cpp
)
endif()
if(SBUS)
set(PULSES_SRC
${PULSES_SRC}
sbus.cpp
)
endif()