Skip to content

Garfius/cliSerialMenu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino Menu UI

An Arduino library which provides a menu based user interface and a few UI utilities.

Really elastic, just instantiate inherited menu option's and add it to a screen, and add the screens to the menu system.

The menu system as usual needs a kickstart citing the serial where the vt100 compatible user interface is located (putty, screen, teraTerm...

Press esc to refresh if needed.

If screen size is reported by the user console, uses automatic display positioning (can be disabled).

menuSystemOverTty.init(&Serial);// requiered at boot 

And the obvious RUN

void loop() {
  menuSystemOverTty.run();
}

Compatible Hardware

Tested on ATMega328p(Arduino nano) and RP2040(Raspberry pi pico-maxgerhardt/earlephilhower-platformio) and ESP32

To use with low memory boards(ATMega328...): Comment at menu.h line 20

#define _MENU_UI_BIG_RAM_

NOTES:

  • Be aware of text captions text(char *) length, must be shorter than menuTextArrayLength(menu.h), might corrupt memory!
  • YOU must learn Object Oriented Programming, and inheritance, or just copy examples, lol

API

I ran DoxyGen, so, here it is:

Best is html(must clone) docs/html/index.html

moxygen translated

Examples

See examples folder.

This is what you get

demo0.ino initial screen demo0.ino initial screen

demo1.ino initial screen demo1.ino initial screen

demo1.ino video

demo2.ino dynamically generated scrolling menu Dynamically generated scrolling menu

Some user interface features Some user interface features

demo2.ino text box long string editor Text box long string editor

Demo3.ino sd card browser SD card browser

Demo3.ino sd card browser, file info SD card browser

SD card browser video at demo3

About

Arduino Menu user interface using Object Oriented Programing Inheritance

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages