RancioLib: Difference between revisions

From ciapini
Jump to navigation Jump to search
Line 56: Line 56:
* http://www.dtweed.com/circuitcellar/caj00160.htm#2821
* http://www.dtweed.com/circuitcellar/caj00160.htm#2821
* http://mat.midlight.eu/wiki/index.php/Simple_LCD_Menu_Main_Page
* http://mat.midlight.eu/wiki/index.php/Simple_LCD_Menu_Main_Page
* https://sites.google.com/site/hubmartin/arm/lcd-menu-v2

Revision as of 12:37, 17 September 2013

interfaccia menu testuale minimale

Struttura

un menu e' un albero, terminato da foglie

la struttura del menu e' definita con un array di strutture C:

struct node
{
  char node_name[16]; // nome
  uint16_t parent_node_id; // id del padre
  uint16_t node_type_id; // id del tipo
};

i tipi dei dati sono definiti in un array di strutture 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
}

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