version 1.0

Dependencies:   CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed

Fork of SolarOnFoils_MainModule_20150518 by Dannis Brugman

Revision:
2:f6d058931b17
Parent:
1:b4a0d63db637
--- a/menu.h	Fri Jun 26 09:21:33 2015 +0000
+++ b/menu.h	Tue Aug 11 08:38:55 2015 +0000
@@ -7,15 +7,53 @@
 //Solar on Foils display screens
 enum SCREEN_t
 {
+//////////////////////////////////////////////////////////////////////////////////////
+// base screens                                                                     //
+//////////////////////////////////////////////////////////////////////////////////////    
     _INIT = 0,              // Initialize screen
     _STANDBY,               // Standby screen
     _ACTIVE,                // Active screen
+//////////////////////////////////////////////////////////////////////////////////////
+// menulayer 0 settings                                                             //
+//////////////////////////////////////////////////////////////////////////////////////    
     _SETTINGS0,             // Settings level 0 screen
     _SETTINGS1,             // Settings level 1 screen
     _SETTINGS2,             // Settings level 2 screen
+//////////////////////////////////////////////////////////////////////////////////////
+// menulayer 1 settings                                                             //
+//////////////////////////////////////////////////////////////////////////////////////    
+    _SYSTEMVAR0,            // System variable groep select level 0 screen
+    _SYSTEMVAR1,            // Safety margins level 1 screen
+    _SYSTEMVAR2,            // Safety margins level 2 screen
+    _SYSTEMVAR3,            // Safety margins level 3 screen
+    _SYSTEMVAR4,            // Safety margins level 4 screen
+//////////////////////////////////////////////////////////////////////////////////////
+// menulayer 2 settings                                                             //
+//////////////////////////////////////////////////////////////////////////////////////    
+    _SYSTEMVARSELECT0,      // Select system variable to change level 0 screen
+    _SYSTEMVARSELECT1,      // Select system variable to change level 1 screen
+    _SYSTEMVARSELECT2,      // Select system variable to change level 2 screen
+    _SYSTEMVARSELECT3,      // Select system variable to change level 3 screen
+    _SYSTEMVARSELECT4,      // Select system variable to change level 4 screen
+    _SYSTEMVARSELECT5,      // Select system variable to change level 5 screen
+//////////////////////////////////////////////////////////////////////////////////////
+// menulayer 3 settings                                                             //
+//////////////////////////////////////////////////////////////////////////////////////    
+    _MUTATESYSTEMVAR0,      // mutate system variable level 0 screen
+    _MUTATESYSTEMVAR1,      // mutate system variable level 1 screen
+    _MUTATESYSTEMVAR2,      // mutate system variable level 2 screen
+    _MUTATESYSTEMVAR3,      // mutate system variable level 3 screen
+    _MUTATESYSTEMVAR4,      // mutate system variable level 4 screen
+    _MUTATESYSTEMVAR5,      // mutate system variable level 5 screen
+    _MUTATESYSTEMVAR6,      // mutate system variable level 6 screen
+    _MUTATESYSTEMVAR7,      // mutate system variable level 7 screen
+    
     _FOILBORNE,             // foilborne screen
     _FOILASSIST,            // foil assist screen
     _HOMESCREEN,            // home screen
+//////////////////////////////////////////////////////////////////////////////////////
+// CAN messages                                                                     //
+//////////////////////////////////////////////////////////////////////////////////////    
     _CANINIT,
     _CANFAIL,
     _CANERROR,
@@ -33,15 +71,22 @@
     _CANID202FAIL,
     _CANID205FAIL,
     _CANID1001FAIL,
-    _PULSE_IS,
+//////////////////////////////////////////////////////////////////////////////////////
+// IMU messages                                                                     //
+//////////////////////////////////////////////////////////////////////////////////////         
     _IMUREADY,
     _IMUFAIL,
     _ROLLTEST,              // roll test displays roll value
     _PITCHTEST,             // pitch test displays pitch value
     _HEIGHTTEST,
     _SHOWHEIGHTFB,          // display height value
-
+    _PULSE_IS,
     _CAUTION,               // Caution screen
+//////////////////////////////////////////////////////////////////////////////////////
+// multiple used screens                                                            //
+//////////////////////////////////////////////////////////////////////////////////////     
+    _BACK,                  // Back screen
+    _HOME,                  // Home screen
     _PROGRESS               // development screen
 };
 //////////////////////////////////////////////////////////////////////////////////////
@@ -51,20 +96,40 @@
 {
     _MENU0_0 = 0,           // Initialize screen
     _MENU0_1,               // Standby screen
+    
     _MENU0_2,               // Settings screen
-    _MENU1_2,               // Variable settings screen
+    _MENU1_20,              // Variable settings screen 0
+    _MENU1_21,              // Variable settings screen 1
+    _MENU1_22,              // Variable settings screen 2
+    _MENU1_23,              // Variable settings screen 3
+    _MENU1_24,              // Variable settings screen 4
+    
+    _MENU2_20,              // Variable settings select screen 0
+    _MENU2_21,              // Variable settings select screen 1
+    _MENU2_22,              // Variable settings select screen 2
+    _MENU2_23,              // Variable settings select screen 3
+    _MENU2_24,              // Variable settings select screen 4
+    _MENU2_25,              // Variable settings select screen 5
+    
+    _MENU3_20,              // Variable settings mutatie screen 0
+    _MENU3_21,              // Variable settings mutatie screen 1
+    _MENU3_22,              // Variable settings mutatie screen 2
+    _MENU3_23,              // Variable settings mutatie screen 3
+    _MENU3_24,              // Variable settings mutatie screen 4
+    _MENU3_25,              // Variable settings mutatie screen 5
+    _MENU3_26,              // Variable settings mutatie screen 6
+    
     _MENU0_3,               // Viewsettings screen
     _MENU1_31,              // View roll angle screen
     _MENU1_32,              // View pitch angle screen
     _MENU1_33,              // View height settings screen
-    _MENU1_34,               // View port height measured
+    _MENU1_34,              // View port height measured
+    
     _MENU0_4,               // Diagnosis screen
     _MENU1_4,               // Diagnosis menu screen
     
-    
-    
-    
-    _HOME                   // Back home
+    _BACKBACK,              // Back back
+    _BACKHOME               // Back home
 };
 
 class Menu
@@ -77,13 +142,14 @@
         char cStatus;
         
         SCREEN_t screen;
-        MENU_t menu, nextMenu, prevMenu, confMenu;
+        MENU_t menu, nextMenu, prevMenu, confMenu, backToFrom;
+        VALUE_t valueToChange;
         
         uint32_t uiCounter;
                 
-        bool bMenu;     // true item is menu, false item is value
-        bool bConfirm;  // confirm menu or value item 
-        bool bReadHeight;
+        bool bMenu;             // true item is menu, false item is value
+        bool bConfirm;          // confirm menu or value item 
+        bool bReadHeight;       // allow writing CAN height module on CANbus
         bool bError;
         
     public:
@@ -108,8 +174,8 @@
         void vRotaryUp(void);
         void vRotaryDown(void);
         void vRotaryConfirm(void);
-        void vFillString1(void);
-        void vFillString2(void);
+        void vFillString1(void);        // Fill string1 upto 16 characters
+        void vFillString2(void);        // Fill string2 upto 16 characters
         void vCheckReadHeight(void);
         
 };