библиотека меню меню MenuSystem.h
- Войдите на сайт для отправки комментариев
Пт, 12/02/2016 - 18:32
в библиотеке есть пример:
/* * serial_nav.ino - Example code using the menu system library * * This example shows the menu system being controlled over the serial port. * * Copyright (c) 2015 arduino-menusystem * Licensed under the MIT license (see LICENSE) */ #include <MenuSystem.h> // Menu variables MenuSystem ms; Menu mm("Menu"); MenuItem mm_mi1("nastroyka"); MenuItem mm_mi2("displey"); Menu mu1("cklock"); MenuItem mu1_mi1("minutes"); Menu mu2("keys"); MenuItem mu2_mi1("A"); // Menu callback function // In this example all menu items use the same callback. void on_item1_selected(MenuItem* p_menu_item) { Serial.println("Item1 Selected"); } void on_item2_selected(MenuItem* p_menu_item) { Serial.println("Item2 Selected"); } void on_item3_selected(MenuItem* p_menu_item) { Serial.println("Item3 Selected"); } // Standard arduino functions void setup() { Serial.begin(9600); serialPrintHelp(); Serial.println("Setting up the menu."); // Menu setup /* Menu Structure: -Item1 -Item2 -Item3 --Item1 */ mm.add_item(&mm_mi1, &on_item1_selected); mm.add_item(&mm_mi2, &on_item2_selected); mm.add_menu(&mu1); mu1.add_item(&mu1_mi1, &on_item3_selected); mm.add_menu(&mu2); mu2.add_item(&mu2_mi1, &on_item3_selected); ms.set_root_menu(&mm); Serial.println("Menu setted."); displayMenu(); } void loop() { // Handle serial commands serialHandler(); // Wait for two seconds so the output is viewable //delay(2000); } void displayMenu() { Serial.println(""); // Display the menu Menu const* cp_menu = ms.get_current_menu(); Serial.print("Current menu name: "); Serial.println(cp_menu->get_name()); MenuComponent const* cp_menu_sel = cp_menu->get_selected(); for (int i = 0; i < cp_menu->get_num_menu_components(); ++i) { MenuComponent const* cp_m_comp = cp_menu->get_menu_component(i); Serial.print(cp_m_comp->get_name()); if (cp_menu_sel == cp_m_comp) Serial.print("<<< "); Serial.println(""); } } void serialHandler() { char inChar; if((inChar = Serial.read())>0) { switch (inChar) { case 'w': // Previus item ms.prev(); displayMenu(); break; case 's': // Next item ms.next(); displayMenu(); break; case 'a': // Back presed ms.back(); displayMenu(); break; case 'd': // Select presed ms.select(); displayMenu(); break; case '?': case 'h': // Display help serialPrintHelp(); break; default: break; } } } void serialPrintHelp() { Serial.println("***************"); Serial.println("w: go to previus item (up)"); Serial.println("s: go to next item (down)"); Serial.println("a: go back (right)"); Serial.println("d: select \"selected\" item"); Serial.println("?: print this help"); Serial.println("h: print this help"); Serial.println("***************"); }
как добавить пункты в меню разобрался, а как сделать, чтоб при выборе определенного пункта переменную менять, либо функцию вызывать не пойму. подскажите.
выше это я уже правил вот чистый пример из библиотеки:
не вижу в сериал выполнения функций
on_item1_selected
спасибо откликнувшимся. разобрался.
MacSim , разборку нам ( мине ) покажешь ?
спасибо ! :)