From 63604b3b129083ec30b06703adb869d974915a2e Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 22 Aug 2019 11:57:21 +0200 Subject: [PATCH 1/3] Options rework --- .../src/firmwares/opentx/opentxinterface.cpp | 16 ++-------------- radio/src/targets/common/arm/CMakeLists.txt | 15 +-------------- .../targets/common/arm/stm32/CMakeLists.txt | 2 +- radio/src/targets/horus/CMakeLists.txt | 13 +++++++++++++ radio/src/targets/sky9x/CMakeLists.txt | 13 +++++++++++++ radio/src/targets/taranis/CMakeLists.txt | 13 +++++++++++++ radio/util/fwoptions.py | 18 ------------------ 7 files changed, 43 insertions(+), 47 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 6fe953b5e..79c31daf9 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -792,14 +792,9 @@ int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port) case PULSES_DSM2: case PULSES_DSMX: case PULSES_SBUS: - return 1; case PULSES_MULTIMODULE: - if(IS_JUMPER_T12(board)) - return 1; - else - return id.contains("multimodule") ? 1 : 0; case PULSES_CROSSFIRE: - return id.contains("crossfire") ? 1 : 0; + return 1; case PULSES_ACCESS_R9M_LITE: case PULSES_ACCESS_R9M_LITE_PRO: return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board)) ? 1 : 0; @@ -836,9 +831,8 @@ int OpenTxFirmware::isAvailable(PulsesProtocol proto, int port) case PULSES_DSM2: case PULSES_DSMX: case PULSES_SBUS: - return 1; case PULSES_MULTIMODULE: - return id.contains("multimodule") ? 1 : 0; + return 1; default: return 0; } @@ -1155,7 +1149,6 @@ void addOpenTxRfOptions(OpenTxFirmware * firmware, bool flex = true) { static const Firmware::Option opt_eu("eu", Firmware::tr("Removes D8 FrSky protocol support which is not legal for use in the EU on radios sold after Jan 1st, 2015")); static const Firmware::Option opt_fl("flexr9m", Firmware::tr("Enable non certified firmwares")); - firmware->addOption("multimodule", Firmware::tr("Support for the DIY-Multiprotocol-TX-Module")); if (flex) firmware->addOptionsGroup({opt_eu, opt_fl}); else @@ -1173,8 +1166,6 @@ void addOpenTxFrskyOptions(OpenTxFirmware * firmware) firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support")); firmware->addOption("nogvars", Firmware::tr("Disable Global variables")); firmware->addOption("lua", Firmware::tr("Enable Lua custom scripts screen")); - firmware->addOption("luac", Firmware::tr("Enable Lua compiler")); - firmware->addOption("crossfire", Firmware::tr("Support for Crossfire TX Module")); addOpenTxRfOptions(firmware); } @@ -1276,12 +1267,9 @@ void registerOpenTxFirmwares() /* Jumper T12 board */ firmware = new OpenTxFirmware("opentx-t12", QCoreApplication::translate("Firmware", "Jumper T12"), BOARD_JUMPER_T12); addOpenTxCommonOptions(firmware); - firmware->addOption("multimodule", Firmware::tr("Support for the DIY-Multiprotocol-TX-Module")); firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support")); firmware->addOption("nogvars", Firmware::tr("Disable Global variables")); firmware->addOption("lua", Firmware::tr("Enable Lua custom scripts screen")); - firmware->addOption("luac", Firmware::tr("Enable Lua compiler")); - firmware->addOption("crossfire", Firmware::tr("Support for Crossfire TX Module")); addOpenTxFontOptions(firmware); registerOpenTxFirmware(firmware); diff --git a/radio/src/targets/common/arm/CMakeLists.txt b/radio/src/targets/common/arm/CMakeLists.txt index 34f212475..4687cee61 100644 --- a/radio/src/targets/common/arm/CMakeLists.txt +++ b/radio/src/targets/common/arm/CMakeLists.txt @@ -12,8 +12,7 @@ option(MODULE_SIZE_STD "Standard size TX Module" ON) 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)" ON) option(MULTI_SPORT "SPORT telemetry support" 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) @@ -156,18 +155,6 @@ if(MULTI_SPORT) add_definitions(-DMULTI_SPORT) endif() -if(CROSSFIRE) - add_definitions(-DCROSSFIRE) - set(PULSES_SRC - ${PULSES_SRC} - crossfire.cpp - ) - set(SRC - ${SRC} - telemetry/crossfire.cpp - ) -endif() - add_definitions(-DCPUARM) add_definitions(-DGPS) add_definitions(-DBOLD_FONT -DBATTGRAPH -DTHRTRACE) diff --git a/radio/src/targets/common/arm/stm32/CMakeLists.txt b/radio/src/targets/common/arm/stm32/CMakeLists.txt index bd40ddc5a..9530d1f3a 100644 --- a/radio/src/targets/common/arm/stm32/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/CMakeLists.txt @@ -1,7 +1,7 @@ set(LUA "NO" CACHE STRING "Lua scripts (YES/NO/NO_MODEL_SCRIPTS)") set_property(CACHE LUA PROPERTY STRINGS YES NO NO_MODEL_SCRIPTS) set(LUA_SCRIPT_LOAD_MODE "" CACHE STRING "Script loading mode and compilation flags [btTxcd] (see loadScript() API docs). Blank for default ('bt' on radio, 'T' on SIMU/DEBUG builds)") -option(LUA_COMPILER "Pre-compile and save Lua scripts" OFF) +option(LUA_COMPILER "Pre-compile and save Lua scripts" ON) option(LUA_ALLOCATOR_TRACER "Trace Lua memory (de)allocations to debug port (also needs DEBUG=YES NANO=NO)" OFF) option(USB_SERIAL "Enable USB serial (CDC)" OFF) diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index ac7855045..e8da314e4 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -1,3 +1,4 @@ +option(CROSSFIRE "Crossfire TX Module" ON) option(DISK_CACHE "Enable SD card disk cache" ON) option(UNEXPECTED_SHUTDOWN "Enable the Unexpected Shutdown screen" ON) option(PXX1 "PXX1 protocol support" ON) @@ -202,3 +203,15 @@ if(PYTHONINTERP_FOUND) DEPENDS ${RADIO_DIRECTORY}/src/datastructs.h ${RADIO_DIRECTORY}/util/generate_datacopy.py ) endif() + +if(CROSSFIRE) + add_definitions(-DCROSSFIRE) + set(PULSES_SRC + ${PULSES_SRC} + crossfire.cpp + ) + set(SRC + ${SRC} + telemetry/crossfire.cpp + ) +endif() \ No newline at end of file diff --git a/radio/src/targets/sky9x/CMakeLists.txt b/radio/src/targets/sky9x/CMakeLists.txt index b4f37964b..eb60eec0e 100644 --- a/radio/src/targets/sky9x/CMakeLists.txt +++ b/radio/src/targets/sky9x/CMakeLists.txt @@ -1,3 +1,4 @@ +option(CROSSFIRE "Crossfire TX Module" OFF) set(ARCH ARM) set(LUA NO) set(MCU cortex-m3) @@ -129,3 +130,15 @@ set(SRC ${SRC} debug.cpp ) + +if(CROSSFIRE) + add_definitions(-DCROSSFIRE) + set(PULSES_SRC + ${PULSES_SRC} + crossfire.cpp + ) + set(SRC + ${SRC} + telemetry/crossfire.cpp + ) +endif() diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index b4bd44e53..63bb32f7d 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -1,3 +1,4 @@ +option(CROSSFIRE "Crossfire TX Module" ON) option(SHUTDOWN_CONFIRMATION "Shutdown confirmation" OFF) option(LCD_DUAL_BUFFER "Dual LCD Buffer" OFF) option(INTERNAL_MODULE_PPM "Support for PPM internal module hack" OFF) @@ -310,3 +311,15 @@ if(INTERNAL_MODULE_PXX1) endif() set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} ${BITMAPS_TARGET}) + +if(CROSSFIRE) + add_definitions(-DCROSSFIRE) + set(PULSES_SRC + ${PULSES_SRC} + crossfire.cpp + ) + set(SRC + ${SRC} + telemetry/crossfire.cpp + ) +endif() \ No newline at end of file diff --git a/radio/util/fwoptions.py b/radio/util/fwoptions.py index 75ae7dcf7..1f152aed3 100755 --- a/radio/util/fwoptions.py +++ b/radio/util/fwoptions.py @@ -40,7 +40,6 @@ options_sky9x = { "faimode": ("FAI", "YES", None), "faichoice": ("FAI", "CHOICE", None), "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), - "multimodule": ("MULTIMODULE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -62,7 +61,6 @@ options_ar9x = { "faichoice": ("FAI", "CHOICE", None), "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), # "rtc": ("RTCLOCK", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -80,8 +78,6 @@ options_taranis_x9d = { "internalppm": ("INTERNAL_MODULE_PPM", "YES", "NO"), "shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -99,8 +95,6 @@ options_taranis_x9dp = { "internalppm": ("INTERNAL_MODULE_PPM", "YES", "NO"), "shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -118,9 +112,7 @@ options_taranis_x9lite = { "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), "shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), "internalpxx1": ("INTERNAL_MODULE_PXX1", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -136,8 +128,6 @@ options_taranis_xlite = { "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), "shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -154,9 +144,7 @@ options_taranis_xlites = { "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), "shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), "internalpxx1": ("INTERNAL_MODULE_PXX1", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -174,8 +162,6 @@ options_taranis_x9e = { "shutdownconfirm": ("SHUTDOWN_CONFIRMATION", "YES", "NO"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), "horussticks": ("STICKS", "HORUS", "STANDARD"), - "multimodule": ("MULTIMODULE", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -189,9 +175,7 @@ options_horus_x12s = { "faichoice": ("FAI", "CHOICE", None), "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), "pcbdev": ("PCBREV", "10", None), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } @@ -205,7 +189,5 @@ options_horus_x10 = { "faichoice": ("FAI", "CHOICE", None), "nooverridech": ("OVERRIDE_CHANNEL_FUNCTION", "NO", "YES"), "eu": ("SUPPORT_D16_EU_ONLY", "YES", "NO"), - "multimodule": ("MULTIMODULE", "YES", "NO"), - "crossfire": ("CROSSFIRE", "YES", "NO"), "flexr9m": ("R9M_PROTO_FLEX", "YES", None) } From 321c25b756ad7de88b44084fd01db36de91c4b15 Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 22 Aug 2019 12:56:19 +0200 Subject: [PATCH 2/3] Sky9x crossfire --- radio/src/targets/sky9x/board.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/radio/src/targets/sky9x/board.h b/radio/src/targets/sky9x/board.h index 4ff927aa4..d44b11356 100644 --- a/radio/src/targets/sky9x/board.h +++ b/radio/src/targets/sky9x/board.h @@ -228,6 +228,11 @@ uint32_t readTrims(); // Pulses driver void extmoduleSerialStart(uint32_t baudrate, uint32_t period_half_us, bool inverted); void extmoduleSendNextFrame(); +void module_output_active(); +inline void EXTERNAL_MODULE_ON() +{ + module_output_active(); +} // SD driver #if defined(SIMU) @@ -377,6 +382,9 @@ void debugPutc(const char c); // Telemetry driver void telemetryPortInit(uint32_t baudrate, uint8_t mode); +inline void telemetryPortSetDirectionOutput() +{ +} uint32_t telemetryTransmitPending(); void telemetryTransmitBuffer(const uint8_t * buffer, uint32_t size); void rxPdcUsart( void (*pChProcess)(uint8_t x) ); From 9ec069d09b45fdc1b71fdfe0d2fe228c2e71853b Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 22 Aug 2019 12:56:45 +0200 Subject: [PATCH 3/3] Undo split --- radio/src/targets/common/arm/CMakeLists.txt | 13 +++++++++++++ radio/src/targets/horus/CMakeLists.txt | 12 ------------ radio/src/targets/sky9x/CMakeLists.txt | 12 ------------ radio/src/targets/taranis/CMakeLists.txt | 13 ------------- 4 files changed, 13 insertions(+), 37 deletions(-) diff --git a/radio/src/targets/common/arm/CMakeLists.txt b/radio/src/targets/common/arm/CMakeLists.txt index 4687cee61..f47c72760 100644 --- a/radio/src/targets/common/arm/CMakeLists.txt +++ b/radio/src/targets/common/arm/CMakeLists.txt @@ -12,6 +12,7 @@ option(MODULE_SIZE_STD "Standard size TX Module" ON) option(PPM "PPM TX Module" ON) option(DSM2 "DSM2 TX Module" ON) option(SBUS "SBUS TX Module" ON) +option(CROSSFIRE "Crossfire TX Module" ON) option(MULTIMODULE "DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)" ON) option(MULTI_SPORT "SPORT telemetry support" OFF) option(SUPPORT_D16_EU_ONLY "XJT module only supports D16-EU and LR12-EU" OFF) # TODO rename to XJT_EU_ONLY @@ -155,6 +156,18 @@ if(MULTI_SPORT) add_definitions(-DMULTI_SPORT) endif() +if(CROSSFIRE) + add_definitions(-DCROSSFIRE) + set(PULSES_SRC + ${PULSES_SRC} + crossfire.cpp + ) + set(SRC + ${SRC} + telemetry/crossfire.cpp + ) +endif() + add_definitions(-DCPUARM) add_definitions(-DGPS) add_definitions(-DBOLD_FONT -DBATTGRAPH -DTHRTRACE) diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index e8da314e4..c4cb70ed9 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -1,4 +1,3 @@ -option(CROSSFIRE "Crossfire TX Module" ON) option(DISK_CACHE "Enable SD card disk cache" ON) option(UNEXPECTED_SHUTDOWN "Enable the Unexpected Shutdown screen" ON) option(PXX1 "PXX1 protocol support" ON) @@ -204,14 +203,3 @@ if(PYTHONINTERP_FOUND) ) endif() -if(CROSSFIRE) - add_definitions(-DCROSSFIRE) - set(PULSES_SRC - ${PULSES_SRC} - crossfire.cpp - ) - set(SRC - ${SRC} - telemetry/crossfire.cpp - ) -endif() \ No newline at end of file diff --git a/radio/src/targets/sky9x/CMakeLists.txt b/radio/src/targets/sky9x/CMakeLists.txt index eb60eec0e..11b0beacb 100644 --- a/radio/src/targets/sky9x/CMakeLists.txt +++ b/radio/src/targets/sky9x/CMakeLists.txt @@ -1,4 +1,3 @@ -option(CROSSFIRE "Crossfire TX Module" OFF) set(ARCH ARM) set(LUA NO) set(MCU cortex-m3) @@ -131,14 +130,3 @@ set(SRC debug.cpp ) -if(CROSSFIRE) - add_definitions(-DCROSSFIRE) - set(PULSES_SRC - ${PULSES_SRC} - crossfire.cpp - ) - set(SRC - ${SRC} - telemetry/crossfire.cpp - ) -endif() diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 63bb32f7d..b4bd44e53 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -1,4 +1,3 @@ -option(CROSSFIRE "Crossfire TX Module" ON) option(SHUTDOWN_CONFIRMATION "Shutdown confirmation" OFF) option(LCD_DUAL_BUFFER "Dual LCD Buffer" OFF) option(INTERNAL_MODULE_PPM "Support for PPM internal module hack" OFF) @@ -311,15 +310,3 @@ if(INTERNAL_MODULE_PXX1) endif() set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} ${BITMAPS_TARGET}) - -if(CROSSFIRE) - add_definitions(-DCROSSFIRE) - set(PULSES_SRC - ${PULSES_SRC} - crossfire.cpp - ) - set(SRC - ${SRC} - telemetry/crossfire.cpp - ) -endif() \ No newline at end of file