The current code forces any warning to return the user to the status
screen in order to show the message.
Thermal anomaly warnings can repeat at very short intervals, making menu
navigation (to pause/tune the print) impossible.
We now check if the message to be displayed is the same and only force a
kickback for new messages.
This partially reverts https://github.com/prusa3d/Prusa-Firmware/pull/3600
since we need the string to be null terminated for ease of comparison.
We pad the status line at display time instead using the new
lcd_print_pad() function which achieves the same effect.
Saves 8 bytes of Flash memory
This call is redundant and when moving between menus
it gets called multiple times which results in waste
of clock cycles.
lcd_timeoutToStatus.start() is called from menu_lcd_lcdupdate_func()
which is enough.
The longpress function is currently called within the temperature ISR,
which is bogus. Calling the longpress function at the wrong moment
can corrupt the menu buffers.
Move the call to the main loop by changing the logic slightly:
- still sample the lcd buttons inside the temperature ISR, which keeps
scrollong/pressing responsive, but...
- set a flag to indicate that longpress has been triggered instead of
calling the function directly
- call the function on the next manage_inactivity run
Combined with #3180 this removes _most_ unsafe operations out of the ISR
which can happen during a normal run (max/mintemp warnings are still an
exception).
Timing functions (millis, micros and delay) replaced in whole source, defined in Marlin.h.
This commit enables original implementation (SYSTEM_TIMER_2 undefined)
Verified with passed complete wizard process.
FILE _lcdout = {0};
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::flags' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::size' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::len' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::put' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::get' [-Wmissing-field-initializers]
sketch/lcd.cpp:59:18: warning: missing initializer for member '__file::udata' [-Wmissing-field-initializers]