Zoltan Hudak / Mbed 2 deprecated Menu_Hello

Dependencies:   Menu mbed

Revision:
3:9b11b0e69ff4
Parent:
2:92f4dad1b937
--- a/main.cpp	Thu Nov 30 18:41:29 2017 +0000
+++ b/main.cpp	Fri Jan 05 14:49:58 2018 +0000
@@ -20,7 +20,7 @@
  *   |      Btn1   Btn2  Btn3  Btn4     |
  *   |                                  |
  *    ----------------------------------
- * 
+ *
  * Each push button must be connected to an mbed digital input pin and the ground.
  *
  *
@@ -39,8 +39,8 @@
  *       GND
  *
  *
- * NOTE: When creating a MenuSystem the constructor automatically connects 
- * an internal pull-up resistor to each digital input used by the MenuSytem push buttons.
+ * NOTE: When creating a MenuSystem the constructor automatically connects
+ * an internal pull-up resistor to each PushButton input used by the MenuSytem.
  */
 
 #include "mbed.h"
@@ -48,9 +48,8 @@
 
 Serial pc(USBTX, USBRX);
 
-
 /*
- * Some variables needed for this example
+ * Variables used in this example
  */
 int  setpoint;
 int* p_setpoint;
@@ -58,43 +57,35 @@
 int  hiSetpoint = 50;
 
 /*
- * Create an array of push buttons to be used with the menu system
+ * Define push buttons to be used in menu.
  */
 #if defined(TARGET_LPC1768)
-DigitalIn   buttons[] = { DigitalIn(p21), DigitalIn(p22), DigitalIn(p23), DigitalIn(p24) };
-#elif defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L152RE) || defined(TARGET_NUCLEO_F030R8)  \
-   || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_L053R8)  \
-   || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F334R8) || defined(TARGET_NUCLEO_F072RB)  \
-   || defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F070RB)  \
-   || defined(TARGET_KL25Z ) || defined(TARGET_KL46Z) || defined(TARGET_K64F) || defined(TARGET_KL05Z) \
-   || defined(TARGET_K20D50M) || defined(TARGET_K22F) \
-   || defined(TARGET_NRF51822) \
-   || defined(TARGET_RZ_A1H)
-DigitalIn   buttons[] = { DigitalIn(D2), DigitalIn(D3), DigitalIn(D4), DigitalIn(D5) };
+PushButton btnMode(p21), btnMore(p22), btnLess(p23), btnSave(p24);
+#else
+PushButton btnMode(D2), btnMore(D3), btnLess(D4), btnSave(D5);
 #endif
 
+
 /*
- * Assign alias names to the buttons (just for the convenience)
+ * Define an array of PushButton pointers initialized with push buttons created above.
  */
-DigitalIn&  btnMode = buttons[0];   // Mode
-DigitalIn&  btnMore = buttons[1];   // More +
-DigitalIn&  btnLess = buttons[2];   // Less -
-DigitalIn&  btnSave = buttons[3];   // Save
+PushButton* buttons[] = {&btnMode, &btnMore, &btnLess, &btnSave};
+
 
 /*
  * Create a menu system object associated with the push buttons
  */
-MenuSystem  menuSystem(buttons, 4 /*=300*/); // name of button array, number of buttons, debounce time in ms
+MenuSystem  menuSystem(buttons, 4 /*, 300 */); // name of the array, number of buttons, (debounce time in ms)
 
 /*
  * Create as many menus as you need.
  *
  * In this example we create the following three menus:
- * 1. 'Main' (root) menu
- * 2. 'Set high setpoint' menu
- * 3. 'Set low setpoint' menu
+ * 1. Main
+ * 2. Set high setpoint
+ * 3. Set low setpoint
  *
- * NOTE: The function of individual push buttons will vary depending on the selected menu.
+ * NOTE: The function of individual push buttons will vary depending on the actually opened menu.
  */
 Menu  menuMain(menuSystem);
 Menu  menuSetHiSetpoint(menuSystem);
@@ -123,28 +114,30 @@
     //
 
     // 'Main' menu:
-    menuMain.attach(&btnMode, &openMenu_SetHiSetpoint);
+    menuMain.attach(buttons[0], openMenu_SetHiSetpoint);
 
     //
     // 'Set High Setpoint' menu:
