Commit Graph
4369 Commits
Author SHA1 Message Date
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
philmozandGitHub a0fc3f2d88 fix(color): Adjust column sizes for largest LS 'Edge' V2 value (#3295)
* 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.
2023-03-17 10:37:04 +10:00
RistoandGitHub 150f341a23 fix(color): Main view numbering (#3357)
* fix(ui): Main view numbering #3073

* Fix max last tab focus.
2023-03-17 10:27:47 +10:00
Neil HorneandGitHub 837431430e fix(B&W): Include gvars in input sources (#3102) 2023-03-16 17:55:18 +10:00
312a2358dc feat(color): Increase max possible widget screens to 10 (#3073)
* 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>
2023-03-16 17:13:11 +10:00
philmozandGitHub 667cc845f8 feat(color): Implement DISPLAY_TRIMS_CHANGE option (#3288)
* 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.
2023-03-14 13:08:28 +10:00
philmozandGitHub 8cdd756c0a fix(color): Only create a new model if the user actually selects a template (#3323)
Cancelling from the template select page will no longer create a blank model.
2023-03-14 12:41:34 +10:00
3djcandGitHub 16a7f0498d feat: Check MCU type at start (#3272)
* Check MCU type

* MCU check

* MCU check

* chore: Change capitalisation
2023-03-13 16:13:01 +10:00
philmozandGitHub 2ea804877f feat: Show available inputs when '+' button is tapped on the inputs page (#3332) 2023-03-13 11:51:03 +10:00
philmozandGitHub 340945584a fix: Make UI slightly more responsive when switching tabs (#3345) 2023-03-13 11:17:34 +10:00
philmozandGitHub 805b848ea6 fix(color): Adjust page padding for several setup pages, backlight page tweaks (#3291)
* 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.
2023-03-13 11:11:33 +10:00
philmozandGitHub b88b4b66c1 feat(b&w): Show time on main and telemetry 128x64 screens (#3306)
* 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.
2023-03-10 11:26:25 +10:00
ulfhedlundandGitHub a416548ecc chore: Translated curve types (#3319)
* Added translation of curve types

Added translation string STR_VCURVETYPE

* Added STR_VCURVETYPE

* Added translation of curve types

* Added translation of curve types

* Added translation of curve type

Added 
#define TR_VCURVETYPE  "Diff","Expo","Func","Cstm" 
for translations of curve types

* DA translated

* CN translated

* TW translated

* IT translated

* Update da.h

* DE translated

* FR translated

* CZ translated

* chore: Remove trailing whitespace
2023-03-08 11:53:14 +10:00
philmozandGitHub 42fb0eccf7 fix(color): Update of 'end' value for trainer channel (#3239)
Fix update of 'end' value in ChannelRange class.
2023-03-08 11:51:29 +10:00
philmozandGitHub bd1094fd13 fix(B&W): Fixes for inputs, mixes and curves screens (#3299)
* 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.
2023-03-08 10:54:20 +10:00
ulfhedlundandGitHub da428b4e57 chore: Translate pots slider warnings (#3281)
* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Translations for pot/slider check

* Translation for pot/slider check

* Add files via upload

* Updated da.h

* Updated de.h

* Update cz.h

* Update cn.h

* Update en.h

* Update es.h

* Update fi.h

* Update fr.h

* Update it.h

* Update jp.h

* Update nl.h

* Update pl.h

* Update pt.h

* Update tw.h

* Added translation for JP

* Update cn.h

* Translation for TW

* Update se.h

* TR_PREFLIGHT_POTSLIDER_CHECK translated for PL
2023-03-07 12:39:06 +10:00
philmozandGitHub 54d0222c53 chore(color): LVGL update, translation strings for theme file carousel (#3278)
* Use StaticText instead of 'paint' function for 'loading' message in theme file carousel,
Add message strings to translation files.

* Update translation.

* Update translation.

* Update translation.

* Update translation.

* Update translation.

* Update translation.

* Update translation.
2023-03-07 11:58:06 +10:00
philmozandGitHub 8a7fb3fc4c fix(color): GVAR edit page not showing second title line on first load (#3311) 2023-03-07 11:14:06 +10:00
philmozandGitHub d098e45179 chore(color): Convert analog debug pages to lvgl (#3240)
* Convert analog debug pages to lvgl.

* Refactor classes.

* Cleanup
2023-03-05 21:28:31 +10:00
philmozandGitHub b8220e5be4 feat(color): Generate layout icon bitmap at runtime to account for screen orientation (#3282)
* 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.
2023-03-05 11:36:56 +10:00
philmozandGitHub 5b45b7ce2c chore(color): Add 'title2' to Page class to manage 2nd header title line (#3238) 2023-03-05 10:39:42 +10:00
Peter Feerick dd6f2f7a9d chore(color): Change define to FLYSKY_GIMBAL 2023-02-27 17:45:43 +10:00
Peter Feerick ec8212901e fix(sim): hall_raw_values does not exist 2023-02-27 17:21:08 +10:00
Peter Feerick a8e4bddcb9 chore: Unused code cleanup
Post #3135
2023-02-27 14:53:55 +10:00
philmozandGitHub f81e140cf3 fix(color): LVGLify themes page and fix several possible string handling issues (#3135)
* 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.
2023-02-27 11:40:02 +10:00
9216570d6c feat: Flysky gimbal support for RM Boxer (#3139)
* Adds Flysky digital hall gimbal support for RadioMaster Boxer.

---------

Co-authored-by: rotorman <risto.koiva@web.de>
2023-02-26 13:27:37 +01:00
philmozandGitHub f76aea333e feat(color): Long press menu no longer restricted to active model on model select page (#3237)
* 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.
2023-02-22 21:53:49 +10:00
philmozandGitHub e637b534f3 fix(color): Rotary encoder behaviour on inputs, mixes and outputs pages (#3189) 2023-02-22 20:48:56 +10:00
Jan PazdzioraandGitHub c68e9a1238 fix(compilation): 'uint32_t' has not been declared with newer GCC (#3224)
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.
2023-02-22 12:58:15 +10:00
97c57cf9ee feat(colorlcd): Value widget text alignment options (#3080)
* 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>
2023-02-20 14:57:58 +10:00
philmozandGitHub 1df8fe86a8 fix(lua): Store and update the 'zone' rectangle for Lua widgets. (#3060)
* 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.
2023-02-20 11:46:27 +10:00
Peter Feerick e930183395 fix: It is now 2023 2023-02-17 22:07:06 +10:00
philmozandGitHub 00c38511cb feat(colorlcd): Improve trainer page layout, use Add/Replace instead of +=/:= (#3104)
* 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.
2023-02-13 20:30:52 +10:00
philmozandGitHub c3e22b8d7e fix(color): Use two rows for telemetry buttons when needed (#3183)
When translation text is long (CZ) or portrait screen, use two rows for buttons
2023-02-13 19:16:29 +10:00
Raphael CoefficandGitHub be3f8d74a8 feat(lua): Port of NodeMCU Lua53 read-only tables (#2994)
* 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
2023-02-09 20:29:56 +10:00
Raphael CoefficandGitHub 72193eda82 chore: New module/serial API (#3055)
* 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.
2023-02-09 19:44:32 +10:00
Peter FeerickandGitHub b185ba24ee fix(color): Duplicate selected theme, update color list (#3122)
* fix(color): Duplicate selected, not current theme

* fix: Update color list if theme edited
2023-02-05 13:57:31 +10:00
philmozandGitHub 4e09bd7b8c chore(color): LVGLify custom mixer scripts page (#3071)
* LVGL flex conversion for custom mixer scripts.

* Adjust spacing for portrait layout and widest text value.
2023-02-05 11:31:32 +10:00
Peter Feerick 8d00dc8803 fix(translation): String casting for CZ/IT/FR
Fixes #3145
2023-02-05 09:21:30 +10:00
philmozandGitHub f6c6e77219 chore(color): LVGLify statistics and debug screens (#3072)
* LVGL flex conversion for statistics and debug pages.

* Replace empty text box with call to grid.nextCell().

* chore: Formatting
2023-02-03 20:45:03 +10:00
philmozandGitHub 41907f598b chore(color): LVGLify and enhance model -> telemetry page (#3070)
* 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.
2023-02-03 20:37:07 +10:00
philmozandGitHub 291a95b32b fix(color): Overlap in logical switch monitor footer (#3137) 2023-02-02 13:06:24 +10:00
philmozandGitHub 7a1231753a feat(color): Change global variables layout to better match other pages (#3116)
* 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
2023-01-28 12:28:18 +10:00
philmozandGitHub e9b8a23ba4 feat(color): Convert theme save/delete dialogs to use ConfirmDialog popup (#3062)
* 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.
2023-01-28 10:48:23 +10:00
philmozandGitHub 7bbaa0909a fix(color) Flight mode name display in global variables overview off by one (#3115) 2023-01-28 10:20:35 +10:00
philmozandGitHub 3d2724c2c1 chore(color): LVGLify spectrum analyser footer (#3077)
* LVGL flex conversion for spectrum analyser footer.
Fix header title display for spectrum analyser.

* fix: `DEF` touch keyboard wasn't using freqDefault
2023-01-27 22:02:05 +10:00
philmozandGitHub 1dc422592d chore(color): LVGLify model template selection pages (#3076)
* LVGL flex conversion for model template selection pages.
* chore: Formatting
2023-01-27 21:44:25 +10:00
philmozandGitHub d53b94d14c feat(color): LVGLify and improve layout of theme details edit dialog (#3078) 2023-01-27 21:26:18 +10:00
d77389d30b feat(color): LVGLify and enhance Logical Switches page (#3019)
* 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>
2023-01-27 19:22:48 +10:00
Peter Feerick 7e026e2b49 chore: Remove redundant leftover from #3058 2023-01-27 19:20:11 +10:00