Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delegate Rendering of Separator and Value to Renderer #240

Merged
merged 7 commits into from
Oct 8, 2024

Conversation

forntoh
Copy link
Owner

@forntoh forntoh commented Oct 8, 2024

Description

This PR refactors the rendering logic by delegating the responsibility of rendering separators and values from individual items to the MenuRenderer. The changes include:

  • Moving the render logic from each item to the MenuRenderer. Allowing the MenuRenderer to decide how to render the value, enabling customization of the separator.
  • This refactor enhances the flexibility and maintainability of the rendering process by centralizing the rendering logic within the MenuRenderer.

Changes

  • Updated MenuRenderer to handle the rendering of separators and values.
  • Removed rendering logic from individual items.
  • Also adjusted the way view works in ItemInput, now when backspaces is pressed while the view is scrolled, it moves the characters to the right immediately until view is zero, this fixes the situation in previous releases where when I start deleting the characters and I reach the colon, I can't see the next character I am deleting.

Screenshots/Video (if applicable)

Screen.Recording.2024-10-08.at.15.44.09.mov

Checklist

General Requirements

  • I have kept this PR in draft until all the required tasks are completed.
  • I have reviewed the contributing guidelines for this project.
  • I have tagged this PR with breaking-change if it introduces a breaking change.
  • I have checked that this PR does not introduce any breaking changes unless explicitly stated.
  • I have checked that changes generate no new warnings.
  • I have performed a self-review of my own code
  • I have built and tested ALL the examples to ensure that I haven't broken anything.

Refactor/Enhancement

  • This PR is a code refactor.
  • I have tagged this PR with enhancement.
  • I have made changes to the code that improve readability/performance/maintainability.
  • I have added documentation for the changes if necessary.
  • I have generated and reviewed the documentation locally if necessary.

## Description

This PR refactors the rendering logic by delegating the responsibility of rendering separators and values from individual items to the MenuRenderer. The changes include:

- Moving the render logic from each item to the `MenuRenderer`.
Allowing the `MenuRenderer` to decide how to render the value, enabling customization of the separator.
- This refactor enhances the flexibility and maintainability of the rendering process by centralizing the rendering logic within the `MenuRenderer`.

### Changes

- Updated `MenuRenderer` to handle the rendering of separators and values.
- Removed rendering logic from individual items.
Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ d1c16ab

Board flash % RAM for global variables %
arduino:avr:uno ❔ -240 - +110 -0.74 - +0.34 🔺 +4 - +4 +0.2 - +0.2
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 110 0.34 4 0.2 -44 -0.14 4 0.2 -136 -0.42 4 0.2 -44 -0.14 4 0.2 80 0.25 4 0.2 80 0.25 4 0.2 -136 -0.42 4 0.2 110 0.34 4 0.2 80 0.25 4 0.2 -50 -0.16 4 0.2 110 0.34 4 0.2 -26 -0.08 4 0.2 40 0.12 4 0.2 -240 -0.74 4 0.2 110 0.34 4 0.2
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,110,0.34,4,0.2,-44,-0.14,4,0.2,-136,-0.42,4,0.2,-44,-0.14,4,0.2,80,0.25,4,0.2,80,0.25,4,0.2,-136,-0.42,4,0.2,110,0.34,4,0.2,80,0.25,4,0.2,-50,-0.16,4,0.2,110,0.34,4,0.2,-26,-0.08,4,0.2,40,0.12,4,0.2,-240,-0.74,4,0.2,110,0.34,4,0.2

@forntoh forntoh added the enhancement Improve readability/performance/maintainability label Oct 8, 2024
Adjust how effective columns are calculated based on presence of arrows and icons. Simplified logic for determining available display space.
Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ 7b0d2b8

