From 1f665561eb5eabd4399017138e9dfef3e4f88c45 Mon Sep 17 00:00:00 2001 From: bsongis Date: Sat, 11 Jul 2015 17:20:08 +0200 Subject: [PATCH] [Taranis X9E] Makefile option "SHUTDOWN_CONFIRMATION=YES/NO" added --- .../src/firmwares/opentx/opentxinterface.cpp | 439 +++++++++--------- radio/src/Makefile | 8 + radio/src/bitmaps/Taranis/shutdown.png | Bin 0 -> 3320 bytes radio/src/gui/Taranis/gui.h | 3 - radio/src/gui/Taranis/widgets.cpp | 13 - radio/src/opentx.cpp | 17 +- 6 files changed, 243 insertions(+), 237 deletions(-) create mode 100755 radio/src/bitmaps/Taranis/shutdown.png diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 4a1412f46..7ea8d5a72 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -1119,7 +1119,7 @@ void addOpenTxLcdOptions(OpenTxFirmware * firmware) void registerOpenTxFirmwares() { - OpenTxFirmware * openTx; + OpenTxFirmware * firmware; Option ext_options[] = { { "frsky", QObject::tr("Support for frsky telemetry mod"), FRSKY_VARIANT }, { "telemetrez", QObject::tr("Support for telemetry easy board"), FRSKY_VARIANT }, { "jeti", QObject::tr("Support for jeti telemetry mod"), 0 }, { "ardupilot", QObject::tr("Support for receiving ardupilot data"), 0 }, { "nmea", QObject::tr("Support for receiving NMEA data"), 0 }, { "mavlink", QObject::tr("Support for MAVLINK devices"), MAVLINK_VARIANT }, { NULL } }; Option extr_options[] = { { "frsky", QObject::tr("Support for frsky telemetry mod"), FRSKY_VARIANT }, { "jeti", QObject::tr("Support for jeti telemetry mod"), 0 }, { "ardupilot", QObject::tr("Support for receiving ardupilot data"), 0 }, { "nmea", QObject::tr("Support for receiving NMEA data"), 0 }, { "mavlink", QObject::tr("Support for MAVLINK devices"), MAVLINK_VARIANT }, { NULL } }; @@ -1127,244 +1127,245 @@ void registerOpenTxFirmwares() Option dsm2_options[] = { { "DSM2", QObject::tr("Support for DSM2 modules"), 0 }, { "DSM2PPM", QObject::tr("Support for DSM2 modules using ppm instead of true serial"), 0 }, { NULL } }; /* 9x board */ - openTx = new OpenTxFirmware("opentx-9x", QObject::tr("OpenTX for 9X board"), BOARD_STOCK); - openTx->addOptions(ext_options); - openTx->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nosplash", QObject::tr("No splash screen")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); - openTx->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); - openTx->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); - // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); - openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOptions(nav_options); - openTx->addOption("sp22", QObject::tr("SmartieParts 2.2 Backlight support")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); - openTx->addOption("pgbar", QObject::tr("EEprom write progress bar")); - openTx->addOption("imperial", QObject::tr("Imperial units")); - openTx->addOption("nowshh", QObject::tr("No Winged Shadow How High support")); - openTx->addOption("novario", QObject::tr("No vario support")); - openTx->addOption("nogps", QObject::tr("No GPS support")); - openTx->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); - openTx->addOption("fasoffset", QObject::tr("Allow compensating for offset errors in FrSky FAS current sensors")); - openTx->addOption("stickrev", QObject::tr("Add support for reversing stick inputs (e.g. needed for FrSky gimbals)")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-9x", QObject::tr("OpenTX for 9X board"), BOARD_STOCK); + firmware->addOptions(ext_options); + firmware->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nosplash", QObject::tr("No splash screen")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); + firmware->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); + firmware->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); + // NOT TESTED firmware->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); + firmware->addOption("DSM2", QObject::tr("Support for DSM2 modules")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOptions(nav_options); + firmware->addOption("sp22", QObject::tr("SmartieParts 2.2 Backlight support")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); + firmware->addOption("pgbar", QObject::tr("EEprom write progress bar")); + firmware->addOption("imperial", QObject::tr("Imperial units")); + firmware->addOption("nowshh", QObject::tr("No Winged Shadow How High support")); + firmware->addOption("novario", QObject::tr("No vario support")); + firmware->addOption("nogps", QObject::tr("No GPS support")); + firmware->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); + firmware->addOption("fasoffset", QObject::tr("Allow compensating for offset errors in FrSky FAS current sensors")); + firmware->addOption("stickrev", QObject::tr("Add support for reversing stick inputs (e.g. needed for FrSky gimbals)")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* 9x board with M128 chip */ - openTx = new OpenTxFirmware("opentx-9x128", QObject::tr("OpenTX for M128 / 9X board"), BOARD_M128); - openTx->addOptions(ext_options); - openTx->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nosplash", QObject::tr("No splash screen")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); - openTx->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); - openTx->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); - // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); - openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOptions(nav_options); - openTx->addOption("sp22", QObject::tr("SmartieParts 2.2 Backlight support")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); - openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); - openTx->addOption("imperial", QObject::tr("Imperial units")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-9x128", QObject::tr("OpenTX for M128 / 9X board"), BOARD_M128); + firmware->addOptions(ext_options); + firmware->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nosplash", QObject::tr("No splash screen")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); + firmware->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); + firmware->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); + // NOT TESTED firmware->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); + firmware->addOption("DSM2", QObject::tr("Support for DSM2 modules")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOptions(nav_options); + firmware->addOption("sp22", QObject::tr("SmartieParts 2.2 Backlight support")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); + firmware->addOption("pgbar", QObject::tr("EEprom write Progress bar")); + firmware->addOption("imperial", QObject::tr("Imperial units")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* 9XR board */ - openTx = new OpenTxFirmware("opentx-9xr", QObject::tr("OpenTX for 9XR"), BOARD_STOCK); - openTx->addOptions(extr_options); - openTx->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nosplash", QObject::tr("No splash screen")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); - openTx->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); - openTx->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); - // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); - openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); - openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); - openTx->addOption("imperial", QObject::tr("Imperial units")); - openTx->addOption("nowshh", QObject::tr("No Winged Shadow How High support")); - openTx->addOption("novario", QObject::tr("No vario support")); - openTx->addOption("nogps", QObject::tr("No GPS support")); - openTx->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); - openTx->addOption("stickrev", QObject::tr("Add support for reversing stick inputs (e.g. needed for FrSky gimbals)")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-9xr", QObject::tr("OpenTX for 9XR"), BOARD_STOCK); + firmware->addOptions(extr_options); + firmware->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nosplash", QObject::tr("No splash screen")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); + firmware->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); + firmware->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); + // NOT TESTED firmware->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); + firmware->addOption("DSM2", QObject::tr("Support for DSM2 modules")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOption("potscroll", QObject::tr("Pots use in menus navigation")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); + firmware->addOption("pgbar", QObject::tr("EEprom write Progress bar")); + firmware->addOption("imperial", QObject::tr("Imperial units")); + firmware->addOption("nowshh", QObject::tr("No Winged Shadow How High support")); + firmware->addOption("novario", QObject::tr("No vario support")); + firmware->addOption("nogps", QObject::tr("No GPS support")); + firmware->addOption("nogauges", QObject::tr("No gauges in the custom telemetry screen")); + firmware->addOption("stickrev", QObject::tr("Add support for reversing stick inputs (e.g. needed for FrSky gimbals)")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* 9XR board with M128 chip */ - openTx = new OpenTxFirmware("opentx-9xr128", QObject::tr("OpenTX for 9XR with M128 chip"), BOARD_M128); - openTx->addOptions(extr_options); - openTx->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nosplash", QObject::tr("No splash screen")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); - openTx->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); - openTx->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); - // NOT TESTED openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); - openTx->addOption("DSM2", QObject::tr("Support for DSM2 modules")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); - openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); - openTx->addOption("imperial", QObject::tr("Imperial units")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-9xr128", QObject::tr("OpenTX for 9XR with M128 chip"), BOARD_M128); + firmware->addOptions(extr_options); + firmware->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nosplash", QObject::tr("No splash screen")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); + firmware->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); + firmware->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); + // NOT TESTED firmware->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); + firmware->addOption("DSM2", QObject::tr("Support for DSM2 modules")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOption("potscroll", QObject::tr("Pots use in menus navigation")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("thrtrace", QObject::tr("Enable the throttle trace in Statistics")); + firmware->addOption("pgbar", QObject::tr("EEprom write Progress bar")); + firmware->addOption("imperial", QObject::tr("Imperial units")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* Gruvin9x board */ - openTx = new OpenTxFirmware("opentx-gruvin9x", QObject::tr("OpenTX for Gruvin9x board / 9X"), BOARD_GRUVIN9X); - openTx->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("sdcard", QObject::tr("Support for SD memory card")); - openTx->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); - openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); - openTx->addOptions(dsm2_options); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); - openTx->addOption("imperial", QObject::tr("Imperial units")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-gruvin9x", QObject::tr("OpenTX for Gruvin9x board / 9X"), BOARD_GRUVIN9X); + firmware->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("sdcard", QObject::tr("Support for SD memory card")); + firmware->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); + firmware->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); + firmware->addOptions(dsm2_options); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOption("potscroll", QObject::tr("Pots use in menus navigation")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("pgbar", QObject::tr("EEprom write Progress bar")); + firmware->addOption("imperial", QObject::tr("Imperial units")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* MEGA2560 board */ - openTx = new OpenTxFirmware("opentx-mega2560", QObject::tr("OpenTX for MEGA2560 board"), BOARD_MEGA2560); - addOpenTxLcdOptions(openTx); - openTx->addOption("PWR", QObject::tr("Power management by soft-off circuitry")); - openTx->addOptions(ext_options); - openTx->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); - openTx->addOptions(dsm2_options); - openTx->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("sdcard", QObject::tr("Support for SD memory card")); -//openTx->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); -//openTx->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); - openTx->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOption("mixersmon", QObject::tr("Adds mixers output view to the CHANNELS MONITOR screen, pressing [ENT] switches between the views")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("pgbar", QObject::tr("EEprom write Progress bar")); - openTx->addOption("imperial", QObject::tr("Imperial units")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-mega2560", QObject::tr("OpenTX for MEGA2560 board"), BOARD_MEGA2560); + addOpenTxLcdOptions(firmware); + firmware->addOption("PWR", QObject::tr("Power management by soft-off circuitry")); + firmware->addOptions(ext_options); + firmware->addOption("PXX", QObject::tr("Support of FrSky PXX protocol")); + firmware->addOptions(dsm2_options); + firmware->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("sdcard", QObject::tr("Support for SD memory card")); +//firmware->addOption("audio", QObject::tr("Support for radio modified with regular speaker")); +//firmware->addOption("voice", QObject::tr("Used if you have modified your radio with voice mode")); + firmware->addOption("haptic", QObject::tr("Used if you have modified your radio with haptic mode")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOption("mixersmon", QObject::tr("Adds mixers output view to the CHANNELS MONITOR screen, pressing [ENT] switches between the views")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("pgbar", QObject::tr("EEprom write Progress bar")); + firmware->addOption("imperial", QObject::tr("Imperial units")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* Sky9x board */ - openTx = new OpenTxFirmware("opentx-sky9x", QObject::tr("OpenTX for Sky9x board / 9X"), BOARD_SKY9X); - openTx->addOption("heli", QObject::tr("Enable HELI menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("bluetooth", QObject::tr("Bluetooth interface")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-sky9x", QObject::tr("OpenTX for Sky9x board / 9X"), BOARD_SKY9X); + firmware->addOption("heli", QObject::tr("Enable HELI menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOption("potscroll", QObject::tr("Pots use in menus navigation")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("dblkeys", QObject::tr("Enable resetting values by pressing up and down at the same time")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("bluetooth", QObject::tr("Bluetooth interface")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* 9XR-Pro */ - openTx = new OpenTxFirmware("opentx-9xrpro", QObject::tr("OpenTX for 9XR-PRO"), BOARD_9XRPRO); - openTx->addOption("heli", QObject::tr("Enable HELI menu and cyclic mix support")); - openTx->addOption("templates", QObject::tr("Enable TEMPLATES menu")); - openTx->addOption("nofp", QObject::tr("No flight modes")); - openTx->addOption("nocurves", QObject::tr("Disable curves menus")); - openTx->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); - openTx->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); - openTx->addOption("symlimits", QObject::tr("Symetrical Limits")); - openTx->addOption("potscroll", QObject::tr("Pots use in menus navigation")); - openTx->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); - openTx->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); - openTx->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); - openTx->addOption("battgraph", QObject::tr("Battery graph")); - openTx->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); - openTx->addOption("bluetooth", QObject::tr("Bluetooth interface")); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-9xrpro", QObject::tr("OpenTX for 9XR-PRO"), BOARD_9XRPRO); + firmware->addOption("heli", QObject::tr("Enable HELI menu and cyclic mix support")); + firmware->addOption("templates", QObject::tr("Enable TEMPLATES menu")); + firmware->addOption("nofp", QObject::tr("No flight modes")); + firmware->addOption("nocurves", QObject::tr("Disable curves menus")); + firmware->addOption("ppmca", QObject::tr("PPM center adjustment in limits")); + firmware->addOption("gvars", QObject::tr("Global variables"), GVARS_VARIANT); + firmware->addOption("symlimits", QObject::tr("Symetrical Limits")); + firmware->addOption("potscroll", QObject::tr("Pots use in menus navigation")); + firmware->addOption("autosource", QObject::tr("In model setup menus automatically set source by moving the control")); + firmware->addOption("autoswitch", QObject::tr("In model setup menus automatically set switch by moving the control")); + firmware->addOption("nographics", QObject::tr("No graphical check boxes and sliders")); + firmware->addOption("battgraph", QObject::tr("Battery graph")); + firmware->addOption("nobold", QObject::tr("Don't use bold font for highlighting active items")); + firmware->addOption("bluetooth", QObject::tr("Bluetooth interface")); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* Taranis board */ - openTx = new OpenTxFirmware("opentx-taranis", QObject::tr("OpenTX for FrSky Taranis"), BOARD_TARANIS); - openTx->addOption("haptic", QObject::tr("Haptic module installed")); - addOpenTxTaranisOptions(openTx); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-taranis", QObject::tr("OpenTX for FrSky Taranis"), BOARD_TARANIS); + firmware->addOption("haptic", QObject::tr("Haptic module installed")); + addOpenTxTaranisOptions(firmware); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* Taranis Plus board */ - openTx = new OpenTxFirmware("opentx-taranisplus", QObject::tr("OpenTX for FrSky Taranis Plus"), BOARD_TARANIS_PLUS); - addOpenTxTaranisOptions(openTx); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-taranisplus", QObject::tr("OpenTX for FrSky Taranis Plus"), BOARD_TARANIS_PLUS); + addOpenTxTaranisOptions(firmware); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); /* Taranis X9E board */ - openTx = new OpenTxFirmware("opentx-taranisx9e", QObject::tr("OpenTX for FrSky Taranis X9E"), BOARD_TARANIS_X9E); - addOpenTxTaranisOptions(openTx); - addOpenTxCommonOptions(openTx); - firmwares.push_back(openTx); + firmware = new OpenTxFirmware("opentx-taranisx9e", QObject::tr("OpenTX for FrSky Taranis X9E"), BOARD_TARANIS_X9E); + firmware->addOption("shutdownconfirm", QObject::tr("Confirmation before radio shutdown")); + addOpenTxTaranisOptions(firmware); + addOpenTxCommonOptions(firmware); + firmwares.push_back(firmware); default_firmware_variant = GetFirmware("opentx-taranisplus-en"); current_firmware_variant = default_firmware_variant; diff --git a/radio/src/Makefile b/radio/src/Makefile index ad5cad4d6..730e535de 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -257,6 +257,10 @@ DEFAULT_MODE = NO # Values = YES, NO EEPROM_PROGRESS_BAR = NO +# Shutdown confirmation (for boards which have soft power) +# Values = NO, YES +SHUTDOWN_CONFIRMATION = NO + # Activates the DEBUG Mode (all boards) # On G9X V4 board, when VOICE=NO: # PORTH:7 --> Transition LOW to HIGH = start of setupPulses(). Transition HIGH to LOW = end of setupPulses(). @@ -1286,6 +1290,10 @@ ifeq ($(EEPROM_PROGRESS_BAR), YES) CPPDEFS += -DEEPROM_PROGRESS_BAR endif +ifeq ($(SHUTDOWN_CONFIRMATION), YES) + CPPDEFS += -DSHUTDOWN_CONFIRMATION +endif + RUN_FROM_FLASH = 1 ### Global Build-Option Directives ### diff --git a/radio/src/bitmaps/Taranis/shutdown.png b/radio/src/bitmaps/Taranis/shutdown.png new file mode 100755 index 0000000000000000000000000000000000000000..8f3307020596d9d0825cca242c7fd61327722662 GIT binary patch literal 3320 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 literal 0 HcmV?d00001 diff --git a/radio/src/gui/Taranis/gui.h b/radio/src/gui/Taranis/gui.h index 415c8197b..bbf3eca66 100755 --- a/radio/src/gui/Taranis/gui.h +++ b/radio/src/gui/Taranis/gui.h @@ -53,9 +53,6 @@ void displayScrollbar(coord_t x, coord_t y, coord_t h, uint16_t offset, uint16_t void displayMenuBar(const MenuItem *menu, int index); void displayProgressBar(const char *label); void updateProgressBar(int num, int den); -#if defined(REV9E) -void displayShutdownProgress(uint32_t progress); -#endif extern coord_t scrollbar_X; #define SET_SCROLLBAR_X(x) scrollbar_X = (x); diff --git a/radio/src/gui/Taranis/widgets.cpp b/radio/src/gui/Taranis/widgets.cpp index 7f264bc81..f189b6f2f 100755 --- a/radio/src/gui/Taranis/widgets.cpp +++ b/radio/src/gui/Taranis/widgets.cpp @@ -63,19 +63,6 @@ void menu_lcd_onoff(coord_t x, coord_t y, uint8_t value, LcdFlags attr) lcd_square(x, y, 7); } -#if defined(REV9E) -void displayShutdownProgress(uint32_t progress) -{ - lcd_clear(); - lcd_putsLeft(LCD_H/2-20, STR_POWEROFF); - drawFilledRect((LCD_W-44)/2, LCD_H/2-5, 28, 10, SOLID, ERASE); - lcd_rect((LCD_W-44)/2, LCD_H/2-5, 28, 10); - for (int i=(progress/100); i>=0; i--) { - drawFilledRect((LCD_W-44)/2+3+i*8, LCD_H/2-3, 6, 6, SOLID); - } -} -#endif - void displayScreenIndex(uint8_t index, uint8_t count, uint8_t attr) { lcd_outdezAtt(LCD_W, 0, count, attr); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index b08511b0b..eb77a8b9c 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -2599,6 +2599,12 @@ int main(void) #endif // !SIMU #if defined(PCBTARANIS) && defined(REV9E) +#define PWR_PRESS_SHUTDOWN 300 // 3s + +const pm_uchar bmp_shutdown[] PROGMEM = { + #include "../../bitmaps/Taranis/shutdown.lbm" +}; + uint32_t pwr_press_time = 0; uint32_t pwrPressedDuration() @@ -2632,7 +2638,8 @@ uint32_t pwrCheck() pwr_press_time = get_tmr10ms(); } else { - if (get_tmr10ms() - pwr_press_time > 300) { + if (get_tmr10ms() - pwr_press_time > PWR_PRESS_SHUTDOWN) { +#if defined(SHUTDOWN_CONFIRMATION) while (1) { lcdRefreshWait(); lcd_clear(); @@ -2650,10 +2657,16 @@ uint32_t pwrCheck() return e_power_on; } } +#else + pwr_check_state = PWR_CHECK_OFF; + return e_power_off; +#endif } else { lcdRefreshWait(); - displayShutdownProgress(pwrPressedDuration()); + unsigned index = pwrPressedDuration() / (PWR_PRESS_SHUTDOWN / 4); + lcd_clear(); + lcd_bmp(76, 0, bmp_shutdown, index*60, 60); lcdRefresh(); return e_power_press; }