Existe-t-il un modèle pour un système de menu simple en C pour un écran LCD de texte. Je me retrouve à réécrire beaucoup de code pour gérer de simples menus LCD de texte.
Je trouve que la plupart des systèmes ont un menu principal et certains sous-menus qui, lorsqu'ils sont sélectionnés, vous permettent de définir un paramètre avec une valeur minimale et maximale.
Idéalement, ce système de menus pourrait être parcouru avec 4 touches simples telles que Entrée, Annuler, Haut et Bas.
Dans mon application, j'utilise un écran LCD texte de 2 lignes x 16 caractères, mais une solution idéale devrait pouvoir être appliquée à n'importe quel écran NxM.
Réponses:
Le modèle que j'utilise pour les systèmes de menus en C est quelque chose comme ceci:
Je déclare ensuite un tableau de
menu
s contenant chacunmenuitem
s et des pointeurs vers deschild
sous-menus. Haut et bas se déplace dans le tableau demenuitem
s actuellement sélectionné . Retour se déplace dans leparent
menu et avancer / sélectionner se déplace vers unchild
sous - menu ou appelle unhandlerFunc
nœud nœud.Le rendu d'un menu implique simplement une itération à travers ses éléments.
L'avantage de ce schéma est qu'il est entièrement piloté par les données, les structures de menu peuvent être statiquement déclarées dans la ROM indépendamment des fonctions de rendu et de gestion.
la source
La réponse de Toby est un très bon point de départ. Les structures mentionnées supposent que les menus sont statiques et que vous les parcourez simplement.
Si vous voulez des menus dynamiques (par exemple, afficher certaines valeurs, telles que la température, l'heure, etc.), vous devez être en mesure de générer cela.
Une façon pourrait être d'avoir enregistré une fonction pour construire votre chaîne.
la source