Board flash % RAM for global variables %
arduino:avr:uno ❔ -210 - +140 -0.65 - +0.43 🔺 +4 - +4 +0.2 - +0.2
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 140 0.43 4 0.2 -14 -0.04 4 0.2 -110 -0.34 4 0.2 -14 -0.04 4 0.2 106 0.33 4 0.2 106 0.33 4 0.2 -106 -0.33 4 0.2 140 0.43 4 0.2 106 0.33 4 0.2 -20 -0.06 4 0.2 140 0.43 4 0.2 4 0.01 4 0.2 66 0.2 4 0.2 -210 -0.65 4 0.2 140 0.43 4 0.2
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,140,0.43,4,0.2,-14,-0.04,4,0.2,-110,-0.34,4,0.2,-14,-0.04,4,0.2,106,0.33,4,0.2,106,0.33,4,0.2,-106,-0.33,4,0.2,140,0.43,4,0.2,106,0.33,4,0.2,-20,-0.06,4,0.2,140,0.43,4,0.2,4,0.01,4,0.2,66,0.2,4,0.2,-210,-0.65,4,0.2,140,0.43,4,0.2

- Added calculation of available columns based on arrow presence
- Updated text padding and effective column calculations to use available columns instead of recalculating each time.
@ShishkinDmitriy
Copy link
Collaborator

ShishkinDmitriy commented Oct 8, 2024

Moving the render logic from each item to the MenuRenderer. Allowing the MenuRenderer to decide how to render the value, enabling customization of the separator.

Think it's a bad idea.. MenuRenderer shouldn't decide how to render value, item should. I am trying to add change when item has multiple widgets and draw them. Now all responsibility goes to renderer, it's not right I think. In version 4 we moved logic from menu into items, now it moved back from items but into renderer.

Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ e016a47

Board flash % RAM for global variables %
arduino:avr:uno ❔ -274 - +88 -0.85 - +0.27 🔺 +5 - +5 +0.24 - +0.24
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 72 0.22 5 0.24 -82 -0.25 5 0.24 -172 -0.53 5 0.24 -82 -0.25 5 0.24 40 0.12 5 0.24 44 0.14 5 0.24 -174 -0.54 5 0.24 72 0.22 5 0.24 40 0.12 5 0.24 -88 -0.27 5 0.24 72 0.22 5 0.24 -6 -0.02 5 0.24 0 0.0 5 0.24 -274 -0.85 5 0.24 88 0.27 5 0.24
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,72,0.22,5,0.24,-82,-0.25,5,0.24,-172,-0.53,5,0.24,-82,-0.25,5,0.24,40,0.12,5,0.24,44,0.14,5,0.24,-174,-0.54,5,0.24,72,0.22,5,0.24,40,0.12,5,0.24,-88,-0.27,5,0.24,72,0.22,5,0.24,-6,-0.02,5,0.24,0,0.0,5,0.24,-274,-0.85,5,0.24,88,0.27,5,0.24

@forntoh
Copy link
Owner Author

forntoh commented Oct 8, 2024

Moving the render logic from each item to the MenuRenderer. Allowing the MenuRenderer to decide how to render the value, enabling customization of the separator.

Think it's a bad idea.. MenuRenderer shouldn't decide how to render value, item should. I am trying to add change when item has multiple widgets and draw them. Now all responsibility goes to renderer, it's not right I think. In version 4 we moved logic from menu into items, now it moved back from items but into renderer.

Centralizing the rendering logic in the MenuRenderer offers several benefits:

  • separates the concerns of data representation and rendering. Items focus on their data and behavior, while the renderer handles how they are displayed.
  • allows for easier customization. The MenuRenderer can be modified to change how items and separators are rendered without needing to alter each individual item.

The new menu controls that you're add would still work, all you would need to do is to pass thetext and the value which can be a concatenated string eg.

text = "Time"
value = "00:00:00"

text = "Distance"
value = "100 km"

This will get rendered appropriately like Time:00:00:00 or Distance:100 km or any other way depending on the renderer configuration, the item doesn't need to decide how the text and the value should be rendered, it should just provide the value in the way it should be rendered and the renderer renders it. In summary the logic of concatenated the Controls still remains in the item, you will only have to play with the blinker position.

Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ 9524270

