version 1.0
Dependencies: CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed
Fork of SolarOnFoils_MainModule_20150518 by
menu.h@2:f6d058931b17, 2015-08-11 (annotated)
- Committer:
- Dannis_mbed
- Date:
- Tue Aug 11 08:38:55 2015 +0000
- Revision:
- 2:f6d058931b17
- Parent:
- 1:b4a0d63db637
Test version mainmodule
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Dannis_mbed | 0:81b21910454e | 1 | #ifndef MENU_H_INCLUDED |
Dannis_mbed | 0:81b21910454e | 2 | #define MENU_H_INCLUDED |
Dannis_mbed | 0:81b21910454e | 3 | |
Dannis_mbed | 0:81b21910454e | 4 | #include "mbed.h" |
Dannis_mbed | 0:81b21910454e | 5 | #include "systemVar.h" |
Dannis_mbed | 0:81b21910454e | 6 | |
Dannis_mbed | 0:81b21910454e | 7 | //Solar on Foils display screens |
Dannis_mbed | 0:81b21910454e | 8 | enum SCREEN_t |
Dannis_mbed | 0:81b21910454e | 9 | { |
Dannis_mbed | 2:f6d058931b17 | 10 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 11 | // base screens // |
Dannis_mbed | 2:f6d058931b17 | 12 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 13 | _INIT = 0, // Initialize screen |
Dannis_mbed | 1:b4a0d63db637 | 14 | _STANDBY, // Standby screen |
Dannis_mbed | 1:b4a0d63db637 | 15 | _ACTIVE, // Active screen |
Dannis_mbed | 2:f6d058931b17 | 16 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 17 | // menulayer 0 settings // |
Dannis_mbed | 2:f6d058931b17 | 18 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 19 | _SETTINGS0, // Settings level 0 screen |
Dannis_mbed | 1:b4a0d63db637 | 20 | _SETTINGS1, // Settings level 1 screen |
Dannis_mbed | 1:b4a0d63db637 | 21 | _SETTINGS2, // Settings level 2 screen |
Dannis_mbed | 2:f6d058931b17 | 22 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 23 | // menulayer 1 settings // |
Dannis_mbed | 2:f6d058931b17 | 24 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 25 | _SYSTEMVAR0, // System variable groep select level 0 screen |
Dannis_mbed | 2:f6d058931b17 | 26 | _SYSTEMVAR1, // Safety margins level 1 screen |
Dannis_mbed | 2:f6d058931b17 | 27 | _SYSTEMVAR2, // Safety margins level 2 screen |
Dannis_mbed | 2:f6d058931b17 | 28 | _SYSTEMVAR3, // Safety margins level 3 screen |
Dannis_mbed | 2:f6d058931b17 | 29 | _SYSTEMVAR4, // Safety margins level 4 screen |
Dannis_mbed | 2:f6d058931b17 | 30 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 31 | // menulayer 2 settings // |
Dannis_mbed | 2:f6d058931b17 | 32 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 33 | _SYSTEMVARSELECT0, // Select system variable to change level 0 screen |
Dannis_mbed | 2:f6d058931b17 | 34 | _SYSTEMVARSELECT1, // Select system variable to change level 1 screen |
Dannis_mbed | 2:f6d058931b17 | 35 | _SYSTEMVARSELECT2, // Select system variable to change level 2 screen |
Dannis_mbed | 2:f6d058931b17 | 36 | _SYSTEMVARSELECT3, // Select system variable to change level 3 screen |
Dannis_mbed | 2:f6d058931b17 | 37 | _SYSTEMVARSELECT4, // Select system variable to change level 4 screen |
Dannis_mbed | 2:f6d058931b17 | 38 | _SYSTEMVARSELECT5, // Select system variable to change level 5 screen |
Dannis_mbed | 2:f6d058931b17 | 39 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 40 | // menulayer 3 settings // |
Dannis_mbed | 2:f6d058931b17 | 41 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 42 | _MUTATESYSTEMVAR0, // mutate system variable level 0 screen |
Dannis_mbed | 2:f6d058931b17 | 43 | _MUTATESYSTEMVAR1, // mutate system variable level 1 screen |
Dannis_mbed | 2:f6d058931b17 | 44 | _MUTATESYSTEMVAR2, // mutate system variable level 2 screen |
Dannis_mbed | 2:f6d058931b17 | 45 | _MUTATESYSTEMVAR3, // mutate system variable level 3 screen |
Dannis_mbed | 2:f6d058931b17 | 46 | _MUTATESYSTEMVAR4, // mutate system variable level 4 screen |
Dannis_mbed | 2:f6d058931b17 | 47 | _MUTATESYSTEMVAR5, // mutate system variable level 5 screen |
Dannis_mbed | 2:f6d058931b17 | 48 | _MUTATESYSTEMVAR6, // mutate system variable level 6 screen |
Dannis_mbed | 2:f6d058931b17 | 49 | _MUTATESYSTEMVAR7, // mutate system variable level 7 screen |
Dannis_mbed | 2:f6d058931b17 | 50 | |
Dannis_mbed | 1:b4a0d63db637 | 51 | _FOILBORNE, // foilborne screen |
Dannis_mbed | 1:b4a0d63db637 | 52 | _FOILASSIST, // foil assist screen |
Dannis_mbed | 1:b4a0d63db637 | 53 | _HOMESCREEN, // home screen |
Dannis_mbed | 2:f6d058931b17 | 54 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 55 | // CAN messages // |
Dannis_mbed | 2:f6d058931b17 | 56 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 57 | _CANINIT, |
Dannis_mbed | 0:81b21910454e | 58 | _CANFAIL, |
Dannis_mbed | 0:81b21910454e | 59 | _CANERROR, |
Dannis_mbed | 0:81b21910454e | 60 | _CANOK, |
Dannis_mbed | 0:81b21910454e | 61 | _CANNORESPONSE, |
Dannis_mbed | 0:81b21910454e | 62 | _CANID101OK, |
Dannis_mbed | 0:81b21910454e | 63 | _CANID102OK, |
Dannis_mbed | 0:81b21910454e | 64 | _CANID201OK, |
Dannis_mbed | 0:81b21910454e | 65 | _CANID202OK, |
Dannis_mbed | 0:81b21910454e | 66 | _CANID205OK, |
Dannis_mbed | 0:81b21910454e | 67 | _CANID1001OK, |
Dannis_mbed | 0:81b21910454e | 68 | _CANID101FAIL, |
Dannis_mbed | 0:81b21910454e | 69 | _CANID102FAIL, |
Dannis_mbed | 0:81b21910454e | 70 | _CANID201FAIL, |
Dannis_mbed | 0:81b21910454e | 71 | _CANID202FAIL, |
Dannis_mbed | 0:81b21910454e | 72 | _CANID205FAIL, |
Dannis_mbed | 0:81b21910454e | 73 | _CANID1001FAIL, |
Dannis_mbed | 2:f6d058931b17 | 74 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 75 | // IMU messages // |
Dannis_mbed | 2:f6d058931b17 | 76 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 77 | _IMUREADY, |
Dannis_mbed | 0:81b21910454e | 78 | _IMUFAIL, |
Dannis_mbed | 1:b4a0d63db637 | 79 | _ROLLTEST, // roll test displays roll value |
Dannis_mbed | 1:b4a0d63db637 | 80 | _PITCHTEST, // pitch test displays pitch value |
Dannis_mbed | 1:b4a0d63db637 | 81 | _HEIGHTTEST, |
Dannis_mbed | 1:b4a0d63db637 | 82 | _SHOWHEIGHTFB, // display height value |
Dannis_mbed | 2:f6d058931b17 | 83 | _PULSE_IS, |
Dannis_mbed | 1:b4a0d63db637 | 84 | _CAUTION, // Caution screen |
Dannis_mbed | 2:f6d058931b17 | 85 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 86 | // multiple used screens // |
Dannis_mbed | 2:f6d058931b17 | 87 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 88 | _BACK, // Back screen |
Dannis_mbed | 2:f6d058931b17 | 89 | _HOME, // Home screen |
Dannis_mbed | 1:b4a0d63db637 | 90 | _PROGRESS // development screen |
Dannis_mbed | 1:b4a0d63db637 | 91 | }; |
Dannis_mbed | 1:b4a0d63db637 | 92 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 93 | // MENU_t conform menu structure Functioneel_ontwerp_03_20150609 // |
Dannis_mbed | 1:b4a0d63db637 | 94 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 95 | enum MENU_t |
Dannis_mbed | 1:b4a0d63db637 | 96 | { |
Dannis_mbed | 1:b4a0d63db637 | 97 | _MENU0_0 = 0, // Initialize screen |
Dannis_mbed | 1:b4a0d63db637 | 98 | _MENU0_1, // Standby screen |
Dannis_mbed | 2:f6d058931b17 | 99 | |
Dannis_mbed | 1:b4a0d63db637 | 100 | _MENU0_2, // Settings screen |
Dannis_mbed | 2:f6d058931b17 | 101 | _MENU1_20, // Variable settings screen 0 |
Dannis_mbed | 2:f6d058931b17 | 102 | _MENU1_21, // Variable settings screen 1 |
Dannis_mbed | 2:f6d058931b17 | 103 | _MENU1_22, // Variable settings screen 2 |
Dannis_mbed | 2:f6d058931b17 | 104 | _MENU1_23, // Variable settings screen 3 |
Dannis_mbed | 2:f6d058931b17 | 105 | _MENU1_24, // Variable settings screen 4 |
Dannis_mbed | 2:f6d058931b17 | 106 | |
Dannis_mbed | 2:f6d058931b17 | 107 | _MENU2_20, // Variable settings select screen 0 |
Dannis_mbed | 2:f6d058931b17 | 108 | _MENU2_21, // Variable settings select screen 1 |
Dannis_mbed | 2:f6d058931b17 | 109 | _MENU2_22, // Variable settings select screen 2 |
Dannis_mbed | 2:f6d058931b17 | 110 | _MENU2_23, // Variable settings select screen 3 |
Dannis_mbed | 2:f6d058931b17 | 111 | _MENU2_24, // Variable settings select screen 4 |
Dannis_mbed | 2:f6d058931b17 | 112 | _MENU2_25, // Variable settings select screen 5 |
Dannis_mbed | 2:f6d058931b17 | 113 | |
Dannis_mbed | 2:f6d058931b17 | 114 | _MENU3_20, // Variable settings mutatie screen 0 |
Dannis_mbed | 2:f6d058931b17 | 115 | _MENU3_21, // Variable settings mutatie screen 1 |
Dannis_mbed | 2:f6d058931b17 | 116 | _MENU3_22, // Variable settings mutatie screen 2 |
Dannis_mbed | 2:f6d058931b17 | 117 | _MENU3_23, // Variable settings mutatie screen 3 |
Dannis_mbed | 2:f6d058931b17 | 118 | _MENU3_24, // Variable settings mutatie screen 4 |
Dannis_mbed | 2:f6d058931b17 | 119 | _MENU3_25, // Variable settings mutatie screen 5 |
Dannis_mbed | 2:f6d058931b17 | 120 | _MENU3_26, // Variable settings mutatie screen 6 |
Dannis_mbed | 2:f6d058931b17 | 121 | |
Dannis_mbed | 1:b4a0d63db637 | 122 | _MENU0_3, // Viewsettings screen |
Dannis_mbed | 1:b4a0d63db637 | 123 | _MENU1_31, // View roll angle screen |
Dannis_mbed | 1:b4a0d63db637 | 124 | _MENU1_32, // View pitch angle screen |
Dannis_mbed | 1:b4a0d63db637 | 125 | _MENU1_33, // View height settings screen |
Dannis_mbed | 2:f6d058931b17 | 126 | _MENU1_34, // View port height measured |
Dannis_mbed | 2:f6d058931b17 | 127 | |
Dannis_mbed | 1:b4a0d63db637 | 128 | _MENU0_4, // Diagnosis screen |
Dannis_mbed | 1:b4a0d63db637 | 129 | _MENU1_4, // Diagnosis menu screen |
Dannis_mbed | 1:b4a0d63db637 | 130 | |
Dannis_mbed | 2:f6d058931b17 | 131 | _BACKBACK, // Back back |
Dannis_mbed | 2:f6d058931b17 | 132 | _BACKHOME // Back home |
Dannis_mbed | 0:81b21910454e | 133 | }; |
Dannis_mbed | 0:81b21910454e | 134 | |
Dannis_mbed | 0:81b21910454e | 135 | class Menu |
Dannis_mbed | 0:81b21910454e | 136 | { |
Dannis_mbed | 0:81b21910454e | 137 | private: |
Dannis_mbed | 0:81b21910454e | 138 | // variable |
Dannis_mbed | 0:81b21910454e | 139 | |
Dannis_mbed | 0:81b21910454e | 140 | char cTextLine1[18]; |
Dannis_mbed | 0:81b21910454e | 141 | char cTextLine2[18]; |
Dannis_mbed | 1:b4a0d63db637 | 142 | char cStatus; |
Dannis_mbed | 0:81b21910454e | 143 | |
Dannis_mbed | 0:81b21910454e | 144 | SCREEN_t screen; |
Dannis_mbed | 2:f6d058931b17 | 145 | MENU_t menu, nextMenu, prevMenu, confMenu, backToFrom; |
Dannis_mbed | 2:f6d058931b17 | 146 | VALUE_t valueToChange; |
Dannis_mbed | 0:81b21910454e | 147 | |
Dannis_mbed | 0:81b21910454e | 148 | uint32_t uiCounter; |
Dannis_mbed | 0:81b21910454e | 149 | |
Dannis_mbed | 2:f6d058931b17 | 150 | bool bMenu; // true item is menu, false item is value |
Dannis_mbed | 2:f6d058931b17 | 151 | bool bConfirm; // confirm menu or value item |
Dannis_mbed | 2:f6d058931b17 | 152 | bool bReadHeight; // allow writing CAN height module on CANbus |
Dannis_mbed | 0:81b21910454e | 153 | bool bError; |
Dannis_mbed | 0:81b21910454e | 154 | |
Dannis_mbed | 0:81b21910454e | 155 | public: |
Dannis_mbed | 0:81b21910454e | 156 | // Constructor |
Dannis_mbed | 0:81b21910454e | 157 | Menu(); |
Dannis_mbed | 0:81b21910454e | 158 | // Destructor |
Dannis_mbed | 0:81b21910454e | 159 | ~Menu(); |
Dannis_mbed | 0:81b21910454e | 160 | |
Dannis_mbed | 0:81b21910454e | 161 | // Init |
Dannis_mbed | 0:81b21910454e | 162 | void init(void); |
Dannis_mbed | 0:81b21910454e | 163 | // Gets |
Dannis_mbed | 0:81b21910454e | 164 | char* getLine1(void); |
Dannis_mbed | 1:b4a0d63db637 | 165 | char* getLine2(void); |
Dannis_mbed | 1:b4a0d63db637 | 166 | SCREEN_t getScreen(void); |
Dannis_mbed | 1:b4a0d63db637 | 167 | bool bGetReadHeight(void); |
Dannis_mbed | 0:81b21910454e | 168 | |
Dannis_mbed | 0:81b21910454e | 169 | // Sets |
Dannis_mbed | 0:81b21910454e | 170 | |
Dannis_mbed | 0:81b21910454e | 171 | // Other functions |
Dannis_mbed | 1:b4a0d63db637 | 172 | void vShowScreen(SCREEN_t); |
Dannis_mbed | 1:b4a0d63db637 | 173 | void vSelectMenu(MENU_t); |
Dannis_mbed | 1:b4a0d63db637 | 174 | void vRotaryUp(void); |
Dannis_mbed | 1:b4a0d63db637 | 175 | void vRotaryDown(void); |
Dannis_mbed | 1:b4a0d63db637 | 176 | void vRotaryConfirm(void); |
Dannis_mbed | 2:f6d058931b17 | 177 | void vFillString1(void); // Fill string1 upto 16 characters |
Dannis_mbed | 2:f6d058931b17 | 178 | void vFillString2(void); // Fill string2 upto 16 characters |
Dannis_mbed | 1:b4a0d63db637 | 179 | void vCheckReadHeight(void); |
Dannis_mbed | 0:81b21910454e | 180 | |
Dannis_mbed | 0:81b21910454e | 181 | }; |
Dannis_mbed | 0:81b21910454e | 182 | #endif |