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 000000000..8f3307020 Binary files /dev/null and b/radio/src/bitmaps/Taranis/shutdown.png differ 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; }