Board flash % RAM for global variables %
arduino:avr:uno ❔ -318 - +44 -0.99 - +0.14 🔺 +5 - +5 +0.24 - +0.24
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 28 0.09 5 0.24 -126 -0.39 5 0.24 -246 -0.76 5 0.24 -126 -0.39 5 0.24 -34 -0.11 5 0.24 -30 -0.09 5 0.24 -218 -0.68 5 0.24 28 0.09 5 0.24 -34 -0.11 5 0.24 -132 -0.41 5 0.24 28 0.09 5 0.24 -50 -0.16 5 0.24 -74 -0.23 5 0.24 -318 -0.99 5 0.24 44 0.14 5 0.24
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,28,0.09,5,0.24,-126,-0.39,5,0.24,-246,-0.76,5,0.24,-126,-0.39,5,0.24,-34,-0.11,5,0.24,-30,-0.09,5,0.24,-218,-0.68,5,0.24,28,0.09,5,0.24,-34,-0.11,5,0.24,-132,-0.41,5,0.24,28,0.09,5,0.24,-50,-0.16,5,0.24,-74,-0.23,5,0.24,-318,-0.99,5,0.24,44,0.14,5,0.24

@ShishkinDmitriy
Copy link
Collaborator

ShishkinDmitriy commented Oct 8, 2024

What if I have small screen and I want to render
Time:00:00 on normal mode and
e:00:00:00 on edit mode?
Your implementation of Renderer knows about concept of text, value, separator and holds code how to render it.
Why not just allow items to hold that concepts and know how to render them? Just pass to item a display where to render, start point and end point.

Just don't separate concerns, single item knows about it's concepts, knows how to change them and how to render them on piece of display.

@forntoh
Copy link
Owner Author

forntoh commented Oct 8, 2024

What if I have small screen and I want to render Time:00:00 on normal mode and e:00:00:00 on edit mode? Your implementation of Renderer knows about concept of text, value, separator and holds code how to render it. Why not just allow items to hold that concepts and know how to render them? Just pass to item a display where to render, start point and end point.

I am planning to open a new PR which will handle horizontal scrolling of ALL long items so, it's still a WIP, so the issue of no small display will be effectively gone (Hopefully 😃)

