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>
This commit is contained in:
philmoz
2023-03-22 10:31:29 +10:00
committed by GitHub
co-authored by Phil Mitchell
parent a1178f83a6
commit 661657feca
81 changed files with 3501 additions and 572 deletions
+28
View File
@@ -949,3 +949,31 @@ const char STR_MAIN_MENU_STATISTICS[] = TR_MAIN_MENU_STATISTICS;
const char STR_MAIN_MENU_ABOUT_EDGETX[] = TR_MAIN_MENU_ABOUT_EDGETX;
#endif
#if defined(USBJ_EX)
const char STR_USBJOYSTICK_LABEL[] = TR_USBJOYSTICK_LABEL;
const char STR_USBJOYSTICK_EXTMODE[] = TR_USBJOYSTICK_EXTMODE;
ISTR(VUSBJOYSTICK_EXTMODE);
const char STR_USBJOYSTICK_SETTINGS[] = TR_USBJOYSTICK_SETTINGS;
const char STR_USBJOYSTICK_IF_MODE[] = TR_USBJOYSTICK_IF_MODE;
ISTR(VUSBJOYSTICK_IF_MODE);
const char STR_USBJOYSTICK_CH_MODE[] = TR_USBJOYSTICK_CH_MODE;
ISTR(VUSBJOYSTICK_CH_MODE);
ISTR(VUSBJOYSTICK_CH_MODE_S);
const char STR_USBJOYSTICK_CH_BTNMODE[] = TR_USBJOYSTICK_CH_BTNMODE;
ISTR(VUSBJOYSTICK_CH_BTNMODE);
ISTR(VUSBJOYSTICK_CH_BTNMODE_S);
const char STR_USBJOYSTICK_CH_SWPOS[] = TR_USBJOYSTICK_CH_SWPOS;
ISTR(VUSBJOYSTICK_CH_SWPOS);
const char STR_USBJOYSTICK_CH_AXIS[] = TR_USBJOYSTICK_CH_AXIS;
ISTR(VUSBJOYSTICK_CH_AXIS);
const char STR_USBJOYSTICK_CH_SIM[] = TR_USBJOYSTICK_CH_SIM;
ISTR(VUSBJOYSTICK_CH_SIM);
const char STR_USBJOYSTICK_CH_INVERSION[] = TR_USBJOYSTICK_CH_INVERSION;
const char STR_USBJOYSTICK_CH_BTNNUM[] = TR_USBJOYSTICK_CH_BTNNUM;
const char STR_USBJOYSTICK_BTN_COLLISION[] = TR_USBJOYSTICK_BTN_COLLISION;
const char STR_USBJOYSTICK_AXIS_COLLISION[] = TR_USBJOYSTICK_AXIS_COLLISION;
const char STR_USBJOYSTICK_CIRC_COUTOUT[] = TR_USBJOYSTICK_CIRC_COUTOUT;
ISTR(VUSBJOYSTICK_CIRC_COUTOUT);
const char STR_USBJOYSTICK_APPLY_CHANGES[] = TR_USBJOYSTICK_APPLY_CHANGES;
#endif