Commit Graph
56 Commits
Author SHA1 Message Date
Raphael CoefficandRaphael Coeffic db684893e2 Refresh screen via call back set by lcdSetFlushCb 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 66cdab37ff Fixed line interrupt flags 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 7417b6568b Some cleanup & reformating 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 59c5e22620 Copy draw buffer into frame buffer after last vertical line
TODO: get rid of the blocking DMA copy
2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic b827376acb Moved frame buffers to lcd.cpp 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic ee0c37157d Remove legacy fonts and make the bootloader compile with LVGL 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 86152da85d Remove scratch buffer 2022-06-11 15:38:08 +02:00
gagarinlgandRaphael Coeffic 8d6a7c2da5 preparation for PL18, differentiate between physical and UI screen size
adapt to partial draw calls from LVGL
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
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
RistoandGitHub f665ce5a9d DMA2D configuration error fix (-DDEBUG_WINDOWS) (#190)
* Fixes DMA2D ConfError

* Check configuration and transfer errors

Check for DMA2D configuration and transfer errors and do not enter the otherwise endless while loop. Thx to @raphaelcoeffic for the tip.
2021-06-11 15:56:30 +02:00
Raphael Coeffic 199afb8efa Fixed T18 support 2021-05-28 09:40:46 +02:00
Raphael CoefficandRaphael Coeffic b96faad908 Clean-up + fix + debug 2021-05-24 16:23:06 +02:00
Raphael Coeffic 2fead2bc39 Use the register reload interrupt instead of polling VSYNCS in CDSR 2021-05-23 20:24:35 +02:00
Raphael Coeffic 20f5f3c4d1 ltdc: wait auf LTDC_CDSR_VSYNCS raising edge after register reload command 2021-05-23 19:08:48 +02:00
Raphael CoefficandRaphael Coeffic 95aa02cedd Switch the framebuffer address rather than using 2 LTDC layers 2021-05-23 08:19:56 +02:00
Raphael Coeffic cc5ae4d2a9 Small fixes
- no double SD card init
- removed "noHighlightCounter" warning
- wipe the screen buffers before setting up the layer (removes shadow image on boot)
2021-05-09 11:02:57 +02:00
Raphael CoefficandRaphael Coeffic 12ede2ca62 Fixed inverstion issue on radio
Spoiler: only some bitmaps used to be inverted. Added masks and fonts now in inverted mode to use the same functions.
2021-05-06 12:55:59 +02:00
Raphael CoefficandRaphael Coeffic 3bf5d8e177 Somehow working driver for the radio 2021-05-06 12:55:59 +02:00
Raphael CoefficandRaphael Coeffic 06335e596d Added scratch buffer and use the modifed drawFilledRect() (see libopenui#15) 2021-05-06 12:55:59 +02:00
Raphael CoefficandRaphael Coeffic ca36c9595e Moved simu LCD buffer to simu target 2021-05-06 12:55:59 +02:00
Raphael CoefficandRaphael Coeffic 1716e24260 Missing method for COLORLCD 2021-05-06 12:55:59 +02:00
3djc efa8f5520b Merge fixes 2021-04-08 14:20:25 +02:00
3djc 70d24506da Merge branch '2.3' into 2.4
# Conflicts:
#	radio/src/fonts/480x272/font_dblsize.png
#	radio/src/fonts/480x272/font_xxlsize.png
#	radio/src/gui/128x64/model_setup.cpp
#	radio/src/gui/128x64/radio_setup.cpp
#	radio/src/gui/480x272/model_receiver_options.cpp
#	radio/src/gui/480x272/model_setup.cpp
#	radio/src/gui/480x272/radio_calibration.cpp
#	radio/src/gui/480x272/radio_hardware.cpp
#	radio/src/gui/common/stdlcd/draw_functions.cpp
#	radio/src/gui/gui_common.cpp
#	radio/src/keys.h
#	radio/src/lua/interface.cpp
#	radio/src/pulses/afhds3.h
#	radio/src/rtos.h
#	radio/src/switches.cpp
#	radio/src/targets/common/arm/stm32/aux_serial_driver.cpp
#	radio/src/targets/horus/CMakeLists.txt
#	radio/src/targets/horus/lcd_driver.cpp
#	radio/src/targets/horus/startup_stm32f42_43xxx.s
#	radio/src/targets/taranis/CMakeLists.txt
#	radio/src/telemetry/crossfire.h
#	radio/src/telemetry/multi.cpp
#	radio/src/translations.cpp
#	radio/src/translations/it.h.txt
#	radio/src/translations/untranslated.h
#	radio/util/font2png.py
#	tools/commit-tests.sh
2021-04-08 11:42:28 +02:00
3djc 7613f72ec5 Tidy up 2021-03-10 16:54:01 +01:00
3djc fde097a1d6 TX16S touch interface working 2020-10-08 20:40:23 +02:00
Bertrand Songis 42a3198568 Merge with latest 2.3 2020-10-07 21:01:45 +02:00
3djcandGitHub 0ff6c0e5ae Fix nightlies (#7765) 2020-06-24 12:35:28 +02:00
3djcandGitHub 2d01916055 Preliminary T18 support (#7581) 2020-06-22 21:15:47 +02:00
Bertrand Songis 71ec1db9f6 Merge with latest 2.3 2020-06-18 11:14:07 +02:00
Bertrand Songis f7a3aeac74 Cosmetics 2020-06-02 09:18:21 +02:00
3djcandGitHub c8b31fc904 Secure screen DMA transfers (#7657)
Secure DMA write to LCD buffer
2020-06-02 09:16:41 +02:00
Bertrand Songis 40583276ca Add the definition LCD_VERTICAL_INVERT 2020-01-15 17:21:57 +01:00
Bertrand Songis 2e6ec7bc21 Cosmetics 2020-01-12 18:11:09 +01:00
Bertrand Songis 3e2cb83991 Now uses the external libopenui 2019-10-02 14:41:52 +02:00
Bertrand Songis f4f8893ae9 New UI merged 2019-08-28 20:50:14 +02:00
Bertrand Songis 131078e3a0 GCC new warnings fixed (GCC) 8.1.1 20180531 2018-08-03 23:02:43 +02:00
3djcandBertrand Songis fa951acf40 Review line ending handling (#4820)
* New line end handling rules

* Normalize all the line endings
2017-04-19 10:54:43 +02:00
Bertrand SongisandGitHub 40ece81de2 X10 (#4377)
[X10] New radio supported!
2017-02-04 10:42:50 +01:00
Bertrand Songis 0994735035 [X12S] Backlight code splitted from LCD code
[X12S] PCBREV introduction (PCBREV=10 or PCBREV=13)
2016-08-19 12:25:15 +02:00
Bertrand SongisandGitHub d3ae3c035d Bsongis/gui refactoring for x7 d (#3701)
* [X7D] New board added
* Cosmetics
2016-08-18 11:49:16 +02:00
Bertrand Songis 740a2a71f5 [Horus] Fix in comment 2016-04-16 18:24:31 +02:00
Andre Bernet f534702d59 Backlight restored in emergency mode, prevent complete turn off to avoid confusion 2016-04-08 09:22:04 +04:00
Andre Bernet 30018b2432 Backlight control added back in, driver fix (thanks Adela), OFF level configurable 2016-04-06 16:06:36 +04:00
Andre Bernet bc70acb55d [Horus] Reduce GPIO speed where possible for noise reduction - no more audio noise now :) 2016-03-25 14:13:22 +04:00
Bertrand Songis 1fd1e141f2 [Horus] More bitmaps on SD. PNG format used instead of BMP. And yes it's a bad idea given the resources we have. 2016-02-29 22:17:47 +01:00
Bertrand Songis 806d547ced DMA used for ARGB4444 bitmaps 2016-02-28 19:37:50 +01:00
Bertrand Songis de96f607e2 [Horus] Last LCD change was commited by mistake 2016-02-26 14:45:56 +01:00
Bertrand Songis 1b93340319 [Taranis] Sticks bitmap was not right 2016-02-26 14:30:09 +01:00
Bertrand Songis 2b9242fac2 [Horus] GUI continued 2016-02-25 23:14:58 +01:00