And I I guess your example here is already the case for ItemInput, item input currently modifies how it is rendered by just passing the value as the text currently in view (you implemented that and nothing has changed there, it's still possible to render only what is visible)

@ShishkinDmitriy
Copy link
Collaborator

ShishkinDmitriy commented Oct 8, 2024

Check this out https://github.com/ShishkinDmitriy/LcdMenu/blob/feature/add-multidimentional-items/src/BaseItemManyWidgets.h#L50
I didn't prepared PR yet, because need to fit with your curent changes

@forntoh
Copy link
Owner Author

forntoh commented Oct 8, 2024

Here's a video of the WIP

Screen.Recording.2024-10-08.at.11.46.36.mov

Basically, what happens here is that the MenuScreen shifts the view when LEFT or RIGHT is pressed (it doesn't do it itself, it just updates a viewShift var in the renderer, the renderer uses this value when drawing).

I can also make it possible for items to shift the view themselves if they desire to

@ShishkinDmitriy
Copy link
Collaborator

Looks great! How it works with Rotary? It has no LEFT and Right commands.

@forntoh
Copy link
Owner Author

forntoh commented Oct 8, 2024

Looks great! How it works with Rotary? It has no LEFT and Right commands.

I you have only a RotaryEncoder, you're out of luck 😃, you can't shift it by command, I am thinking of adding like a timed shift (but not in the same WIP), that someone can enable to automatically h-scroll items when they are in focus like an animation.

If items have the possibility to shift the view programatically (for display purposes) then I believe all the cases I see in your WIP can be handled

Possibility: when using only a rotary encoder and I type a char, I (the item) can decide to shift the whole view instead of just the view the value occupies.

@ShishkinDmitriy
Copy link
Collaborator

ShishkinDmitriy commented Oct 8, 2024

I did this way:

Recording.2024-10-08.121622.mp4

Right now keep text maybe not a good idea, maybe show value would be better.

Item has 3 slots, every time you ENTER control move to next, and draw method tries to draw it up to blinker. After ENTER on last widget, it release. So item controls what to show, also we can combine and allow LEFT and RIGHT, but if no such commands, blinker should control view.

@forntoh
Copy link
Owner Author

forntoh commented Oct 8, 2024

I did this way:

Recording.2024-10-08.121622.mp4
Right now keep text maybe not a good idea, maybe show value would be better.

Item has 3 slots, every time you ENTER control move to next, and draw method tries to draw it up to blinker. After ENTER on last widget, it release. So item controls what to show, also we can combine and allow LEFT and RIGHT, but if no such commands, blinker should control view.

Looks really nice! Can't wait for that PR to be ready, will be a huge improvement.

I see it integrating well with my changes as the renderer provides the possibility to move the cursor and start/stop blinker, this would be implemented like you did in input item, you'll just need to play with the cursor position, calculate the available view space and then adjust the value to display before sending to the renderer, just like how iteminput currently does to shift texts when typing.

I see you wrote a lot of code (well commented 💪), and you unfortunately need to refactor a lot 😬 sorry!

Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ 0a9ddbe

Board flash % RAM for global variables %
arduino:avr:uno ❔ -318 - +44 -0.99 - +0.14 🔺 +5 - +5 +0.24 - +0.24
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 28 0.09 5 0.24 -126 -0.39 5 0.24 -246 -0.76 5 0.24 -126 -0.39 5 0.24 -34 -0.11 5 0.24 -30 -0.09 5 0.24 -218 -0.68 5 0.24 28 0.09 5 0.24 -34 -0.11 5 0.24 -132 -0.41 5 0.24 28 0.09 5 0.24 -50 -0.16 5 0.24 -74 -0.23 5 0.24 -318 -0.99 5 0.24 44 0.14 5 0.24
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,28,0.09,5,0.24,-126,-0.39,5,0.24,-246,-0.76,5,0.24,-126,-0.39,5,0.24,-34,-0.11,5,0.24,-30,-0.09,5,0.24,-218,-0.68,5,0.24,28,0.09,5,0.24,-34,-0.11,5,0.24,-132,-0.41,5,0.24,28,0.09,5,0.24,-50,-0.16,5,0.24,-74,-0.23,5,0.24,-318,-0.99,5,0.24,44,0.14,5,0.24

Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ e7d850d

Board flash % RAM for global variables %
arduino:avr:uno ❔ -318 - +44 -0.99 - +0.14 🔺 +5 - +5 +0.24 - +0.24
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 28 0.09 5 0.24 -126 -0.39 5 0.24 -250 -0.78 5 0.24 -126 -0.39 5 0.24 -38 -0.12 5 0.24 -34 -0.11 5 0.24 -218 -0.68 5 0.24 28 0.09 5 0.24 -38 -0.12 5 0.24 -132 -0.41 5 0.24 28 0.09 5 0.24 -50 -0.16 5 0.24 -74 -0.23 5 0.24 -318 -0.99 5 0.24 44 0.14 5 0.24
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,28,0.09,5,0.24,-126,-0.39,5,0.24,-250,-0.78,5,0.24,-126,-0.39,5,0.24,-38,-0.12,5,0.24,-34,-0.11,5,0.24,-218,-0.68,5,0.24,28,0.09,5,0.24,-38,-0.12,5,0.24,-132,-0.41,5,0.24,28,0.09,5,0.24,-50,-0.16,5,0.24,-74,-0.23,5,0.24,-318,-0.99,5,0.24,44,0.14,5,0.24

@forntoh forntoh force-pushed the enhancement/rendering-separator branch from 2c107d1 to a805fc2 Compare October 8, 2024 18:52
@forntoh forntoh force-pushed the enhancement/rendering-separator branch from a805fc2 to 125ce0b Compare October 8, 2024 18:54
@forntoh forntoh marked this pull request as ready for review October 8, 2024 18:56
Copy link
Contributor

github-actions bot commented Oct 8, 2024

Memory usage change @ 125ce0b

Board flash % RAM for global variables %
arduino:avr:uno ❔ -318 - +44 -0.99 - +0.14 🔺 +5 - +5 +0.24 - +0.24
Click for full report table
Board examples/Basic
flash
% examples/Basic
RAM for global variables
% examples/ButtonAdapter
flash
% examples/ButtonAdapter
RAM for global variables
% examples/ButtonWithRotaryAdapter
flash
% examples/ButtonWithRotaryAdapter
RAM for global variables
% examples/Callbacks
flash
% examples/Callbacks
RAM for global variables
% examples/CharsetInput
flash
% examples/CharsetInput
RAM for global variables
% examples/InputRotary
flash
% examples/InputRotary
RAM for global variables
% examples/IntFloatValues
flash
% examples/IntFloatValues
RAM for global variables
% examples/ItemBack
flash
% examples/ItemBack
RAM for global variables
% examples/KeyboardAdapter
flash
% examples/KeyboardAdapter
RAM for global variables
% examples/List
flash
% examples/List
RAM for global variables
% examples/MenuTimeout
flash
% examples/MenuTimeout
RAM for global variables
% examples/RTOS
flash
% examples/RTOS
RAM for global variables
% examples/SimpleInput
flash
% examples/SimpleInput
RAM for global variables
% examples/SimpleRotary
flash
% examples/SimpleRotary
RAM for global variables
% examples/SubMenu
flash
% examples/SubMenu
RAM for global variables
%
arduino:avr:uno 28 0.09 5 0.24 -126 -0.39 5 0.24 -250 -0.78 5 0.24 -126 -0.39 5 0.24 -38 -0.12 5 0.24 -34 -0.11 5 0.24 -218 -0.68 5 0.24 28 0.09 5 0.24 -38 -0.12 5 0.24 -132 -0.41 5 0.24 28 0.09 5 0.24 -50 -0.16 5 0.24 -74 -0.23 5 0.24 -318 -0.99 5 0.24 44 0.14 5 0.24
Click for full report CSV
Board,examples/Basic<br>flash,%,examples/Basic<br>RAM for global variables,%,examples/ButtonAdapter<br>flash,%,examples/ButtonAdapter<br>RAM for global variables,%,examples/ButtonWithRotaryAdapter<br>flash,%,examples/ButtonWithRotaryAdapter<br>RAM for global variables,%,examples/Callbacks<br>flash,%,examples/Callbacks<br>RAM for global variables,%,examples/CharsetInput<br>flash,%,examples/CharsetInput<br>RAM for global variables,%,examples/InputRotary<br>flash,%,examples/InputRotary<br>RAM for global variables,%,examples/IntFloatValues<br>flash,%,examples/IntFloatValues<br>RAM for global variables,%,examples/ItemBack<br>flash,%,examples/ItemBack<br>RAM for global variables,%,examples/KeyboardAdapter<br>flash,%,examples/KeyboardAdapter<br>RAM for global variables,%,examples/List<br>flash,%,examples/List<br>RAM for global variables,%,examples/MenuTimeout<br>flash,%,examples/MenuTimeout<br>RAM for global variables,%,examples/RTOS<br>flash,%,examples/RTOS<br>RAM for global variables,%,examples/SimpleInput<br>flash,%,examples/SimpleInput<br>RAM for global variables,%,examples/SimpleRotary<br>flash,%,examples/SimpleRotary<br>RAM for global variables,%,examples/SubMenu<br>flash,%,examples/SubMenu<br>RAM for global variables,%
arduino:avr:uno,28,0.09,5,0.24,-126,-0.39,5,0.24,-250,-0.78,5,0.24,-126,-0.39,5,0.24,-38,-0.12,5,0.24,-34,-0.11,5,0.24,-218,-0.68,5,0.24,28,0.09,5,0.24,-38,-0.12,5,0.24,-132,-0.41,5,0.24,28,0.09,5,0.24,-50,-0.16,5,0.24,-74,-0.23,5,0.24,-318,-0.99,5,0.24,44,0.14,5,0.24

@forntoh forntoh merged commit b0a26de into master Oct 8, 2024
15 checks passed
@forntoh forntoh deleted the enhancement/rendering-separator branch October 8, 2024 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improve readability/performance/maintainability
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants