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)
{
#if !defined(PCBXLITE)
if (moduleType == MODULE_TYPE_PXX_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE || moduleType == MODULE_TYPE_ACCESS_R9M_LITE_PRO) {
#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)
return false;
}
#endif
#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;
}
#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 (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;
}
#endif
#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;
}
#else
if (moduleType == MODULE_TYPE_CROSSFIRE) {
if (moduleType == MODULE_TYPE_CROSSFIRE)
return false;
}
#endif
#if !defined(DSM2)
if (moduleType == MODULE_TYPE_DSM2) {
if (moduleType == MODULE_TYPE_DSM2)
return false;
}
#endif
#if !defined(MULTIMODULE)
if (moduleType == MODULE_TYPE_MULTIMODULE) {
#if !defined(SBUS)
if (moduleType == MODULE_TYPE_SBUS)
return false;
}
#endif
#if !defined(MULTIMODULE)
if (moduleType == MODULE_TYPE_MULTIMODULE)
return false;
#endif
#if defined(HARDWARE_INTERNAL_MODULE)
if (isModuleUSingSport(EXTERNAL_MODULE, moduleType) && isModuleUSingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type))
return false;
#endif
#if !defined(EXTERNAL_MODULE_PPM)
if (moduleType == MODULE_TYPE_PPM)
return false;
#endif
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;
}
#else
inline bool isModuleDSM2(uint8_t idx)
{
return false;
}
#endif
#if defined(SBUS)
inline bool isModuleSBUS(uint8_t idx)
{
return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_SBUS;
}
#else
inline bool isModuleDSM2(uint8_t idx)
inline bool isModuleSBUS(uint8_t idx)
{
return false;
}

View file

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

View file

@ -7,9 +7,12 @@ option(TRACE_SD_CARD "Traces SD enabled" OFF)
option(TRACE_FATFS "Traces FatFS enabled" OFF)
option(TRACE_AUDIO "Traces audio enabled" 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(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(DEBUG_INTERRUPTS "Count interrupts" OFF)
option(DEBUG_USB_INTERRUPTS "Count individual USB interrupts" OFF)
@ -90,7 +93,13 @@ endif()
# Protocols supported
add_definitions(-DDSM2 -DSBUS)
if(DSM2)
add_definitions(-DDSM2)
endif()
if(SBUS)
add_definitions(-DSBUS)
endif()
if(PXX1)
add_definitions(-DPXX -DPXX1)
@ -185,7 +194,25 @@ set(FIRMWARE_SRC
set(PULSES_SRC
${PULSES_SRC}
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()