version 1.0

Dependencies:   CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed

Fork of SolarOnFoils_MainModule_20150518 by Dannis Brugman

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers menu.h Source File

menu.h

00001 #ifndef MENU_H_INCLUDED
00002 #define MENU_H_INCLUDED
00003 
00004 #include "mbed.h"
00005 #include "systemVar.h"
00006 
00007 //Solar on Foils display screens
00008 enum SCREEN_t
00009 {
00010 //////////////////////////////////////////////////////////////////////////////////////
00011 // base screens                                                                     //
00012 //////////////////////////////////////////////////////////////////////////////////////    
00013     _INIT = 0,              // Initialize screen
00014     _STANDBY,               // Standby screen
00015     _ACTIVE,                // Active screen
00016 //////////////////////////////////////////////////////////////////////////////////////
00017 // menulayer 0 settings                                                             //
00018 //////////////////////////////////////////////////////////////////////////////////////    
00019     _SETTINGS0,             // Settings level 0 screen
00020     _SETTINGS1,             // Settings level 1 screen
00021     _SETTINGS2,             // Settings level 2 screen
00022 //////////////////////////////////////////////////////////////////////////////////////
00023 // menulayer 1 settings                                                             //
00024 //////////////////////////////////////////////////////////////////////////////////////    
00025     _SYSTEMVAR0,            // System variable groep select level 0 screen
00026     _SYSTEMVAR1,            // Safety margins level 1 screen
00027     _SYSTEMVAR2,            // Safety margins level 2 screen
00028     _SYSTEMVAR3,            // Safety margins level 3 screen
00029     _SYSTEMVAR4,            // Safety margins level 4 screen
00030 //////////////////////////////////////////////////////////////////////////////////////
00031 // menulayer 2 settings                                                             //
00032 //////////////////////////////////////////////////////////////////////////////////////    
00033     _SYSTEMVARSELECT0,      // Select system variable to change level 0 screen
00034     _SYSTEMVARSELECT1,      // Select system variable to change level 1 screen
00035     _SYSTEMVARSELECT2,      // Select system variable to change level 2 screen
00036     _SYSTEMVARSELECT3,      // Select system variable to change level 3 screen
00037     _SYSTEMVARSELECT4,      // Select system variable to change level 4 screen
00038     _SYSTEMVARSELECT5,      // Select system variable to change level 5 screen
00039 //////////////////////////////////////////////////////////////////////////////////////
00040 // menulayer 3 settings                                                             //
00041 //////////////////////////////////////////////////////////////////////////////////////    
00042     _MUTATESYSTEMVAR0,      // mutate system variable level 0 screen
00043     _MUTATESYSTEMVAR1,      // mutate system variable level 1 screen
00044     _MUTATESYSTEMVAR2,      // mutate system variable level 2 screen
00045     _MUTATESYSTEMVAR3,      // mutate system variable level 3 screen
00046     _MUTATESYSTEMVAR4,      // mutate system variable level 4 screen
00047     _MUTATESYSTEMVAR5,      // mutate system variable level 5 screen
00048     _MUTATESYSTEMVAR6,      // mutate system variable level 6 screen
00049     _MUTATESYSTEMVAR7,      // mutate system variable level 7 screen
00050     
00051     _FOILBORNE,             // foilborne screen
00052     _FOILASSIST,            // foil assist screen
00053     _HOMESCREEN,            // home screen
00054 //////////////////////////////////////////////////////////////////////////////////////
00055 // CAN messages                                                                     //
00056 //////////////////////////////////////////////////////////////////////////////////////    
00057     _CANINIT,
00058     _CANFAIL,
00059     _CANERROR,
00060     _CANOK,
00061     _CANNORESPONSE,
00062     _CANID101OK,
00063     _CANID102OK,
00064     _CANID201OK,
00065     _CANID202OK,
00066     _CANID205OK,
00067     _CANID1001OK,
00068     _CANID101FAIL,
00069     _CANID102FAIL,
00070     _CANID201FAIL,
00071     _CANID202FAIL,
00072     _CANID205FAIL,
00073     _CANID1001FAIL,
00074 //////////////////////////////////////////////////////////////////////////////////////
00075 // IMU messages                                                                     //
00076 //////////////////////////////////////////////////////////////////////////////////////         
00077     _IMUREADY,
00078     _IMUFAIL,
00079     _ROLLTEST,              // roll test displays roll value
00080     _PITCHTEST,             // pitch test displays pitch value
00081     _HEIGHTTEST,
00082     _SHOWHEIGHTFB,          // display height value
00083     _PULSE_IS,
00084     _CAUTION,               // Caution screen
00085 //////////////////////////////////////////////////////////////////////////////////////
00086 // multiple used screens                                                            //
00087 //////////////////////////////////////////////////////////////////////////////////////     
00088     _BACK,                  // Back screen
00089     _HOME,                  // Home screen
00090     _PROGRESS               // development screen
00091 };
00092 //////////////////////////////////////////////////////////////////////////////////////
00093 // MENU_t conform menu structure Functioneel_ontwerp_03_20150609                    //
00094 //////////////////////////////////////////////////////////////////////////////////////
00095 enum MENU_t
00096 {
00097     _MENU0_0 = 0,           // Initialize screen
00098     _MENU0_1,               // Standby screen
00099     
00100     _MENU0_2,               // Settings screen
00101     _MENU1_20,              // Variable settings screen 0
00102     _MENU1_21,              // Variable settings screen 1
00103     _MENU1_22,              // Variable settings screen 2
00104     _MENU1_23,              // Variable settings screen 3
00105     _MENU1_24,              // Variable settings screen 4
00106     
00107     _MENU2_20,              // Variable settings select screen 0
00108     _MENU2_21,              // Variable settings select screen 1
00109     _MENU2_22,              // Variable settings select screen 2
00110     _MENU2_23,              // Variable settings select screen 3
00111     _MENU2_24,              // Variable settings select screen 4
00112     _MENU2_25,              // Variable settings select screen 5
00113     
00114     _MENU3_20,              // Variable settings mutatie screen 0
00115     _MENU3_21,              // Variable settings mutatie screen 1
00116     _MENU3_22,              // Variable settings mutatie screen 2
00117     _MENU3_23,              // Variable settings mutatie screen 3
00118     _MENU3_24,              // Variable settings mutatie screen 4
00119     _MENU3_25,              // Variable settings mutatie screen 5
00120     _MENU3_26,              // Variable settings mutatie screen 6
00121     
00122     _MENU0_3,               // Viewsettings screen
00123     _MENU1_31,              // View roll angle screen
00124     _MENU1_32,              // View pitch angle screen
00125     _MENU1_33,              // View height settings screen
00126     _MENU1_34,              // View port height measured
00127     
00128     _MENU0_4,               // Diagnosis screen
00129     _MENU1_4,               // Diagnosis menu screen
00130     
00131     _BACKBACK,              // Back back
00132     _BACKHOME               // Back home
00133 };
00134 
00135 class Menu
00136 {
00137     private:
00138         // variable
00139                 
00140         char cTextLine1[18];
00141         char cTextLine2[18];
00142         char cStatus;
00143         
00144         SCREEN_t screen;
00145         MENU_t menu, nextMenu, prevMenu, confMenu, backToFrom;
00146         VALUE_t valueToChange;
00147         
00148         uint32_t uiCounter;
00149                 
00150         bool bMenu;             // true item is menu, false item is value
00151         bool bConfirm;          // confirm menu or value item 
00152         bool bReadHeight;       // allow writing CAN height module on CANbus
00153         bool bError;
00154         
00155     public:
00156         // Constructor
00157         Menu();
00158         // Destructor
00159         ~Menu();
00160         
00161         // Init
00162         void init(void);
00163         // Gets
00164         char* getLine1(void);
00165         char* getLine2(void); 
00166         SCREEN_t getScreen(void); 
00167         bool bGetReadHeight(void);   
00168 
00169         // Sets
00170 
00171         // Other functions
00172         void vShowScreen(SCREEN_t);
00173         void vSelectMenu(MENU_t);
00174         void vRotaryUp(void);
00175         void vRotaryDown(void);
00176         void vRotaryConfirm(void);
00177         void vFillString1(void);        // Fill string1 upto 16 characters
00178         void vFillString2(void);        // Fill string2 upto 16 characters
00179         void vCheckReadHeight(void);
00180         
00181 };
00182 #endif