Commit Graph
92 Commits
Author SHA1 Message Date
Neil HorneandGitHub 7b1ae2404c chore(cpn): generic simulator (#5692) 2025-01-01 11:48:17 +10:00
Neil HorneandGitHub 149e1a2df0 feat(cpn): add support for surface radios inc Radiomaster MT12 (#5381) 2024-09-26 20:39:51 +10:00
Peter FeerickandGitHub ca459bb91c chore: replace all instances of outdated header (#5336) 2024-07-29 09:35:40 +10:00
Neil HorneandGitHub 27f53ff195 enh(cpn): Cloudbuild support - phase 1 (#4856) 2024-05-28 10:50:02 +10:00
philmozandGitHub 5d8ffcc244 chore(cpn): Increase number of profiles that can be created (#4373) 2023-12-06 10:45:24 +10:00
Neil HorneandGitHub 286ae00678 feat(cpn): External module form factor set in Radio Profile (#3628)
(to allow aligning with firmware compile option) 

* feat(cpn): External module form factor set in Radio Profile to allow aligning with firmware compile option

* Note tweak
2023-07-16 11:06:36 +10:00
e1fe7fce89 feat(radio,cpn): Updates for new joystick system (#3400)
* Reduce RAM usage for advanced joystick system on radio:
- Don't allocate memory blocks unless joystick mode is being used.
Support multiple radio joystick configurations in Companion:
- Save configured joystick settings by joystick name in Companion settings.
- Save last joystick name used in each profile.
- Reload joystick settings by name when profile is changed.

* Only show configuration for used axes and buttons in Companion.
Send actual number of configured joystick buttons from radio in USB packet.

* Fix issue where USB joystick not recognised if no buttons configured.

* Fix compiler warnings.

* Remove debugging.

* Fix crash in Companion.

* Change channel 8 to type 'dial', workaround for Linux mapping issue.

---------

Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
2023-04-21 14:27:41 +10:00
661657feca feat: New advanced joystick mode on radio, improvements to Companion and Simulator joystick support (#3111)
* Allow switches on the connected radio to control switches in the simulator via the joystick interface.

* Merge configurable radio joystick interface from banyaszg.

* Add two more 'axis' channels to companion.

* Fix 6POS from USB joystick to simulator.

* Reduce data size.

* Fix build error on B&W radios.

* Add 'Companion' button mode to work with the button logic in the Companion app.

* Build Companion joystick setup layout at runtime.
Change #define names for simulator joystick.
Allow 15 axes and 32 buttons.
Initial support for trim sliders.

* Remove custom joystick button type for companion - use 3 buttons per switch in companion to control simulator switch state.

* Fix joystick constructor calls parameters. Connect some radio joystick trims to simulator widgets.

* Restore 'companion' button type to reduce number of buttons needed. Make trims work via buttons in USB joystick.

* Connect joystick trim buttons to simulator widgets.

* Use companion source names for trims.

* Add encode / decode of usb joystick custom settings to Companion.

* Convert to lvgl layouts.
Update language files.

* Fix generated YAML storage files.

* Fix initialisation error when editing button channel. Cleanup code.

* Fix rebase.

* Fix refresh of joystick channel list view after editing an entry.
Companion joystick config window uses two columns.

* Fix vertical joystick inversion bug.
Change stick axis labels.

---------

Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
2023-03-22 10:31:29 +10:00
Neil HorneandGitHub a1178f83a6 chore(cpn): Refactor component updates (#3218)
* Refactoring

* Fix current release id and process dlg events

* enh: Process updates dialog add select/deselect all components

* Change Expression to Pattern
2023-03-19 16:13:56 +10:00
philmozandGitHub 9a898533d1 fix(cpn): QoL tweaks to joystick preferences (#3105)
* Add preference option to Companion to disable the 'Cannot open joystick, joystick disabled' popup warning when starting the simulator.

* Don't erase joystick settings if user opens preferences dialog while joystick is not connected.
Remove reference to "Ubuntu" font family for 'Radio Type' label in preferences dialog (generates warning on MacOS).
2023-03-17 12:09:38 +10:00
Neil HorneandGitHub 3563e917c6 feat(cpn): Enhancements to update component runtime options (#2324)
* enh(cpn): Save update component asset options and manage in app settings

* Add option to delete decompress folders independent of delete download folder

* Fix sdsync to point to last update folder

* Update options dlg to allow choosing release channel and saving settings as defaults

* Rename params

* Asset options dialog shared between settings and update run. Add to Save as defaults
2022-09-26 08:55:16 +10:00
elecpowerandPeter Feerick 4f089acf65 Minor msg wording change 2022-09-06 09:29:41 +10:00
elecpowerandPeter Feerick cc68bd2d84 Handle no sd path set 2022-09-06 09:29:41 +10:00
elecpowerandPeter Feerick 696118052e Update radio detection for deciding whether to display splahs settings 2022-09-06 09:29:41 +10:00
elecpowerandPeter Feerick 07f9d38237 Rename settings and change the way post install deletes are configured and operate 2022-09-06 09:29:41 +10:00
elecpowerandPeter Feerick 97048a1544 Add prompt sd sync and install app setting 2022-09-06 09:29:41 +10:00
elecpowerandPeter Feerick bbfaf86bc8 Refactor firmware and companion updates plus add extra supporting components 2022-09-06 09:29:41 +10:00
Neil HorneandGitHub 1964560774 feat(cpn): Add two more new model actions: template and prompt (#1963)
* Add new model actions to application settings

* Add new model prompt action

* Tweak wording

* Add new model action template

* Open individual model yml files

* Tidy up after importing template

* Add create default and edit to prompt options

* Fix edit mode to display the edit dialog after model creation when selected in settings
2022-06-07 17:53:03 +10:00
Neil HorneandGitHub cdf8da78fd fix(companion): Radio profile default module resetting to board default (#1873) 2022-04-21 23:15:47 +10:00
elecpowerandRaphael Coeffic 2a13dba411 Set default internal module in profile 2022-01-02 13:05:09 +01:00
elecpowerandRaphael Coeffic e728560a45 Add default internal module to radio profile 2022-01-02 13:05:09 +01:00
Peter FeerickandGitHub f5b5da86ce Disable unavailable Companion Preferences and tweak more legacy wording (#737)
* Fix references to opentx
* Disable update related options in preferences
2021-09-16 19:36:04 +10:00
Neil HorneandGitHub 70507779a8 Option to prompt for radio profile on companion start (#7565)
* Optional prompt for radio profile on companion start

* Sort out timings and use std appdata function

* Change dialog title
2020-05-04 14:44:33 +02:00
Kilrah 1d3f04482f Allow clearing saved simulator control positions 2020-03-27 11:59:08 +01:00
3djcandGitHub 0f9114c524 Initial TX16S (#7344)
* TX16S initial push - Radio booting, navigation keys ok

* TX16S libsimu

* Please Travis

* Do not start radio on charger power

* USB charger led handling

* Revert "USB charger led handling" until we have proper details

* Pseudo sport power pin

* Please Travis

* tx16s serial debug

* Add tx16s calibration picture

* Review anadir for tx16s, needs to be checked on more radios

* Dump raw multi telem on AUX port

* More work on TX16S

* Fixes

* Compilation fix

* Compilation fix

* Fix Aux Serial power

* Various improvement

* USB charger led handling

* Cosmetics

* Cosmetics

* USB charger led handling

* Add charge indicator on GUI
2020-01-30 17:25:09 +04:00
Kilrah c951c7a222 Ensure companion settings open on profile tab again 2019-09-08 09:28:24 +02:00
Kilrah f780674ec9 No colored backlight on Horus 2019-08-19 20:47:16 +02:00
Bertrand Songis f6a0db16e7 Add X3 simulator 2019-05-09 10:57:24 +02:00
Max Paperno b4d992f490 [Companion][Firmware] Make Option struct a member; Add/use typedefs for options group and list; Use accessor functions for languages and options; Re-arrange fw options a little for better layout in UI; Remove dead code, cosmetics. 2018-09-19 06:47:36 -04:00
Max Paperno d8a06158b1 [Companion][AppPreferencesDialog] Refactor firmwareOptionChanged(), getFirmwareVariant(), & populateFirmwareOptions() for clarity/efficiency; Remove AVR-only "voice" option handling and related items; Add getBaseFirmware(). 2018-09-19 06:47:35 -04:00
Max Paperno 34e1075582 [Companion][AppPreferencesDialog] If not ALLOW_NIGHTLY_BUILDS then either hide nightly channel option, or if user already has it selected then display a warning (in case they also have nightly installed in parallel). 2018-07-16 17:39:22 -04:00
Max Paperno 988c837011 [Companion] Refactor settings system (CompStoreObj/AppData/etc):
~ All stored properties are fully dynamic, using an extended version of the Qt Property System;
 ~ CompStoreObj is now QObject subclass;
 + All properties now have change notifier signals;
 ~ Do not store default values in settings;
 + Add _reset() and _default() functions for each property;
 + Settings import now ignores all non-existent properties automatically;
 + Add settings export functions;
 + Add more version macros;
 ~ Remove template functions;
 ~ Move DownloadBranchType and create NewModelAction enums and register with Qt meta system;
 ~ Multiple efficiency and optimization changes (const functions, literals, etc).
2018-06-29 20:00:10 -04:00
Max PapernoandBertrand Songis 0dbad182e8 [Companion] Radio conversion improvements (#5534)
* 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.
2017-12-18 22:56:39 +01:00
3djcandBertrand Songis d90ac05d6e One settings to rule them all ! (#5449) 2017-12-01 11:54:30 +01:00
Bertrand SongisandGitHub 0faee13bc3 A 3rd branch for RC compilation (#5441)
A 3rd branch for RC compilation
2017-11-30 11:51:22 +01:00
Max PapernoandBertrand Songis f50ee3fb39 [Companion] Add optional logging of all debug output. (#4974)
* [AppDebugMessageHandler] Add ability to write debug output to any number of QIODevices.

* [Simulator][DebugOutput] Use new QIODevice hook in AppDebugMessageHandler instead of signal/slot.

* [AppData] Add new settings for debug logging; Refactor property creation macro to work with any data type and add varName_init() method to set default; Refactor all boolean settings to use new macro (others to be migrated later).

* [AppPreferencesDialog] Add UI for appDebugLog, fwTraceLog, & appLogsDir settings; Clean up layout on application prefs. tab, move and re-label a couple items.

* [Companion][Simulator] Enable optional application debug output logging.

* [Simulator] Enable optional logging of firmware debug output to file.

* [EEPROMInterface] Use qDebug() instead of std::cout so that now all debug output can be routed via custom message handler/logger.

* [Companion][Simulator] Add missing #include.
2017-06-10 23:33:03 +02:00
Max Paperno 2808b85fce [Companion] Clean up some AppPreferencesDialog layout size policies and fix height shrinking when options change; Fixes issues on HiDPI displays. 2017-04-12 02:51:25 -04:00
Max PapernoandBertrand Songis d864a67c3b [Companion] Restore model drag/drop/compare, many UI improvements to main and sub-windows. (#4769)
* [Companion] Refactor MdiChild & TreeModel, restore drag/drop, and more:
    * Add full drag-and-drop functions to the models list, including model copy, move, and insert actions (also between windows);
    * Add general radio settings copy/paste across file windows;
    * Full MIME support with distinct types for various data (eg. models vs. general settings), also add new type for metadata (header);
    * Copied/cut models can now be inserted in any spot (similar to drop-insert);
    * Deleted/cut models can now be removed entirely (including the empty slot) for all radio types (any models after the removed one move up, like for Horus) (may need to make this an option);
    * Empty model slots can now also be removed (any models after the removed slot move up)  (but total # of slots is still maintained);
    * Default model can be deleted (new default is picked);
    * Completely revamp the actions system (copy/paste/edit/etc) to make it fully functional:
      * Actions exist in the window, not just context menu, therefore all keyboard shortcuts actually work, w/out any duplicated code;
      * Provides access from MainWindow in a comprehensive manner: all actions are available and properly updated based on selections in current editor window, w/out awkward event monitoring;
      * More actions available from context menu, and somewhat reorganized;
      * Also show all actions on mini toolbars right in the MDI window (possibly make optional later);
      * Updated English localization file to account for plurals usage in new action item names (other languages need to be updated);
    * Keyboard navigation in the model list now works/practical;
    * MDI window uses all available height by default;
    * Newly added models/categories are selected and highlighted; Category names are immediately editable; Model editor is/can be launched if wizard is not (need to make option);
    * MainWindow updates:
      * Edit toolbar and menu now showing all available edit actions, with proper context;
      * File menu properly updates with all "general" radio actions: edit/copy/paste settings and simulate radio;
      * Added Windows menu showing list of open windows (eg. to switch when full screen) and tabbed window option (need to make persistent setting);
      * Immediate update of icon size preference;
      * Do not delete toolbars when re-translating UI (they don't lose assigned position);

* [Companion] Restore model compare functionality by using new MIME data exchange system; Add ability to compare any number of models at a time; Multi-model printer now shows custom hardware settings for each dropped model (even from different radios).

* [Companion] Add missing monoblue & monowhite theme sdsync icons.

* [Companion] Model wizard starts with default model name populated.

* [Companion] Properly re-translate UI instead of recreating all the actions/etc.; Tell Mac specifically where to put our actions (seems to make it happier too).

* [Companion] Further improve handling of Window menu items/detection of sub-window changes.

* [Companion] Add file-close action.

* [Companion] Add user options and save preferences:
    * Option to use wizard, open editor, or do nothing on new model creation;
    * Option to remove empty model slots when deleting/moving models (in non-Horus radios);
    * Options to hide toolbars in document windows (r-click on TBs);
    * Save/restore size of document windows, and maximized/tabbed state;
    * Save/restore size/position of model compare window;
    * Add shortcuts for model compare, FW download, log viewer;

* [Companion] Disable being able to "delete" empty model slots (more awkward than helpful).
2017-04-10 19:29:41 +02:00
Max PapernoandBertrand Songis 36bb951314 [Companion] Radio profile/current firmware handling: (#4737)
* Fix possible confusion/data corruption when deleting radio profile (closes #4734, ref: #4686);
    * Add Delete Profile action to Radio Profiles menu (closes #4736) (but remove from from app prefs. panel);
    * Add confirmation prompt before deleting profile;
    * Open profile settings dialog when creating/copying a profile (closes #4735);
    * Make sure current (global) firmware flavor is properly updated when changing fw type/options in profile;
    * Append "-Copy" to name of copied profile;
    * Factor out Firmware global vars/functions in favor of static members.
2017-04-02 12:17:06 +02:00
Max PapernoandBertrand Songis 369bac9950 [Companion] Improve handling of non-supported splash image (Horus) in radio profile settings page. (#4720) 2017-03-31 07:56:22 +02:00
Andre Bernet 8bced60784 [companion] Horus splash replacement currently unavailable 2017-03-04 22:12:09 +01:00
Bertrand Songis 1924d28be3 [Companion] Fixes 2017-01-18 15:25:43 +01:00
Bertrand Songis b0f5b646af [Companion] Copyright added to all files 2016-11-23 16:40:47 +01:00
Bertrand SongisandGitHub 343d6daf86 [Companion] Some refactoring around the splash image handling (#4067) 2016-11-23 08:46:22 +01:00
Jim TaylorandBertrand Songis 324addba2c Fix Issue 4057 for X9E also. (#4066) 2016-11-22 18:19:40 +01:00
Jim TaylorandBertrand Songis bda86d6e6a Fix issue 4957 Taranis splash screens formatted incorrectly. (#4064) 2016-11-22 07:40:38 +01:00
Damjan Adamic 2763567122 Companion firmware options:
* layout changed to 4 columns
 * fixed broken options (by commit 51cb50151)
 * added missing "horussticks" for X9E
2016-11-20 18:37:58 +01:00
Bertrand Songis 32a3d4588e [Horus] Nightly builds parameters hidden when NIGHTLY_BUILDS=NO 2016-03-17 19:00:56 +01:00
Bertrand Songis aec2170e7e Move to Qt5 and Qt5Multimedia 2016-03-10 07:12:44 +01:00
Bertrand Songis a8ff8b524b Fixes #2634 - Option ALLOW_NIGHTLY_BUILDS added 2015-08-05 18:51:50 +02:00