struct MenuItem {
const char* title;
const char* items[10];
int itemCount;
};
// Menü öğeleri tanımları
MenuItem mainMenu = {
"Ana Menü",
{"Ürünler", "Operatör", "Sistem"},
3
};
MenuItem urunlerMenu = {
"Ürünler",
{"Ürün 1", "Ürün 2", "Ürün 3", "Ürün 4"},
4
};
MenuItem operatorMenu = {
"Operatör",
{"Operatör 1", "Operatör 2", "Operatör 3"},
3
};
MenuItem systemMenu = {
"Sistem",
{"Ayarlar", "Tarih", "Saat", "Wifi"},
4
};
// Menüleri tanımlama
MenuItem* currentMenu = &mainMenu;
int selectedItem = 0;
void displayMenu() {
Serial.println(currentMenu->title);
for (int i = 0; i < currentMenu->itemCount; i++) {
if (i == selectedItem) {
Serial.print("> ");
} else {
Serial.print(" ");
}
Serial.println(currentMenu->items[i]);
}
}
void moveUp() {
if (selectedItem > 0) {
selectedItem--;
} else {
selectedItem = currentMenu->itemCount - 1; // Döngüsel hareket
}
displayMenu();
}
void moveDown() {
if (selectedItem < currentMenu->itemCount - 1) {
selectedItem++;
} else {
selectedItem = 0; // Döngüsel hareket
}
displayMenu();
}
void selectItem() {
if (currentMenu == &mainMenu) {
if (selectedItem == 0) {
currentMenu = &urunlerMenu;
} else if (selectedItem == 1) {
currentMenu = &operatorMenu;
} else if (selectedItem == 2) {
currentMenu = &systemMenu;
}
selectedItem = 0;
displayMenu();
} else if (currentMenu == &urunlerMenu || currentMenu == &operatorMenu || currentMenu == &systemMenu) {
// Alt menüde seçim yapıldı
Serial.print("Seçilen öğe: ");
Serial.println(currentMenu->items[selectedItem]);
}
}
void backToMainMenu() {
currentMenu = &mainMenu;
selectedItem = 0;
displayMenu();
}
void setup() {
Serial.begin(9600);
displayMenu();
}
void loop() {
if (Serial.available()) {
char input = Serial.read();
if (input == 'w') {
moveUp();
} else if (input == 's') {
moveDown();
} else if (input == 'e') {
selectItem();
} else if (input == 'b') {
backToMainMenu();
}
}
// Buraya buton girişleri kodu eklenebilir (örneğin, digitalRead() ile)
}