4LD + rotary hotfix: corrupted display on esp32

This s a temporary fix for display problems (corrupted display, sometimes crash). These problems exists since 0.14. as display updates are now running in a separate task.
The fix is still incomplete.

If nothing else works, you can use the 0.13.x behavior by compiling with `-D FLD_ESP32_NO_THREADS`

* fixing a few unsafe string operations and non-initialized strings
* fix max length for "two lines" names
* make sure that display methods are exiting early if display is not configured
* rotary_ALT : additional checks to ensure that drawing on the display does not overlap with redraw
* added some safeguards to prevent overlapping display redraw operations
--> Actually this should use semaphore/mutex instead of global booleans -> Still on my toDo list.
This commit is contained in:
Frank
2023-02-02 18:37:13 +01:00
parent b01893e8fe
commit e1f14628b0
4 changed files with 134 additions and 46 deletions

View File

@@ -86,6 +86,7 @@ bool canUseSerial(void) { // WLEDMM returns true if Serial can be used for deb
void handleSerial()
{
if (pinManager.isPinAllocated(hardwareRX)) return;
if (!Serial) return; // WLEDMM - serial not connected (USB CDC)
#ifdef WLED_ENABLE_ADALIGHT
static auto state = AdaState::Header_A;