* 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>
* Adjust the column sizes for the logical switches in the lust view and the channel monitor footer to fit largest V2 value for 'Edge' function.
* Cleanup code.
* Elevate telemetry screen count from 5 to 10 on color radios.
* Cpn increase max custom screens
* fix(color): Missing Add tab button on max-1
addTab was not called when adding screens dynamically
---------
Co-authored-by: elecpower <neilh713@tpg.com.au>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* Implement DISPLAY_TRIMS_CHANGE option for color LCD trim widget.
Refactor code.
* Change data type to prevent build tests failing.
* Display trim value to the side like B&W radios.
* Add padding to 'Trims' and 'Throttle' setup pages.
* Add padding to pre-flight checks page.
Make button size consistent.
Fit more buttons per row,
Display proper pot and slider names for center beeps.
* Add padding to radio setup pages (Sound, Vario, Haptic, Alarm, Backlight and GPS).
Move backlight inactivity timer to its own line and add a label (requires translation).
* Update translation.
* Hide Backlight controls that are not relevant to the backlight mode selected.
* Update translation.
* Update translation.
* Update translation.
* Update translation.
* Update translation.
* Display time on main screen and telemetry for B&W radios.
Fix position for timer0 display on telemetry screen (was off screen).
* Put the time between the trim bars.
Center the stick boxes and the pot/slider bars.
* Remove code for unsupported radios.
* Fixes for B&W radio UI screens.
* Fix curve display to fit new size. Adjust curve for better horizontal symmetry. Adjust position crosshair to better fit curve line.
* Simplify layouts code, use data driven layout definition.
Generate icon bitmap at runtime to account for screen orientation.
Move old layout png images to companion folder (still used in companion).
* Align buffer for bitmap.
* Use 'free' instead 'delete' for bitmap buffer to avoid failed build test.
* Convert theme select, theme edit and color edit pages to LVGL flex.
Add 'Edit Color' string to language files (requires translations).
Simplify theme edit 'onCancel' logic.
Fix size of buttons in ConfirmDialog for portrait layout.
Truncate item strings in ListBox to fit available space.
Set window background color on Page and TabsGroup classes instead of using 'paint' function.
Replace strncpy and strncat with strAppend - avoid possible unterminated strings and string overrun.
Truncate display of long name and author strings in theme pages.
* Revert code to truncate ListBox entry strings as it causes other issues.
* Adjust layout for theme color editor to fit large hex string size.
* Remove unnecessary copying of the ThemeFile object being edited.
Refresh TabsGroup page background color when theme changes.
* Set selected theme in list on long press as well as short press.
Comment out unused 'title' in ListBox.
* Handle default theme like custom themes on SD card:
- show logo when selecting theme
- support background_WxH.png names for background images
Use f_stat( via isFileAvailable) instead of opening and closing files to check for existence.
* Remove debug print.
* Fix rebase.
* Update long press handler on model select page.
Long press (via touch) on any model will select it and open the menu.
* Open menu for model just selected on long touch press.
In file included from /builddir/build/BUILD/edgetx-2.8.1/radio/src/gui/colorlcd/str_functions.cpp:25:
/builddir/build/BUILD/edgetx-2.8.1/radio/src/gui/colorlcd/str_functions.h:30:42: error: 'uint32_t' has not been declared
30 | extern std::string wrap(std::string str, uint32_t width);
| ^~~~~~~~
Fixes#3222.
* Adds option to align value widget label and value to left, center or right border of the widget zone.
* Cpn sync
* Typofix thx to @Eldenroot
* fix: Add `TW` translation
* fix: Two spaces for indent
---------
Co-authored-by: elecpower <neilh713@tpg.com.au>
* Store 'zone' rectangle dat in Lua registry and update it when the screen layout changes or full screen mode changes. Allows Lua widgets to adjust to layout changes.
* Call widget 'update' function is layout has changed.
* Adjust trainer setup layout to better use space and avoid scrolling.
* Adjust padding for landscape layout.
* Change text for trainer mode to 'Add' and 'Replace' instead of '+=' and ':='. Adjust layout to fit. Copy translations from TR_VMLTPX strings.
* chore(lua): revert useless c light function change
This change was part of the eLua LTR patches (based on 5.1), whereby this feature was already integrated in Lua 5.2.
* feat(lua): port of NodeMCU Lua53 read-only tables
# Conflicts:
# radio/src/lua/CMakeLists.txt
# radio/src/lua/api_general.cpp
* fix(nv14): missing SDRAM definition
* fix: l_mathop
* fix: use float functions in drawPower()
* fix: ltable resize
* fix: correct name is "bit32"
* fix: first Lua context must be closed last
As the lookup cache is attached to that one
* Revert to Lua using double
* Ensure byte-code compatibility
* Fix possible compatibility issue with `lua_typename`/`luaL_typename`
* Fix Bitmap symbol table
* Re-add table lib for COLORLCD
* WiP: new module interface
* WiP: softserial timer DMA
* WiP: setup() and send() in one step
and remove methods specific to internal or external module
* fixes and extra port config
* horus targets
* module ports have moved
* T8 support (only internal module)
* fix nv14
* stupid GCC....
* disable BT
* remove nv14 telem driver
* remove old aux serial driver
* Move module buffers out of pulses.h
* Soft serial fixes and PXX1 support
* Fixed PPM module output
* Fixed CLI
* compilation fixes
* Ported bluetooth and flysky gimbal to new serial driver
* Re-enable soft-serial RX
* fixes and cleanup
* nv14 fixes
* Fix flysky gimbals
* Ghost module
* 16 bytes of RAM
* Remove getByte from module API
* Ghost cleanup
* fix: _half_duplex_input() must be called after usart init
* WiP
* more cleanup
* Remove board specific settings from PXX1 / PXX2 drivers
* A bit of PXX2 header cleanup
* Add support for OVER8 and ONEBIT
* Add some support for inverters (NV14 / EL18)
* Support NV14 power fixes in generic board
* Fix polarity handling
* Fix RX DMA
* Fix mixer not running
* Add soft-serial polarity control
* Quick fix for telemetry polling while module port is changed
* Fix bootloader DEBUG
* Fix MPM telemetry
* Fix pulse start
* DSM2 soft-serial fallback
* DSMP async module restart
* Fix CRSF LUA upstream
* Remove global variable telemetryProtocol
* Use HAL/LL constants
* Fix various issue with AFHDS3 and NV14/EL18 internal module
* Fixed S.PORT unit tests
* fix: update widx after writing at current index
* fix: init error condition
* Fix: possible infinite loop in _find_port()
* Add support for bidir S.PORT init
* Add support for "getLastByte" in HW serial driver
* PXX1: Add support for S.PORT based on IDLE callback
* Fix rebase error
* Fix softserial _rx_fifo_push()
* Add softserial support for waitForTxCompleted()
* Fix MPM flashing (internal / external)
* Fixed external MPM
* Activate RX DMA on internal module
Seems to work with serial passthrough without issues, at least on the L3R PRO.
* Fix softserial DMA on stdlcd F4 targets
* Add softserial support for 32bit timers (mostly TIM2)
* More precise soft-serial
* Fix MPM update using inverters & HW uart
* Raise S.PORT DMA/USART IRQ prio to achieve faster switching to input
* Remove useless delays
* Fix flashing external ELRS module
* Added a retry mechanism for FrSky S.PORT update
* Remove useless enableRx()
* External FrSky modules are all flashed via S.PORT
* Remove power management unit update
This was only used on the first batch of X-lite.
* LVGL conversion for telemetry.
* Move RSSI section after Sensors section.
* Replace empty text box with call to grid.nextCell(). Center 'fresh' data indicator vertically.
* Fix build error after rebase.
* Change global variables layout to better match other pages.
* Move internal classes for global variable page from .h to .cpp file. Convert header text in edit page to StaticText object and remove 'paint' function.
* Fix build error.
* chore: Formatting
* Convert theme save and delete dialogs to use ConfirmDialog popup instead of full screen alert.
Add strings for translation.
* Update translations.
* Update translations.
* Update translations.
* CZ translation
* chore: Formatting
* Call 'cancelHandler' if RTN button used to exit ConfirmDialog.
* Possible fix for 'save theme' dialog not working in the theme editor.
* Update logical switch layout:
- Use LVGL flex / grid layout
- Same height for all buttons
- Display logical switch name inside button so entire row acts as button
- Consistent press handler for buttons (always show popup menu)
- Group buttons for empty switch in lines to utilise space
- Remember selected button and reselect after edit.
* Fix incorrect switch being selected when changing tabs.
* Fix selection of focussed button when using 'Clear', and switching tabs.
* Reorganise logical switch edit code.
* Change button style to match input/mixes/outputs pages.
* Single line overview on landscape LCD layout. Convert to using grid and lgvl objects for overview buttons.
* Remove redundant flag.
* Remove logic that tries to center scroll around selected button (not working).
* Remove empty buttons and add a single '+' button at the bottom to match inputs and mixes.
* Remove unused code.
* Correct string usage.
* Add long press handler for quick access to the '+' button functions.
* Display logical switch operation and parameters as an expression. Add 's' suffix to time values.
* Adjust spacing.
* Set V2 number edit control to automatically resize and fit content to prevent clipping of large values.
* Revert to fixed column layout.
* Adjust grid spacing.
* Convert the logical switch view in the channel monitor to LVGL flex.
* chore: Formatting
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>