* Flight mode list and edit changes:
- Update trim ranges in Companion to match radio.
- Move trims setup to main edit view instead of dialog popup.
- Show/edit current trim value for each trim (if enabled)
* Show flight mode list view like logical switches.
* Update FM trim values in edit window if trim is changed (via trim switch).
* Use styles for layout
* Remove grid layouts - use flex flow as it is faster.
* Speed up page build time.
Reduces build time on TX16S Mk2 from ~320ms to ~25ms.
* Fix touch screen events.
* chore(ui): speedup gvars page
* Replace StaticText with LVGL labels.
* Further performance improvements.
* Remove diagnostics.
* Fix portrait layout.
* Refactor style to a separate class and use CHECKED state to control color of selected flight mode.
* Remove duplicate lines.
* User LVGL state and style for GV value font size selection.
Reduce the number of times the style_refresh state is changed.
* Center align name without needing hard wired offsets.
* Speed up page build time.
* chore: Bump libopenui
gagarinlg chore(ui): improve static text and window base speed (#88)
---------
Co-authored-by: gagarinlg <malte@langermann.net>
* Add scroll bar to radio settings/config pages.
* Add scroll bar to mode settings/config pages and screen settings pages.
* For pages display via TabsGroup class. move the scroll bar setting to the 'body' window.
* Fix position of new line on Inputs and Mixes pages.
* chore: Bump `libopenui`
* chore: Change Radio setup page headers
* chore: Model Setup page header changes
* Main menu, Model Manager, Model Templates
Including needed translation strings
* Model telemetry sensor edit page
Taking into account sensor value shown in header
* chore: Change "Edit Labels"
Resolves#3014
* fix(b&w): "Rx channel ord" -> "Def chan order"
Resolves#3348
* chore: Update translations
* chore: Change to prefered "Manage Models"
* chore: Cleanup
* chore: Move some colorlcd-only strings
May or may not save some flash memory
* fix: Missed a translation string rename
* fixes https://github.com/EdgeTX/edgetx/issues/3273
* empty commit to trigger checks
* Companion: moved yaml tag receivers correction to yaml parserCompanion and radio: updated comments
* 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.