Commit Graph
861 Commits
Author SHA1 Message Date
kkoenig1@optonline.comandRaphael Coeffic fd276bb2fc 1. Included mroe fonts
2. change order of initialization.  Lvgl has to be before ViewMain
3. Basic support for layers, but they are still broken when Menu's are used
4. Register input driver in lvglwrapper
2022-06-11 15:38:08 +02:00
gagarinlgandRaphael Coeffic fb7a7364a4 just something to play with lvgl
simu is working partially
TX16S has worked, is now broken, due to changes to make simu work

working means, lvgl shows something on the display and handles touch events

to stop libopenui from interfering this is needed in libopenui:

diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 09cc3d3..cda095f 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -79,7 +79,7 @@ void MainWindow::checkEvents()
   if (touchPanelEventOccured()) {
     short lastDeltaX = touchState.lastDeltaX;
     short lastDeltaY = touchState.lastDeltaY;;
-    touchState = touchPanelRead();
+    //touchState = touchPanelRead();
     touchState.lastDeltaX = lastDeltaX;
     touchState.lastDeltaY = lastDeltaY;
   }
@@ -177,6 +177,7 @@ void MainWindow::invalidate(const rect_t & rect)

 bool MainWindow::refresh()
 {
+return false;
   if (invalidatedRect.w) {
     if (invalidatedRect.x > 0 || invalidatedRect.y > 0 || invalidatedRect.w < LCD_W || invalidatedRect.h < LCD_H) {
       TRACE_WINDOWS("Refresh rect: left=%d top=%d width=%d height=%d", invalidatedRect.left(), invalidatedRect.top(), invalidatedRect.w, invalidatedRect.h);

add eclipse projetc files and helper scripts

some cleanup and fix simu

NV14 simu and TX16s simu are working with lvgl
no more magic numbers
added files for a lvgl wrapper class for initialization

moved lvgl initialization to LvglWrapper
code cleanup
started implementing a widget as a drawing target for libopenui

with some additional changesin libopenui, the libopenui ui can be displayed on a lvgl canvas

fix lvgl full screen canvas

update personal project files

add file with patch instructions for libopenui

works on NV14 with a canvas as the drawingtarget for libopenui and direct touch handling by libopenui

fix indentation

enabled double buffering for LVGL using the LCD frame buffers
transparancies are broken on TX16s
simulator does not work
untested on NV14

simu for NV14 and TX16S run and work mostly
works mostly on NV14 and TX16S

some pop ups (e.g. USB) flicker
LUA full screen apps won't display anything

touch handling still done by libopenui
on TX16S lvgl widgets are rotated by 180°

untested on all other radios

fix using of commeted out function. No touch handling for LVGL right now

rotate screens, so that libopenui and LVGL have the same screen rotation

removed the need to rotate images and fonts when using LVGL
currently the changes can be easily reverted

deleted lvgl copy

building with lvgl as unmodified submodule works

move lv_conf to radio/src

delete eclipse project files

use specific branch for lvgl

use libopenui lvgl branch
remove now unneeded help.txt

add missing file to colorlcd CMakelist

fix image display problems in TX16S simulator

just something to play with lvgl
simu is working partially
TX16S has worked, is now broken, due to changes to make simu work

working means, lvgl shows something on the display and handles touch events

to stop libopenui from interfering this is needed in libopenui:

diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 09cc3d3..cda095f 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -79,7 +79,7 @@ void MainWindow::checkEvents()
   if (touchPanelEventOccured()) {
     short lastDeltaX = touchState.lastDeltaX;
     short lastDeltaY = touchState.lastDeltaY;;
-    touchState = touchPanelRead();
+    //touchState = touchPanelRead();
     touchState.lastDeltaX = lastDeltaX;
     touchState.lastDeltaY = lastDeltaY;
   }
@@ -177,6 +177,7 @@ void MainWindow::invalidate(const rect_t & rect)

 bool MainWindow::refresh()
 {
+return false;
   if (invalidatedRect.w) {
     if (invalidatedRect.x > 0 || invalidatedRect.y > 0 || invalidatedRect.w < LCD_W || invalidatedRect.h < LCD_H) {
       TRACE_WINDOWS("Refresh rect: left=%d top=%d width=%d height=%d", invalidatedRect.left(), invalidatedRect.top(), invalidatedRect.w, invalidatedRect.h);

add eclipse projetc files and helper scripts

some cleanup and fix simu

NV14 simu and TX16s simu are working with lvgl
no more magic numbers
added files for a lvgl wrapper class for initialization

moved lvgl initialization to LvglWrapper
code cleanup
started implementing a widget as a drawing target for libopenui

with some additional changesin libopenui, the libopenui ui can be displayed on a lvgl canvas

fix lvgl full screen canvas

update personal project files

add file with patch instructions for libopenui

works on NV14 with a canvas as the drawingtarget for libopenui and direct touch handling by libopenui

fix indentation

enabled double buffering for LVGL using the LCD frame buffers
transparancies are broken on TX16s
simulator does not work
untested on NV14

simu for NV14 and TX16S run and work mostly
works mostly on NV14 and TX16S

some pop ups (e.g. USB) flicker
LUA full screen apps won't display anything

touch handling still done by libopenui
on TX16S lvgl widgets are rotated by 180°

untested on all other radios

fix using of commeted out function. No touch handling for LVGL right now

rotate screens, so that libopenui and LVGL have the same screen rotation

removed the need to rotate images and fonts when using LVGL
currently the changes can be easily reverted

deleted lvgl copy

building with lvgl as unmodified submodule works

move lv_conf to radio/src

delete eclipse project files
2022-06-11 15:38:08 +02:00
d9b51f8ecf feat: Deadzone option for NV14 sticks (#1777)
Imported from open-flysky/Flysky-OpenTX-Test-Branch

* companion: Don't nuke `stickDeadZone` setting

* Implement data storage properly

* Add missing check for NV14 storage struct sizes

* Formatting

* Use one less byte in the packed data struct
Thanks @raphaelcoeffic :)

* Move setting of stickDeadZone default

* Use a Choice combo rather than NumberEdit

* Good riddance magic number

* Also set default stick zone if setting is missing

* Teach tests about `STICK_DEAD_ZONE`

* Tweak choice width

* Cpn NV14 add stick dead zone to hardware and section labels

* Cpn NV14 align default pot names to radio

Co-authored-by: elecpower <neilh713@tpg.com.au>
2022-04-06 10:30:20 +10:00
Peter FeerickandGitHub d7d1e446bd fix: Only use delayed failsafe check with MPM (#1786) 2022-04-03 09:17:07 +10:00
MichaelandGitHub 06585a0736 feat: Reset inactivity alarm timer for touch events (#1774) 2022-03-31 11:46:32 +10:00
Raphael Coeffic 530d395204 WiP 2022-03-20 16:22:14 +01:00
Raphael Coeffic d93cd1ea25 Moved aux serial defs to own header file 2022-03-20 16:22:14 +01:00
Raphael CoefficandGitHub 610326f216 Write 'semver' tag with the current firmware version (#1695)
And remove `version`/`variant`.
2022-03-20 19:18:01 +10:00
kobatanandGitHub 7ba936bb96 fix: PXX2 radios were initialising default ownerRegistrationID incorrectly 2022-03-18 10:51:43 +10:00
Peter FeerickandGitHub 7abc59e626 feat: Pressing power button resets backlight timeout (depending on opts) (#1676)
* Power button resets backlight timer on colorlcd

* Link to backlightMode opt, and not just colorlcd
2022-03-16 21:21:33 +10:00
a1e7d70722 chore: Clean up some issues introduced in #1363
* Clean up some errors introduced in PR #1363

- Cleaning up bad YAML definitions
- Reverted renaming of 'jitterfilter' radio setting in storage/conversions/yaml/ files

* Add a custom attribute to allow for backward compatibility

* Prevent custom attributes without a 'write' function to output a tag

* companion - read but don't write old name

Co-authored-by: Raphael Coeffic <raphael.coeffic@frafos.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2022-03-16 18:07:26 +10:00
bf931a5097 feat: Add facilty for custom throttle warning position (#1395)
* replace magic number for throttle idle with correct define

* settings for custom throttle warning position

* settings fixed not to break byte-aligment of bit-fields

* evaluate custom throttle warning position

* add requested throttle value to warning text

* comment about field alignment in ModelData struct

* Menu for editing custom throttle warning for 128x64 radios
Tested on RM TX12

* Improoved menu display

* move displayed strings to translation

* translation template added for each language

* support for 212x64 B&W radios

* menu for colorlcd
not tested

* corrected translation entry for TW

* corrected handling of padding bits in ModelData structure

* Companion support for custom throttle warning position

* Rebase catchup

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2022-01-30 15:04:40 +10:00
Raphael CoefficandPeter Feerick a052ba63c2 Remove COPROCESSOR 2022-01-29 14:40:17 +10:00
Raphael CoefficandPeter Feerick 09c49e24ee Remove SKY9X target 2022-01-29 14:40:17 +10:00
c3c8a2e3f1 feat: Model level ADC Jitter filter option (#1363)
* ADC Filter - On/off state configurable at the model level

* Updated YAML configuration to match change from ADC Filter feature commit

* Companion changes to support ADC jitter filter to be a model configuration item.

* Renamed jitterFilter field to noJitterFilter.

This better describes the semantic, which is inverted.

* Updated after review

* Re-run generate-yaml

* Changed ADC Jitter filter control on Model to be tri state.
Off, On or use the radio setting

* Adde NOBACKUP() to the added field

* Re-generate yaml_datastructs

* Making the default state to use radio setting/Global value

* Updated after review:
Changing to more consistent naming across firmware and companion.

* Reverted  files that was accidently added to the commit.

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2022-01-26 20:54:23 +10:00
1b66af88af [colorlcd] Warn on model change if telemetry-enabled model connected (#1467)
* Warn on connected model (#1466)

* Make it so not confirming aborts model change

* add delay before accepting disconnected telemtry

* Add power off delay

* Remove whitespace + time unit in name

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2022-01-23 10:45:20 +10:00
Raphael CoefficandGitHub 4048983ce5 Add a "No SD card" screen on boot (#1451)
This prevents certain issues related to SD card being now mandatory to run EdgeTx.
2022-01-21 20:18:27 +10:00
RistoandGitHub 60bbe52f63 feat: More analog diagnostics screens on B&W colorlcd (#1421)
* Show true unscaled and unfiltered analogs for diagnose purpose on the analog diagnose screen.
Tested on physical RM TX16S, not yet tested on B/W targets.

* Changed to decimal display also on B/W targets. Tested now with RM Zorro as well.

* 5 fps refresh rate of the raw analog values. Much nicer to look at.

* Time-changing 3 views for color radios: std., filtered raw with deviation, unfiltered raw.

* Corrected deviation view output to not use old values.

* Changed analogs diagnose page to user navigatable TabsGroup with 3 tabs.

* Added fourth analog diagnose tab to show minimum and maximum values and the range (difference between min and max).
Left touch screen and IMU output tests only on first page (should also move in the future to their respective dedicated pages).

* Use Std. JitterAlpha filtering for Deviation screen to minimize delay, omit filtering for FlySky digital hall gimbals - not necessary, the signal is stable enough.

* 2 analog diagnose pages for 128x64 B/W radios: calibrated analogs and raw values with display output limited to 5 frames-per-second due to visibility reasons.

* Added 2 analogs diagnose pages also for 212x64 display B/W radios.
I was only able to simulate it, not tested on real hardware.

* Support also radios that do not have PageUp/PageDn keys, but only Page key (e.g. X7).

* Better key handling and improved style thx to @pfeerick
2022-01-21 14:45:56 +10:00
Malte LangermannandGitHub 37ee8a68f8 fix: Force a valid min "backlight on" setting on color lcd radios (#1386)
* always have aat least a 5s backlight timeout and some backlight enabled when backlightshould be on on color lcd radios

* for backlight timeout to be at least 5s on color lcd radios under all circumstances

* fix indentation

* the backlight value is inverted on color lcd radios, so the calculation was wrong

* fix typos
2022-01-11 22:44:13 +10:00
piotrvaandGitHub 192ca87afb fix: rotary encoder movement should not close throttle warning (#1408) 2022-01-11 11:44:21 +10:00
Raphael CoefficandPeter Feerick 9afae09f31 Load radio settings before power on delay is evaluated
Resolves #1366
2022-01-10 11:10:49 +10:00
d30c5f46bc feat: Stuck key test for COLORLCD (#1289)
* Stuck key test for COLORLCD #1271

* always start with the first button, no matter what this button is.

* Add LED  error

* Move LED_ERROR_END to ensure runs after dlg close

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2022-01-09 12:24:43 +10:00
Peter FeerickandPeter Feerick f8c01c3988 Show warning LED with switch and throttle alerts
Show warning LED for switch, throttle and ALERTS generally
i.e. MULTI failsafe not set, low RTC battery, storage warning
2022-01-08 14:12:26 +10:00
3djcandRaphael Coeffic d31482c18b Introduce T-pro and function switches handling 2021-12-17 17:07:48 +01:00
Raphael Coeffic 998af78f19 Remove MENUS_LOCK 2021-12-09 09:11:00 +01:00
Peter FeerickandPeter Feerick 15a6b6f1d4 Ensure stock internal module is set where possible
e.g. where before a complete wipe or unsupported upgrade path failure
failed to enable NV14 internal module by default.
2021-12-07 18:32:31 +10:00
Malte LangermannandGitHub 9a5663e611 Fix colorlcd auto power off on cleared shutdown warning trigger (#1164) 2021-11-28 12:39:40 +11:00
Peter FeerickandPeter Feerick 8a77be2328 AUDIO_HELLO before doSplash() 2021-11-27 08:46:47 +10:00
Peter FeerickandPeter Feerick 017ece4caf Play hello wav before SF and switch checks 2021-11-27 08:46:47 +10:00
rotormanandRisto 80a51837c1 Automatically detect FlySky digital hall sticks on X10-class radios without necessity of build-time CMake option FLYSKY_HALL_STICKS.
Added special UART4 init to sample if FlySky sticks are present or not.
Added boolean globalData.flyskygimbals to save the detection result.
Removed FLYSKY_HALL_STICKS and FLYSKY_HALL_STICKS_REVERSE CMake build options.

Tested on two RM TX16S radios, one with FlySky digital hall sticks and second with stock analog sticks.
2021-11-19 21:33:03 +01:00
gagarinlgandPeter Feerick f70814c778 code cleanup 2021-11-16 11:21:04 +10:00
gagarinlgandPeter Feerick 8360434516 touch on/off with backlight on/off is now working for TX16s, untested, but implemented for NV14
simulator for tX16s and NV14 works
2021-11-16 11:21:04 +10:00
Malte LangermannandGitHub 5614646861 Improve backlight handling on color lcd radios (#998)
* no more backlight off mode for color lcd radios
disable backlight input controls in radio setup screen, when they are not used by the selected backlight mode
force backlight on to be at least the brightness of backlight off

* do not allow to set the display brightness below the configured off brightness, except when display mode is set to ON.

* Revert "do not allow to set the display brightness below the configured off brightness, except when display mode is set to ON."

This reverts commit e153a8dc658d53f5420c912e7543d6d0a9fe6ed9.
2021-11-12 12:19:45 +11:00
Raphael Coeffic 11621cf736 Added support for EXT3 / EXT4 2021-11-10 11:07:03 +01:00
Raphael Coeffic c696313a4e Use simple scheme with direct model slot to model filename 2021-11-10 11:07:00 +01:00
Raphael Coeffic 5e0d0131b4 Added EEPROM conversions to YAML 2021-11-10 11:07:00 +01:00
Raphael Coeffic 72859ad6d1 WiP 2021-11-10 11:06:59 +01:00
Jesper FrickmannandGitHub d3ab7f9c61 Fix LUA=NO, remove ModelMixerScriptsPage when support not enabled (#869)
* Trying to align LUA options with radio/src/CMakeLists.txt
-DLUA=NO:  no Lua of any kind
-DLUA=ON:  everything but mixer scripts
-DLUA=YES: also mixer scripts

* Color LCD with -DLUA=NO is probably a rare combination, so it needed a little help with #defines.

* Some strange error using floor function w/o <math> - probably because -DLUA=NO is not normally used w/ color.
2021-10-11 10:37:06 +11:00
rotormanandRisto fc2142ec78 Changed uniformly to EdgeTX boiler plate (also added boiler for files that were missing it). 2021-10-02 14:22:01 +02:00
rotormanandRisto 89965ed5b2 Use 32-bit int always. 2021-09-21 08:11:26 +02:00
rotormanandRisto 9570f8595a Removed FlySky digital hall gimbal double value conversion (first using the FlySky factory calibration values min,mid and max to convert to 0 to 4095 and second to convert this value again into EdgeTX internal 11-bit range 0 to 2047).
This has the added benefit of precision increase and also avoiding unnecessary computation. Needed to change to uint32_t, as the jitter removal computation would otherwise go over the 16-bit range. As 16-bit computation can be left for "normal" sticks, added a special define just for FLYSKY_HALL_STICKS.

In addition this PR changes back the radio analogs diagnose page second column also for FlySky digital hall sticks to show +/- 100 again, as now with first and second column we already cover all internal ranges used.

Tested on RM TX16S with FlySky digital hall sticks.
2021-09-21 08:11:26 +02:00
Raphael CoefficandRisto 68d9162cb4 Make FS hall sticks EXT3 EXT4 optional
As this breaks Companion model editing for now (see issue #758).
2021-09-19 13:49:47 +02:00
rotorman 322ad843ab use named constants instead of magic numbers. 2021-09-12 17:53:35 +02:00
rotorman 17325ae30b In combination with TX16S & FLYSKY HALL GIMBAL - enable the right joystick two analogs as EX3 and EX4.
At the same time disable PWM Sticks on TX16S.
2021-09-11 19:40:05 +02:00
rotormanandRaphael Coeffic 897d2f3025 Adheres to the STM32F429 reference manual (RM0090) Section 10.3.17 DMA stream configuration procedure.
Before write access is permitted to numerous DMA registers, need to make sure that DMA is disabled for the stream. Disabling the stream is not instantaneous, and needs to be waited for (previous transmissions need to be finished first).

Added return values to numerous functions to signal a failure.
2021-07-31 18:46:40 +02:00
Raphael Coeffic 0e4201f25d WiP 2021-07-31 18:46:38 +02:00
Raphael Coeffic 56542bf7e8 Some fixes for simu 2021-07-31 17:31:50 +02:00
Raphael Coeffic 40609f5d67 Moved drawSplash() into UI task and fixed task prios 2021-07-31 17:31:50 +02:00
Raphael Coeffic d4edb7713e WiP: FreeRTOS integration 2021-07-31 17:31:49 +02:00
Richard Li c4b9c26fcc Added NV14 specific definitions. 2021-07-27 15:16:27 +08:00