Czy istnieje wzór dla prostego systemu menu w C dla tekstowego wyświetlacza LCD. Często zmieniam kod na obsługę prostych tekstowych menu LCD.
Uważam, że większość systemów ma menu główne i niektóre podmenu, które po wybraniu pozwalają ustawić parametr z pewną minimalną i maksymalną wartością.
Idealnie do tego systemu menu można nawigować za pomocą 4 prostych klawiszy, takich jak Enter, Cancel, Up i Down.
W mojej aplikacji korzystam z 2-liniowego x 16-tekstowego wyświetlacza LCD, chociaż idealne rozwiązanie powinno być możliwe do zastosowania na każdym wyświetlaczu NxM.
Odpowiedzi:
Wzór, którego używam dla systemów menu w C, jest mniej więcej taki:
Następnie deklaruję tablicę
menu
s zawierającąmenuitem
s i wskaźniki dochild
podmenu. W górę i w dół porusza się po aktualnie wybranej tablicymenuitem
s. Wstecz przenosi doparent
menu i do przodu / wybierz albo przechodzi dochild
podmenu, albo wywołuje ahandlerFunc
dla węzła liścia.Renderowanie menu polega tylko na iteracji po jego elementach.
Zaletą tego schematu jest to, że jest w pełni sterowany danymi, struktury menu mogą być deklarowane statycznie w pamięci ROM niezależnie od funkcji renderera i obsługi.
źródło
Odpowiedź Toby'ego jest bardzo dobrym punktem wyjścia. Wspomniane struktury zakładają, że menu są statyczne i po prostu się po nich poruszasz.
Jeśli chcesz mieć menu dymaniczne (np. Wyświetlające określone wartości, takie jak temperatura, czas itp.), Musisz mieć możliwość ich wygenerowania.
Jednym ze sposobów może być zarejestrowanie funkcji do budowania łańcucha.
źródło