version 1.0
Dependencies: CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed
Fork of SolarOnFoils_MainModule_20150518 by
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
Generated on Tue Jul 12 2022 21:09:14 by 1.7.2