MMI - Simple Embedded Menu System

MMI - Simple Embedded Menu System

Very very very!! ... Simple Menu Management System

Another “simple menu manager” – I can hear your thinking - huh?

And you are right! Google'ing this is returning overvelming many hits … but are the simple, scaleable, embedded, independantly, easy to use … ? Read here below and let me know what you think.

I will try to downscale/down-size this when I get closer to a platforms next time. Just to see how small it really can get. Size’s does matters – huh ;-) ? 

This idea (which turned in to a real project) is a spin-off  when working on a generic easy-to-use-and-implement projects where MMI – just a downscaled version is required! ....


Sometimes its quite nice sitting down, and reflect over ...
grrrr this has been done already once ...
why repeat it over again and again ...
why not make a generic reusable ....

… and so I did.

Because the first thing one starts with after having the basic application up and running - is the user interface, the MMI!
And each time this ends up with modifications to the nice application, the 'common' interface and so on ...
And even more frustration is added when all the nice and fancy stuff has to be configured, adjusted and made user-friendly.

This is for all my small devices - for my robot, for my home net transceiver and for my small test-some-thing-box…

So this system could be a SI (service Interface) or actually an attached display (text version only).
I needed easy configuration (less programming apart from the basic engine), multiple language support and especially an easy way in the menu's to handle simple 2-5 key input. The available keys was up, down, accept and cancel.

As they say: a Plug-n'-play solution 
So it needed to be easy to combine with existing code (as new development too)... so a smooth and easy interface is required

 

Essential to the basic generic design & success are:

What

meaning or ... ?

 

Small sum of basic keys

Up, Down, OK, Cancel
But also: Help, Left and Right

Easy expandable to a full keyboard

Easy index definitions

"1.3.2.1"

easy to move the menu around, with out changing the code else where

Easy menu text, as well a menu description

Toplevel text [Audio Settings]

Next level [Volume]

two names for the menu - one for the upper level and one when in the actual menu

Easy reference to eg help text

 

 

Application should not handle the key press

event based (keypress) to a defined function

Easy to design and implement.  eg. volume menu - it's simple a call to volume_up()

Cross Application awareness - NOPE

Each Applications should not have awareness of other applications

Applications

Language support -
easy selectable/changeable

[CurrentLanguage]

so easy to select/change language

Execution- & navigation
functionality

Either the menu entry is a navigator, or its a executer.
Navigator
means move to next level.
Executer means run the attached Application.

 

Accepted key on per menu bases

 

 

per-menu settings

Sound, key beep, display & keyboard timeout, wrap-around, and so on

 

Status updates on timeout bases

Update of defined variables in display

 

Easy integration

It should be very easy to integrate this manager with any new as well as existing code ...

 

requirements
(basic stuff - as low as possible)

RTOS, functions interfaces, MMU and other stuff like that.

Right now OS is required! But it could easily be converted to a call-based scenarios

 

 

 

 

 

 

 

Specifications

<empty for now>

 

Design

<Series of picture - the text need more preparation :-)>

The required data set-up and ?

Article Images: prj_simplemenumngtsystem1.gif

 

Booting and forward ...

Article Images: prj_simplemenumngtsystem2.gif

 

 

Implementation

<empty>

 

 

Download

<empty - comming soon>

 

 

OTHER

 


PROS & CONS

PROS

 

 

 

 

 

 

 

 

CONS

 

 

 

 

 

 

 

Comments

No Comments have been Posted.

Post Comment

Please Login to Post a Comment.

Articles Panel

  Article Posted By Date Reads
WCET - Worst Case Execution Timings Calculator
Tools
johnk
28-06-2015 19:2912819
Embedded-Tracer-System
Tools
johnk
16-03-2015 18:222016
NuttX - Step-By-Step
Tools
johnk
30-12-2013 17:185591
Tools used
Tools
johnk
27-10-2013 12:133221
List of my robots
My robots
johnk
19-07-2013 08:442934
JoKaBot - Home build from scratch
My robots
johnk
19-07-2013 08:045473
C-Sharp (references and projects)
Oldies
johnk
18-07-2013 19:193336
Home communications
Technology
johnk
18-07-2013 18:233536
Various links
My Collection
johnk
17-07-2013 09:046848
ARM - ARM7/9/11 + Cortex
Technology
johnk
17-07-2013 08:493534
AVR32
Technology
johnk
17-07-2013 08:413624
Raspberry PI
Technology
johnk
17-07-2013 08:369264
Robotics Links
Tools
johnk
17-07-2013 08:367461
Robotics in general
Robotics
johnk
17-07-2013 08:352820
Renesas processors (V850, RL78...)
Technology
johnk
17-07-2013 08:113400

Total Articles: 54 :: Total Article Categories: 16
 

Articles

My Collection (1) My robots (2)
Oldies (5)
Old Projects - very old
Process & Methods (7)
Projects (12) Robotics (1)
Technology (6) Testing (1)
Tools (12) Working on ... (7)
Projects Im currently working on
Render time: 0.02 seconds
701,412 unique visits