-    menuSetHiSetpoint.attach(&btnMode, &openMenu_SetLoSetpoint);
-    menuSetHiSetpoint.attach(&btnMore, &incrementSetpoint);
-    menuSetHiSetpoint.attach(&btnLess, &decrementSetpoint);
-    menuSetHiSetpoint.attach(&btnSave, &saveSetpoint);
+    menuSetHiSetpoint.attach(buttons[0], openMenu_SetLoSetpoint);
+    menuSetHiSetpoint.attach(buttons[1], incrementSetpoint);
+    menuSetHiSetpoint.attach(buttons[2], decrementSetpoint);
+    menuSetHiSetpoint.attach(buttons[3], saveSetpoint);
 
     //
     // 'Set Low Setpoint' menu:
-    menuSetLoSetpoint.attach(&btnMode, &openMenu_Main);
-    menuSetLoSetpoint.attach(&btnMore, &incrementSetpoint);
-    menuSetLoSetpoint.attach(&btnLess, &decrementSetpoint);
-    menuSetLoSetpoint.attach(&btnSave, &saveSetpoint);
+    menuSetLoSetpoint.attach(buttons[0], openMenu_Main);
+    menuSetLoSetpoint.attach(buttons[1], incrementSetpoint);
+    menuSetLoSetpoint.attach(buttons[2], decrementSetpoint);
+    menuSetLoSetpoint.attach(buttons[3], saveSetpoint);
 
-    openMenu_Main();    // activate main (root) menu
+    openMenu_Main();    // open 'Main' menu
 
     while(1) {
-        menuSystem.handleButtons(); // Handle 'button pressed' events
+        // When a button is pressed a flag is set immediately via an interrupt service routine.
+        // But the assigned handler is called later on here by the 'handleButtons()' function.
+        menuSystem.handleButtons();
 
-        //..
+        //.. Your main code
     }
 }
 
@@ -164,11 +157,10 @@
 void openMenu_Main(void) {
     menuSystem.open(menuMain);  // activate the menu
     pc.printf("---------------------------------------------------\r\n");
-    pc.printf("Main menu:\r\n\r\n");
-    pc.printf("loSetpoint = %i\r\n", loSetpoint);
+    pc.printf("Main menu:\r\n");
+    pc.printf("Press 'Mode' to open 'High setpoint' menu.\r\n");
     pc.printf("hiSetpoint = %i\r\n", hiSetpoint);
-    pc.printf("\r\n");
-    pc.printf("Press 'Mode' to open 'High setpoint' menu.\r\n");
+    pc.printf("loSetpoint = %i\r\n", loSetpoint);
     pc.printf("\r\n");
 }
 
@@ -182,10 +174,10 @@
     menuSystem.open(menuSetHiSetpoint); // activate the menu
     pc.printf("---------------------------------------------------\r\n");
     pc.printf("High setpoint menu:\r\n");
+    pc.printf("Press 'Mode' to open 'Low setpoint' menu.\r\n");
     pc.printf("Press 'More' to increment high setpoint.\r\n");
     pc.printf("Press 'Less' to decrement high setpoint.\r\n");
     pc.printf("Press 'Save' to save the setoint.\r\n");
-    pc.printf("Press 'Mode' to open 'Low setpoint' menu.\r\n");
     pc.printf("\r\n");
 
     p_setpoint = &hiSetpoint;
@@ -202,10 +194,10 @@
     menuSystem.open(menuSetLoSetpoint); // activate the menu
     pc.printf("---------------------------------------------------\r\n");
     pc.printf("Low setpoint menu:\r\n");
+    pc.printf("Press 'Mode' to open 'Main' menu.\r\n");
     pc.printf("Press 'More' to increment low setpoint.\r\n");
     pc.printf("Press 'Less' to decrement low setpoint.\r\n");
     pc.printf("Press 'Save' to save the setpoint.\r\n");
-    pc.printf("Press 'Mode' to open Main menu.\r\n");
     pc.printf("\r\n");
 
     p_setpoint = &loSetpoint;
@@ -251,3 +243,4 @@
 
 
 
+