Apakah ada pola di luar sana untuk sistem menu sederhana dalam C untuk LCD teks. Saya menemukan diri saya menulis ulang kode banyak untuk menangani menu LCD teks sederhana.
Saya menemukan sebagian besar sistem memiliki menu utama dan beberapa sub-menu yang ketika dipilih memungkinkan Anda untuk mengatur parameter dengan beberapa nilai minimum dan maksimum.
Idealnya sistem menu ini dapat dinavigasi dengan 4 tombol sederhana seperti memasukkan, membatalkan, naik, dan turun.
Dalam aplikasi saya, saya menggunakan LCD teks 2 baris x 16 karakter meskipun solusi yang ideal harus dapat diterapkan ke layar NxM.
Jawaban:
Pola yang saya gunakan untuk sistem menu di C adalah sesuatu seperti ini:
Saya kemudian mendeklarasikan array
menu
masing-masing berisimenuitem
s dan pointer kechild
submenu. Naik dan turun bergerak melalui arraymenuitem
s yang saat ini dipilih . Kembali bergerak keparent
menu dan teruskan / pilih pindah kechild
submenu atau panggil ahandlerFunc
untuk simpul daun.Rendering menu hanya melibatkan iterasi melalui item-itemnya.
Keuntungan dari skema ini adalah sepenuhnya data didorong, struktur menu dapat secara statis dideklarasikan dalam ROM independen dari fungsi penyaji dan penangan.
sumber
Jawaban Toby adalah titik awal yang sangat baik. Struktur yang disebutkan berasumsi bahwa menu itu statis dan Anda hanya menavigasi saja.
Jika Anda ingin menu dymanic (misalnya menampilkan nilai-nilai tertentu, seperti suhu, waktu, dll), maka Anda harus dapat menghasilkan itu.
Salah satu caranya adalah dengan mendaftarkan fungsi untuk membuat string Anda.
sumber