* Enable RX DMA on external module USART
* feat(ACCESS): configure AUX serial port as "External module" (#2562)
This allows configuring the external access mod on runtime rather than by compilation option.
* fix: fetch external module driver
* CMake cleanup and simplifications
* Position Independent Code is need for radiolib_native
* Some more cleanup & repair
* Fix SIMU_SRC scope issue
* fix: avoid warnings due to assembler statements from StdPeriph on arm64 native
* reduce risk of corrupt radio.yml #1412
Adds CRC16 checksum to radio.yml when saved.
Adds save to temporary file, folowed by rename to radio.yml
Adds check on load, with fall-back to temporary file
* Made sure that only the first read block of radio.yml is checked for the 'checksum' value.
Added checksum generation on radio.yml produced by conversion.
* Added namespace.
Github actions triggered build failed on this - compiler difference.
* Fixed typo in code not run locally.
* Made checksum result code a enum class.
Fixed null-poionter dereference bug.
* Added check and handling for radio.yml file not read (will be handled as if checksum failed)
Added evaluation of checksum when radio_new.yml is read.
Added f_unlink() calls before f_rename() to ensure the target filename does not exist.
* Added radio.yml cheksum handling to Simulator/Companion.
Cleaned radio firmware handling of checksum field up to be newline agnostic.
* Added handling of files without checksum.
- Letting files pass the check if no checksum field is present (old files) and the size is realistic (25 bytes)
* Fixed bug causing new conversion from binary if no radio.yml BUT a radio_new.yaml
is present in the filesystem.
Now the conversion is only performed if neither file exsits.
* repair rebase problems
* rerun yaml generator
* fix another rebase problem
* update text in companion to be more meaningful when the radio.yml file has a checksum error
fix wrong error message in trace
* add trigger to check radio config when leavin menu_radio
* fix: add handling for temporary and error yaml radio settings files to simu/simulator/libsimulator
* fix corner cases when comverting non crc-ed files
* chore: Tweak radio data warnings for screen sizes
- Changed the define to be a little shorter
- Added missing define for TW
- Three string lengths to suit 128, 212 and basically colorlcd
Co-authored-by: gagarinlg <malte@langermann.net>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* First build
* Fix X9
* Update api_general.cpp
* Update translations.h
* clean up translations
* fix: B&W option handling, remove magic numbers, cleanup
- Remove references to invertRotary, change to RotEncDir or similar
- Add compatabilty importing to companion, firmware
- Rename Lua API call
- Move magic numbers to enum
- Improve B&W option handling so it doesn't apply changes while in menu
* chore: yaml regen
* fix: Add missing guards for X9D/X9D+
* fix: Wrong enum name in simu
* fix(cpn): Use correct names for UI elements
* fix: Translations
* fix: Allow `rotEncMode` in all yaml due to x9d var
Of the three X9D variants, the X9D+2019 is the only one that
has a rotary encoder as standard. However, as the base config
file is for the X9D, this meant it wasn't reading or writing the
config value. Rather than add a seperate config file for it for
a single variable, simple to just allow it across all targets.
* fix: Companion string, change colorlcd to `Choice`
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
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
* feat: Add option for rotary encoder direction
Based heavily on opentx/opentx#8852 by @3djc
* companion ui elements
* Cleanup
* Hook up UI, reading setting from yaml
* Teach simulator about rotEncDirection
* Simu and radio default scroll direction correction
Otherwise the "default" would be the opposite to how it has always been
* Remove what will be a confict with fix in #1586
* Wasn't using rotEncDirection consistently
* Zorro RE dir is opp to TX16, TX12, TPro, X9D+2019