|
|
(2 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| ''interfaccia menu testuale minimale''
| | https://github.com/andreasimonetto/rancio |
| | |
| == Struttura ==
| |
| | |
| un menu e' un albero, terminato da foglie
| |
| | |
| la struttura del menu e' definita con un array di strutture C:
| |
| | |
| <source lang="C">
| |
| struct node
| |
| {
| |
| char node_name[16]; // nome
| |
| uint16_t parent_node_id; // id del padre
| |
| uint16_t node_type_id; // id del tipo
| |
| };
| |
| </source>
| |
| | |
| i tipi dei dati sono definiti in un array di strutture C:
| |
| | |
| <source lang="C">
| |
| struct type
| |
| {
| |
| uint32_t value_min; // valore minimo
| |
| uint32_t value_max; // valore massimo
| |
| uint32_t enum[16]; // valori predeterminati
| |
| uint32_t step[16]; // incrementi possibili
| |
| }
| |
| </source>
| |
| | |
| == Input ==
| |
| | |
| la navigazione richiede ALMENO 6 tasti:
| |
| | |
| * '''UP''' seleziona il fratello precedente
| |
| * '''DOWN''' seleziona il fratello sucessivo
| |
| * '''LEFT''' decrementa il valore
| |
| * '''RIGHT''' incrementa il valore
| |
| * '''IN''' entra nel nodo selezionato
| |
| * '''OUT''' entra nel padre
| |
| | |
| == Output ==
| |
| | |
| gli elementi grafici eventualmente visualizzabili sono:
| |
| | |
| * nome del nodo padre
| |
| * nome del nodo fratello precedente
| |
| * nome del nodo corrente '''necessario se foglia'''
| |
| * nome del nodo selezionato '''necessario se non-foglia'''
| |
| * nome del nodo fratello successivo
| |
| * valore del nodo (se foglia) '''necessario'''
| |
| | |
| == Altre lib ==
| |
| | |
| * http://forum.arduino.cc/index.php?topic=99693.0;wap2
| |
| * http://www.spectron.us/SM6FIE/Electronics/Ms2MenuSystem/Ms2MenuSystem.php
| |
| * http://www.dtweed.com/circuitcellar/caj00160.htm#2821
| |
| * http://mat.midlight.eu/wiki/index.php/Simple_LCD_Menu_Main_Page
| |
| * https://sites.google.com/site/hubmartin/arm/lcd-menu-v2
| |