* chores(flysky): separate AFHDS2A and AFHDS3 into 2 different module type
This should allow to remove some of the hacks added earlier.
* chore: Add some EL18 CI bits
* fix(afhds): cmake defs
* fix(ci): add el18 to commit-tests.sh
* chore(cpn): separate AFHDS2A and AFHDS3
* chore(cpn): remove binary import of afhds and legacy fxFreq field for afhds3
* fix(cpn): limit available internal afhds protocols to those supported by hardware
* chore(cpn): update Flysky int module test
* fix(cpn): compile error
* fix(cpn): afhds2a max channels
* fix: TR_MODULE_PROTOCOLS
* enh(cpn): more support for afhds2a and 3
* fix(cpn): rebase compile error
* fix(cpn): bit indexes
* fix(cpn): emi toString
* fix(cpn): limit available internal afhds protocols to those supported by hardware
* enh(cpn): add support for Flysky EL18
* fix(cpn): available protocols
* fix(cpn): rebase moduledata
* chore(cpn): add module fields to model print
* Separate AFHDS2A and AFHDS3 UI settings.
* Fix AFHDS3 conversion from old subtype value.
Fix 'Channel Range' layout on portrait LCD.
* Fix name.
---------
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: elecpower <neilh713@tpg.com.au>
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
* introducing external MLink module telemetry as module PPM subtype
* implemented fix for sensor discovery display not showing all detected sensors (is in separate PR too)
implemented PPM subtypes in Companion
* add PPM subtype to model printer
finalize subtypes for PPM in Companion
* added logic to try to use HW UART with inverters turned off first (e.g. NV14), then, if not successfull use soft serial inverted (== uninverted data due to HW inverters on PCB)
changed start bit detection IRQ priority from 5 to the previous 0 (also in separate PR)
* extended telemetry timeout to 2s due to slow Mlink RSSI update rate
* changed the "NOTLM" sub-type texts to:
- "No Telem" for 128x64 (this is the max numbers of characters it can take)
- "No Telemetry" everything else including Companion
* Companion:
- lower case 1st charachter on PpmSubTypeStrings to ppmSubTypeStrings
- added telemetry hooks for ppmSubTypeStrings stringx
* simplified serial port initialization for MLink telemetry
* editorial change: corrected obsolete comment
* fix(cpn): Model print global and special functions
* fix(cpn): Model print sf/gf adjust gvar abbreviate further
* fix(cpn): Model print gf/sf move to table format
* fix(cpn): Model print gf housekeeping
* Model print and compare include GFs enhancement
* Model print and compare include checklist contents
* Add missing brackets and code tidy up
* Print message if cannot open or read checklist file
* Missing GV label translation
Move some checklist code to helpers
* Refactor to use helpers and add cursor position
* Move improved version of removeAccents to helpers and apply to checklist
* Force fixed width font for edit window
* Support new r9m firmwares
* More future proof, thx Kilrah
* (significant) typo
* Companion part
* Make support a compilation option
* Fix compilation for normal users
* Warning popup for usability tests
* Better implementation
* All sizes
* Cosmetics
* Flex is EU+/AU+ only
* [Companion] Handle "flexr9m" option in module settings UI (to match radio UI, including warning msg); Move some "toString" functions out of ModelPrinter into ModuleData/Multiprotocols; "Future-proof" available R9M power options based on "stdr9m" fw option; Fix missing "Hitec" MM protocol name; Fix printing of R9M-EU power level in ModelPrinter.
* Cosmetics
* Rename R9M flex option
* Move failsafe further back to prevent nav oddity
* [Companion] Add Qt tr() functions to all radio data classes instead of using generic QObject type. (no functional changes)
* Small fix for gcc.
* Move more element name string generation to individual classes; settle on nameToString as function name.
* Also put firmware build options translations into Firmware scope.
* Move MultiposPots & MultiposPotsPositions capability lookups and getAnalogInputName() to Boards class.
* Add RawSource::isAvailable() and RawSwitch::isAvailable(); Add board type param to various RawSource lookup functions.
* Add CustomFunctionData::toString(), FlightModeData::toString(), FactoryInstalledPots board capability, MAX_SWITCH_TYPE, & break out GeneralSettings source/switch defaults to own function.
* Add RadioDataConversionState class for tracking conversion actions.
* Implement RadioDataConversionState handler, add conversion process report, and improve/fix conversion issues:
* Make sure all switches/pots/knobs have default configs for destination board type;
* Try to move more custom control names, intelligently;
* Convert model timers and throttle source;
* Adjust for Horus 6P switch in place of Taranis S2 knob;
* Adjust for extra sliders on X12 and X9E to move LS and RS to proper slots as needed;
* Make sure ALL controls are validated, eg. to always account for extra trims/analogs/switches/etc which don't exist on destination;
* Properly indicate invalid RawSource::toString() items with "???".
* Allow user to cancel out of file conversions & provide ample warnings if switching radio type/profile with unsaved file(s) still open;
Also: Fix bug with some orphaned MdiChild windows never being deleted; Create static bool Storage::isBoardCompatible(b1, b2).
* Add maxLibQt "stub" (will not compile).
* Add ExportableTableView for better presentation of conversion results table.
* Move getFourCC() and isBoardCompatible() to Boards class.
* Update multi protocols
* SFHSS also has failsafe implemented
* Show failsafe setting in Companion
* Fix missing protocol names
* Update failsafe format and only show bind when module reports to support it
* Fixes#5411 print curve
Rename Limits to Outputs for consistency with radio and Companion
Fix gvars printed as values
Print PPM Center and Linear Subtrims
* code formatting
* Companion Global Variables refactor to support changes to radio in 2.2
* Update model print for global variables refactor
* Check and if necessary update all flight modes gvar after updating min or max
* Fix loop limit
* Add clear single gvar context menu
Add gvar popup values to model print
Minor fixes
* Implement R9M protocol according to PXX spec 1.7
Some of the things here are guesswork as I don’t have a R9M at hand. Also Companion support for the extra R9M options is not implemented yet.
* Fix build errors
* [Companion] Re-format Inputs list to format input name consistently with rest of UI; Add leading zeros to RawSource numbers in names; Show custom channel name in MixerDialog.
* [Companion] Remove colon separator between input number and custom name.
* Fix segfault when no model pointer is passed to RawSource::toString() (problem was only on this branch).
* [Companion] Model editor Setup panel: Prevent bogus modification signals, eg. when populating protocols box or when removing focus from some fields w/out the value actually changing; Remove unnecessary function.
* [SetupPanel] Fix comparison warning and also a translation issue with Multiprotocols subtype and option names.
* [ModelPrinter] Add a missing include.
* [Companion] Move RadioData constructor.
* [Companion] Move getCapability(SwitchPositions) to Boards class.
* [Companion] Show custom channel, g-var, & curve names throughout UI; Remove redundant name formatting and other unused functions in ModelPrinter and Helpers; Add CustomFunctionData::isEmpty().
* [Companion] Add LogicalSwitchData::isEmpty().
* [Companion] Fix small bug in HardwarePanel.
* [Companion] Rename logical switches to "LSw##" in selections lists to avoid confusion with "L#" and "LS" hardware controls; remove unused RotaryEncoderString().
* [Companion] Introduce new Boards class to further consolidate hardware metadata and remove some globals.
* [Companion] * RawSource::toString() and RawSwitch::toString() can now return custom hardware names (if given a GeneralSettings object) for the following types (respectively):
SOURCE_TYPE_STICK, SOURCE_TYPE_SWITCH, SWITCH_TYPE_SWITCH, & SWITCH_TYPE_MULTIPOS_POT;
* RawSource::isPot() and isSlider() can now return their own index position in potConfig[]/sliderConfig[];
* Switch indicator strings can be localized if necessary.
* [Companion] Refactor model printers to use new RawSource/RawSwitch capabilities; Simplify model-to-printer mapping scheme in multimodelprinter; Use const ModelData pointer.
* [Companion] Refactor how RawSource and RawSwitch selection combo boxes are populated, using cache-able data models instead of direct manipulation; Refactor some other Helpers function into their own namespace.
* Cosmetics & forgotten qualifier.
* [MULTI] Implement option Value adjustment in Companion
Also refactor ui code to use the same multi table as the radio to make updates easier and consistent
* Fix warnings with gcc 6
* Make the whole thing more C++ like
Using QVector instead of std::vector gives me strange errors.
* Fix gcc warning
* another signedness fix
* Add missing include
* Add Gw008 protocol and move subtype definitions out of the translations
* Add note about struct
* More cleanups
Integrate @mpaperno’s latest ideas about cleaning up