version 1.0
Dependencies: CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed
Fork of SolarOnFoils_MainModule_20150518 by
menu.cpp@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 | #include "menu.h" |
Dannis_mbed | 0:81b21910454e | 2 | #include "string.h" |
Dannis_mbed | 0:81b21910454e | 3 | |
Dannis_mbed | 1:b4a0d63db637 | 4 | #define DEVICE_ID 201 |
Dannis_mbed | 0:81b21910454e | 5 | |
Dannis_mbed | 0:81b21910454e | 6 | // Contructor |
Dannis_mbed | 0:81b21910454e | 7 | Menu::Menu() : |
Dannis_mbed | 0:81b21910454e | 8 | uiCounter(0), |
Dannis_mbed | 1:b4a0d63db637 | 9 | bMenu(1), |
Dannis_mbed | 1:b4a0d63db637 | 10 | bReadHeight(0), |
Dannis_mbed | 0:81b21910454e | 11 | bError(0) |
Dannis_mbed | 0:81b21910454e | 12 | { |
Dannis_mbed | 0:81b21910454e | 13 | init(); |
Dannis_mbed | 0:81b21910454e | 14 | }; |
Dannis_mbed | 0:81b21910454e | 15 | |
Dannis_mbed | 0:81b21910454e | 16 | Menu::~Menu() |
Dannis_mbed | 0:81b21910454e | 17 | { |
Dannis_mbed | 0:81b21910454e | 18 | }; |
Dannis_mbed | 0:81b21910454e | 19 | |
Dannis_mbed | 1:b4a0d63db637 | 20 | extern Menu mLCDMenu; |
Dannis_mbed | 0:81b21910454e | 21 | extern SystemVar svSoF; |
Dannis_mbed | 0:81b21910454e | 22 | extern Serial debug; |
Dannis_mbed | 1:b4a0d63db637 | 23 | extern CAN CANbus; |
Dannis_mbed | 0:81b21910454e | 24 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 25 | // init // |
Dannis_mbed | 0:81b21910454e | 26 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 27 | void Menu::init(void) |
Dannis_mbed | 0:81b21910454e | 28 | { |
Dannis_mbed | 0:81b21910454e | 29 | memset (cTextLine1,' ',16); |
Dannis_mbed | 0:81b21910454e | 30 | memset (cTextLine2,' ',16); |
Dannis_mbed | 0:81b21910454e | 31 | } |
Dannis_mbed | 0:81b21910454e | 32 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 33 | // set's // |
Dannis_mbed | 0:81b21910454e | 34 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 35 | |
Dannis_mbed | 0:81b21910454e | 36 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 37 | // get's // |
Dannis_mbed | 0:81b21910454e | 38 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 39 | char* Menu::getLine1(void) |
Dannis_mbed | 0:81b21910454e | 40 | { |
Dannis_mbed | 0:81b21910454e | 41 | static char* pLine1; |
Dannis_mbed | 0:81b21910454e | 42 | pLine1 = cTextLine1; |
Dannis_mbed | 0:81b21910454e | 43 | return pLine1; |
Dannis_mbed | 0:81b21910454e | 44 | } |
Dannis_mbed | 0:81b21910454e | 45 | |
Dannis_mbed | 0:81b21910454e | 46 | char* Menu::getLine2(void) |
Dannis_mbed | 0:81b21910454e | 47 | { |
Dannis_mbed | 0:81b21910454e | 48 | static char* pLine2; |
Dannis_mbed | 0:81b21910454e | 49 | pLine2 = cTextLine2; |
Dannis_mbed | 0:81b21910454e | 50 | return pLine2; |
Dannis_mbed | 0:81b21910454e | 51 | } |
Dannis_mbed | 0:81b21910454e | 52 | |
Dannis_mbed | 1:b4a0d63db637 | 53 | SCREEN_t Menu::getScreen(void) |
Dannis_mbed | 1:b4a0d63db637 | 54 | { |
Dannis_mbed | 1:b4a0d63db637 | 55 | return screen; |
Dannis_mbed | 1:b4a0d63db637 | 56 | } |
Dannis_mbed | 1:b4a0d63db637 | 57 | |
Dannis_mbed | 1:b4a0d63db637 | 58 | bool Menu::bGetReadHeight(void) |
Dannis_mbed | 1:b4a0d63db637 | 59 | { |
Dannis_mbed | 1:b4a0d63db637 | 60 | return bReadHeight; |
Dannis_mbed | 1:b4a0d63db637 | 61 | } |
Dannis_mbed | 0:81b21910454e | 62 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 63 | // other // |
Dannis_mbed | 0:81b21910454e | 64 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 65 | void Menu::vRotaryUp(void) |
Dannis_mbed | 1:b4a0d63db637 | 66 | { |
Dannis_mbed | 2:f6d058931b17 | 67 | if((nextMenu != _BACKBACK)||(nextMenu != _BACKHOME)) backToFrom = nextMenu; // remember previous menu exept back and home |
Dannis_mbed | 1:b4a0d63db637 | 68 | if(bMenu) vSelectMenu(nextMenu); |
Dannis_mbed | 2:f6d058931b17 | 69 | else if(!bMenu) |
Dannis_mbed | 2:f6d058931b17 | 70 | { |
Dannis_mbed | 2:f6d058931b17 | 71 | svSoF.vIncrease(valueToChange); // to construct |
Dannis_mbed | 2:f6d058931b17 | 72 | vSelectMenu(nextMenu); |
Dannis_mbed | 2:f6d058931b17 | 73 | } |
Dannis_mbed | 1:b4a0d63db637 | 74 | vCheckReadHeight(); |
Dannis_mbed | 2:f6d058931b17 | 75 | //debug.printf("backToFrom %i\r\n", backToFrom); |
Dannis_mbed | 1:b4a0d63db637 | 76 | } |
Dannis_mbed | 1:b4a0d63db637 | 77 | |
Dannis_mbed | 1:b4a0d63db637 | 78 | void Menu::vRotaryDown(void) |
Dannis_mbed | 1:b4a0d63db637 | 79 | { |
Dannis_mbed | 2:f6d058931b17 | 80 | if((nextMenu != _BACKBACK)||(nextMenu != _BACKHOME)) backToFrom = nextMenu; // remember previous menu exept back and home |
Dannis_mbed | 1:b4a0d63db637 | 81 | if(bMenu) vSelectMenu(prevMenu); |
Dannis_mbed | 2:f6d058931b17 | 82 | else if(!bMenu) |
Dannis_mbed | 2:f6d058931b17 | 83 | { |
Dannis_mbed | 2:f6d058931b17 | 84 | svSoF.vDecrease(valueToChange); // to construct |
Dannis_mbed | 2:f6d058931b17 | 85 | vSelectMenu(nextMenu); |
Dannis_mbed | 2:f6d058931b17 | 86 | } |
Dannis_mbed | 1:b4a0d63db637 | 87 | vCheckReadHeight(); |
Dannis_mbed | 2:f6d058931b17 | 88 | //debug.printf("backToFrom %i\r\n", backToFrom); |
Dannis_mbed | 1:b4a0d63db637 | 89 | } |
Dannis_mbed | 1:b4a0d63db637 | 90 | |
Dannis_mbed | 1:b4a0d63db637 | 91 | void Menu::vRotaryConfirm(void) |
Dannis_mbed | 1:b4a0d63db637 | 92 | { |
Dannis_mbed | 1:b4a0d63db637 | 93 | if(bMenu) vSelectMenu(confMenu); |
Dannis_mbed | 2:f6d058931b17 | 94 | else if (!bMenu) |
Dannis_mbed | 2:f6d058931b17 | 95 | { |
Dannis_mbed | 2:f6d058931b17 | 96 | bMenu = true; |
Dannis_mbed | 2:f6d058931b17 | 97 | vSelectMenu(confMenu); |
Dannis_mbed | 2:f6d058931b17 | 98 | } |
Dannis_mbed | 1:b4a0d63db637 | 99 | //debug.printf("rotary confirm\r\n"); |
Dannis_mbed | 1:b4a0d63db637 | 100 | } |
Dannis_mbed | 1:b4a0d63db637 | 101 | |
Dannis_mbed | 1:b4a0d63db637 | 102 | void Menu::vFillString1(void) |
Dannis_mbed | 1:b4a0d63db637 | 103 | { |
Dannis_mbed | 1:b4a0d63db637 | 104 | int i; |
Dannis_mbed | 1:b4a0d63db637 | 105 | int length = strlen(cTextLine1); |
Dannis_mbed | 1:b4a0d63db637 | 106 | for (i=length; i < 16; i++) strcat(cTextLine1," "); |
Dannis_mbed | 1:b4a0d63db637 | 107 | } |
Dannis_mbed | 1:b4a0d63db637 | 108 | |
Dannis_mbed | 0:81b21910454e | 109 | void Menu::vFillString2(void) |
Dannis_mbed | 0:81b21910454e | 110 | { |
Dannis_mbed | 0:81b21910454e | 111 | int i; |
Dannis_mbed | 0:81b21910454e | 112 | int length = strlen(cTextLine2); |
Dannis_mbed | 0:81b21910454e | 113 | for (i=length; i < 16; i++) strcat(cTextLine2," "); |
Dannis_mbed | 0:81b21910454e | 114 | } |
Dannis_mbed | 0:81b21910454e | 115 | |
Dannis_mbed | 2:f6d058931b17 | 116 | void Menu::vCheckReadHeight(void) // used for project demo only |
Dannis_mbed | 1:b4a0d63db637 | 117 | { |
Dannis_mbed | 1:b4a0d63db637 | 118 | if(bReadHeight) |
Dannis_mbed | 1:b4a0d63db637 | 119 | { |
Dannis_mbed | 1:b4a0d63db637 | 120 | cStatus = 0xff; |
Dannis_mbed | 1:b4a0d63db637 | 121 | CANbus.write(CANMessage(DEVICE_ID, &cStatus, 1)); // send clearance true to port height |
Dannis_mbed | 1:b4a0d63db637 | 122 | } |
Dannis_mbed | 1:b4a0d63db637 | 123 | else |
Dannis_mbed | 1:b4a0d63db637 | 124 | { |
Dannis_mbed | 1:b4a0d63db637 | 125 | cStatus = 0x00; |
Dannis_mbed | 2:f6d058931b17 | 126 | CANbus.write(CANMessage(DEVICE_ID, &cStatus, 1)); // send clearance false to port height |
Dannis_mbed | 1:b4a0d63db637 | 127 | } |
Dannis_mbed | 1:b4a0d63db637 | 128 | } |
Dannis_mbed | 1:b4a0d63db637 | 129 | |
Dannis_mbed | 0:81b21910454e | 130 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 131 | // show screens // |
Dannis_mbed | 0:81b21910454e | 132 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 133 | void Menu::vShowScreen(SCREEN_t s) |
Dannis_mbed | 0:81b21910454e | 134 | { |
Dannis_mbed | 0:81b21910454e | 135 | screen = s; |
Dannis_mbed | 0:81b21910454e | 136 | uiCounter = rand()% 100 + 1; |
Dannis_mbed | 0:81b21910454e | 137 | switch(screen) |
Dannis_mbed | 0:81b21910454e | 138 | { |
Dannis_mbed | 2:f6d058931b17 | 139 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 140 | // base screens // |
Dannis_mbed | 2:f6d058931b17 | 141 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 142 | case _INIT: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 0:81b21910454e | 143 | strcpy(cTextLine2," Initialize "); break; |
Dannis_mbed | 0:81b21910454e | 144 | |
Dannis_mbed | 1:b4a0d63db637 | 145 | case _STANDBY: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 1:b4a0d63db637 | 146 | strcpy(cTextLine2," system STANDBY "); break; |
Dannis_mbed | 2:f6d058931b17 | 147 | |
Dannis_mbed | 2:f6d058931b17 | 148 | case _ACTIVE: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 2:f6d058931b17 | 149 | strcpy(cTextLine2," system ACTIVE "); break; |
Dannis_mbed | 2:f6d058931b17 | 150 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 151 | // menulayer 0 settings // |
Dannis_mbed | 2:f6d058931b17 | 152 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 153 | case _SETTINGS0: strcpy(cTextLine1,">Settings "); |
Dannis_mbed | 1:b4a0d63db637 | 154 | strcpy(cTextLine2," View settings "); break; |
Dannis_mbed | 1:b4a0d63db637 | 155 | |
Dannis_mbed | 2:f6d058931b17 | 156 | case _SETTINGS1: strcpy(cTextLine1,">View settings "); |
Dannis_mbed | 2:f6d058931b17 | 157 | strcpy(cTextLine2," Diagnosis "); break; |
Dannis_mbed | 1:b4a0d63db637 | 158 | |
Dannis_mbed | 1:b4a0d63db637 | 159 | case _SETTINGS2: strcpy(cTextLine1," View settings "); |
Dannis_mbed | 1:b4a0d63db637 | 160 | strcpy(cTextLine2,">Diagnosis "); break; |
Dannis_mbed | 2:f6d058931b17 | 161 | |
Dannis_mbed | 2:f6d058931b17 | 162 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 163 | // menulayer 1 settings // |
Dannis_mbed | 2:f6d058931b17 | 164 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 165 | case _SYSTEMVAR0: strcpy(cTextLine1,">Safety margins "); |
Dannis_mbed | 2:f6d058931b17 | 166 | strcpy(cTextLine2," Take-off speed "); break; |
Dannis_mbed | 0:81b21910454e | 167 | |
Dannis_mbed | 2:f6d058931b17 | 168 | case _SYSTEMVAR1: strcpy(cTextLine1,">Take-off speed "); |
Dannis_mbed | 2:f6d058931b17 | 169 | strcpy(cTextLine2," Height F-borne "); break; |
Dannis_mbed | 2:f6d058931b17 | 170 | |
Dannis_mbed | 2:f6d058931b17 | 171 | case _SYSTEMVAR2: strcpy(cTextLine1,">Height f-borne "); |
Dannis_mbed | 2:f6d058931b17 | 172 | strcpy(cTextLine2," Height f-assist"); break; |
Dannis_mbed | 2:f6d058931b17 | 173 | |
Dannis_mbed | 2:f6d058931b17 | 174 | case _SYSTEMVAR3: strcpy(cTextLine1,">Height f-assist"); |
Dannis_mbed | 2:f6d058931b17 | 175 | strcpy(cTextLine2," AOA f-assist "); break; |
Dannis_mbed | 2:f6d058931b17 | 176 | |
Dannis_mbed | 2:f6d058931b17 | 177 | case _SYSTEMVAR4: strcpy(cTextLine1,">AOA f-assist "); |
Dannis_mbed | 2:f6d058931b17 | 178 | strcpy(cTextLine2," Back "); break; |
Dannis_mbed | 2:f6d058931b17 | 179 | |
Dannis_mbed | 2:f6d058931b17 | 180 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 181 | // menulayer 2 settings // |
Dannis_mbed | 2:f6d058931b17 | 182 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 183 | case _SYSTEMVARSELECT0: strcpy(cTextLine1," Agree to change"); |
Dannis_mbed | 2:f6d058931b17 | 184 | strcpy(cTextLine2,">Roll angle "); break; |
Dannis_mbed | 2:f6d058931b17 | 185 | |
Dannis_mbed | 2:f6d058931b17 | 186 | case _SYSTEMVARSELECT1: strcpy(cTextLine1," Agree to change"); |
Dannis_mbed | 2:f6d058931b17 | 187 | strcpy(cTextLine2,">Pitch angle "); break; |
Dannis_mbed | 2:f6d058931b17 | 188 | |
Dannis_mbed | 2:f6d058931b17 | 189 | case _SYSTEMVARSELECT2: strcpy(cTextLine1," Agree to change"); |
Dannis_mbed | 2:f6d058931b17 | 190 | strcpy(cTextLine2,">Take-off speed "); break; |
Dannis_mbed | 2:f6d058931b17 | 191 | |
Dannis_mbed | 2:f6d058931b17 | 192 | case _SYSTEMVARSELECT3: strcpy(cTextLine1," Agree to change"); |
Dannis_mbed | 2:f6d058931b17 | 193 | strcpy(cTextLine2,">Height f-borne "); break; |
Dannis_mbed | 2:f6d058931b17 | 194 | |
Dannis_mbed | 2:f6d058931b17 | 195 | case _SYSTEMVARSELECT4: strcpy(cTextLine1," Agree to change"); |
Dannis_mbed | 2:f6d058931b17 | 196 | strcpy(cTextLine2,">Height f-assist"); break; |
Dannis_mbed | 2:f6d058931b17 | 197 | |
Dannis_mbed | 2:f6d058931b17 | 198 | case _SYSTEMVARSELECT5: strcpy(cTextLine1," Agree to change"); |
Dannis_mbed | 2:f6d058931b17 | 199 | strcpy(cTextLine2,">AOA f-assist "); break; |
Dannis_mbed | 2:f6d058931b17 | 200 | |
Dannis_mbed | 2:f6d058931b17 | 201 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 202 | // menulayer 2 settings // |
Dannis_mbed | 2:f6d058931b17 | 203 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 204 | case _MUTATESYSTEMVAR0: svSoF.cShowValue(_MAXROLL); |
Dannis_mbed | 2:f6d058931b17 | 205 | strcpy(cTextLine1," max roll angle "); |
Dannis_mbed | 2:f6d058931b17 | 206 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 207 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 208 | strcat(cTextLine2,"\xDF"); |
Dannis_mbed | 2:f6d058931b17 | 209 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 210 | |
Dannis_mbed | 2:f6d058931b17 | 211 | case _MUTATESYSTEMVAR1: svSoF.cShowValue(_MINPITCH); |
Dannis_mbed | 2:f6d058931b17 | 212 | strcpy(cTextLine1," min pitch angle"); |
Dannis_mbed | 2:f6d058931b17 | 213 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 214 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 215 | strcat(cTextLine2,"\xDF"); |
Dannis_mbed | 2:f6d058931b17 | 216 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 217 | |
Dannis_mbed | 2:f6d058931b17 | 218 | case _MUTATESYSTEMVAR2: svSoF.cShowValue(_MAXPITCH); |
Dannis_mbed | 2:f6d058931b17 | 219 | strcpy(cTextLine1," max pitch angle "); |
Dannis_mbed | 2:f6d058931b17 | 220 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 221 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 222 | strcat(cTextLine2,"\xDF"); |
Dannis_mbed | 2:f6d058931b17 | 223 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 224 | |
Dannis_mbed | 2:f6d058931b17 | 225 | case _MUTATESYSTEMVAR3: svSoF.cShowValue(_TAKEOFFSPEED); |
Dannis_mbed | 2:f6d058931b17 | 226 | strcpy(cTextLine1," max T-O speed "); |
Dannis_mbed | 2:f6d058931b17 | 227 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 228 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 229 | strcat(cTextLine2,"knots"); |
Dannis_mbed | 2:f6d058931b17 | 230 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 231 | |
Dannis_mbed | 2:f6d058931b17 | 232 | case _MUTATESYSTEMVAR4: svSoF.cShowValue(_HEIGHTFOILBORNE); |
Dannis_mbed | 2:f6d058931b17 | 233 | strcpy(cTextLine1," foilborne height"); |
Dannis_mbed | 2:f6d058931b17 | 234 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 235 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 236 | strcat(cTextLine2,"cm."); |
Dannis_mbed | 2:f6d058931b17 | 237 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 238 | |
Dannis_mbed | 2:f6d058931b17 | 239 | case _MUTATESYSTEMVAR5: svSoF.cShowValue(_HEIGHTFOILASSIST); |
Dannis_mbed | 2:f6d058931b17 | 240 | strcpy(cTextLine1," f-assist height "); |
Dannis_mbed | 2:f6d058931b17 | 241 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 242 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 243 | strcat(cTextLine2,"cm."); |
Dannis_mbed | 2:f6d058931b17 | 244 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 245 | |
Dannis_mbed | 2:f6d058931b17 | 246 | case _MUTATESYSTEMVAR6: svSoF.cShowValue(_AOAFOILASSIST); |
Dannis_mbed | 2:f6d058931b17 | 247 | strcpy(cTextLine1," AOA foil assist "); |
Dannis_mbed | 2:f6d058931b17 | 248 | strcpy(cTextLine2," "); |
Dannis_mbed | 2:f6d058931b17 | 249 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 2:f6d058931b17 | 250 | strcat(cTextLine2,"\xDF"); |
Dannis_mbed | 2:f6d058931b17 | 251 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 252 | |
Dannis_mbed | 2:f6d058931b17 | 253 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 254 | // Multiple used screens // |
Dannis_mbed | 2:f6d058931b17 | 255 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 256 | case _BACK: strcpy(cTextLine1,">Back "); |
Dannis_mbed | 2:f6d058931b17 | 257 | strcpy(cTextLine2," Home "); break; |
Dannis_mbed | 2:f6d058931b17 | 258 | |
Dannis_mbed | 2:f6d058931b17 | 259 | case _HOME: strcpy(cTextLine1," Back "); |
Dannis_mbed | 2:f6d058931b17 | 260 | strcpy(cTextLine2,">Home "); break; |
Dannis_mbed | 2:f6d058931b17 | 261 | |
Dannis_mbed | 2:f6d058931b17 | 262 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 263 | // CAN messages // |
Dannis_mbed | 2:f6d058931b17 | 264 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 265 | |
Dannis_mbed | 1:b4a0d63db637 | 266 | case _FOILBORNE: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 1:b4a0d63db637 | 267 | strcpy(cTextLine2," FOILBORNE mode "); break; |
Dannis_mbed | 1:b4a0d63db637 | 268 | |
Dannis_mbed | 1:b4a0d63db637 | 269 | case _FOILASSIST: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 1:b4a0d63db637 | 270 | strcpy(cTextLine2," FOILASSIST mode"); break; |
Dannis_mbed | 1:b4a0d63db637 | 271 | |
Dannis_mbed | 1:b4a0d63db637 | 272 | case _HOMESCREEN: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 2:f6d058931b17 | 273 | strcpy(cTextLine2,">Home "); break; |
Dannis_mbed | 1:b4a0d63db637 | 274 | |
Dannis_mbed | 1:b4a0d63db637 | 275 | case _PROGRESS: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 1:b4a0d63db637 | 276 | strcpy(cTextLine2,"work in progress"); break; |
Dannis_mbed | 2:f6d058931b17 | 277 | |
Dannis_mbed | 2:f6d058931b17 | 278 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 279 | // CAN messages // |
Dannis_mbed | 2:f6d058931b17 | 280 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 281 | case _CANINIT: strcpy(cTextLine1," Solar on Foils "); |
Dannis_mbed | 1:b4a0d63db637 | 282 | strcpy(cTextLine2," CAN INITIALIZE "); break; |
Dannis_mbed | 0:81b21910454e | 283 | |
Dannis_mbed | 1:b4a0d63db637 | 284 | case _CANOK: strcpy(cTextLine2," System OK "); break; |
Dannis_mbed | 0:81b21910454e | 285 | |
Dannis_mbed | 0:81b21910454e | 286 | case _CANID101OK: strcpy(cTextLine1," PORT FOIL "); |
Dannis_mbed | 0:81b21910454e | 287 | strcpy(cTextLine2," CAN OK "); break; |
Dannis_mbed | 0:81b21910454e | 288 | case _CANID102OK: strcpy(cTextLine1," STARB FOIL "); |
Dannis_mbed | 0:81b21910454e | 289 | strcpy(cTextLine2," CAN OK "); break; |
Dannis_mbed | 0:81b21910454e | 290 | case _CANID201OK: strcpy(cTextLine1," PORT HEIGHT "); |
Dannis_mbed | 0:81b21910454e | 291 | strcpy(cTextLine2," CAN OK "); break; |
Dannis_mbed | 0:81b21910454e | 292 | case _CANID202OK: strcpy(cTextLine1," STARB HEIGHT "); |
Dannis_mbed | 0:81b21910454e | 293 | strcpy(cTextLine2," CAN OK "); break; |
Dannis_mbed | 0:81b21910454e | 294 | case _CANID205OK: strcpy(cTextLine1," GYRO/GPS "); |
Dannis_mbed | 0:81b21910454e | 295 | strcpy(cTextLine2," CAN OK "); break; |
Dannis_mbed | 0:81b21910454e | 296 | case _CANID1001OK: strcpy(cTextLine1," EXTERN UI "); |
Dannis_mbed | 0:81b21910454e | 297 | strcpy(cTextLine2," CAN OK "); break; |
Dannis_mbed | 0:81b21910454e | 298 | case _CANID101FAIL: strcpy(cTextLine1," PORT FOIL "); |
Dannis_mbed | 0:81b21910454e | 299 | strcpy(cTextLine2," CAN FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 300 | case _CANID102FAIL: strcpy(cTextLine1," STARB FOIL "); |
Dannis_mbed | 0:81b21910454e | 301 | strcpy(cTextLine2," CAN FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 302 | case _CANID201FAIL: strcpy(cTextLine1," PORT HEIGHT "); |
Dannis_mbed | 0:81b21910454e | 303 | strcpy(cTextLine2," CAN FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 304 | case _CANID202FAIL: strcpy(cTextLine1," STARB HEIGHT "); |
Dannis_mbed | 0:81b21910454e | 305 | strcpy(cTextLine2," CAN FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 306 | case _CANID205FAIL: strcpy(cTextLine1," GYRO/GPS "); |
Dannis_mbed | 0:81b21910454e | 307 | strcpy(cTextLine2," CAN FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 308 | case _CANID1001FAIL: strcpy(cTextLine1," EXTERN UI "); |
Dannis_mbed | 0:81b21910454e | 309 | strcpy(cTextLine2," CAN FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 310 | |
Dannis_mbed | 0:81b21910454e | 311 | case _CANFAIL: strcpy(cTextLine2," System FAIL "); break; |
Dannis_mbed | 0:81b21910454e | 312 | |
Dannis_mbed | 0:81b21910454e | 313 | case _CANNORESPONSE: strcpy(cTextLine2," No CAN responce"); break; |
Dannis_mbed | 0:81b21910454e | 314 | |
Dannis_mbed | 0:81b21910454e | 315 | case _PULSE_IS: strcpy(cTextLine1,"Pulse is: "); |
Dannis_mbed | 0:81b21910454e | 316 | // char *intStr = itoa(uiCounter); |
Dannis_mbed | 0:81b21910454e | 317 | //string str = string(intStr); |
Dannis_mbed | 0:81b21910454e | 318 | // strcpy(cTextLine2, intStr); // about to test |
Dannis_mbed | 0:81b21910454e | 319 | break; |
Dannis_mbed | 2:f6d058931b17 | 320 | |
Dannis_mbed | 2:f6d058931b17 | 321 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 322 | // IMU messages // |
Dannis_mbed | 2:f6d058931b17 | 323 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 324 | case _IMUREADY: strcpy(cTextLine1,"MPU9150 is ready"); break; |
Dannis_mbed | 0:81b21910454e | 325 | |
Dannis_mbed | 2:f6d058931b17 | 326 | case _IMUFAIL: strcpy(cTextLine1,"MPU9150init fail"); break; |
Dannis_mbed | 2:f6d058931b17 | 327 | |
Dannis_mbed | 2:f6d058931b17 | 328 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 2:f6d058931b17 | 329 | // Test screens // |
Dannis_mbed | 2:f6d058931b17 | 330 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 0:81b21910454e | 331 | case _ROLLTEST: svSoF.cShowValue(_ROLL); |
Dannis_mbed | 0:81b21910454e | 332 | strcpy(cTextLine1," Confirm to end "); |
Dannis_mbed | 0:81b21910454e | 333 | strcpy(cTextLine2,"Roll: "); |
Dannis_mbed | 0:81b21910454e | 334 | if(svSoF.iGetRollPolarity()!= 0) strcat(cTextLine2,"+"); |
Dannis_mbed | 0:81b21910454e | 335 | else strcat(cTextLine2,"-"); |
Dannis_mbed | 0:81b21910454e | 336 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 0:81b21910454e | 337 | strcat(cTextLine2,"\xDF"); |
Dannis_mbed | 0:81b21910454e | 338 | vFillString2(); break; |
Dannis_mbed | 0:81b21910454e | 339 | |
Dannis_mbed | 0:81b21910454e | 340 | case _PITCHTEST: svSoF.cShowValue(_PITCH); |
Dannis_mbed | 0:81b21910454e | 341 | strcpy(cTextLine1," Confirm to end "); |
Dannis_mbed | 0:81b21910454e | 342 | strcpy(cTextLine2,"Pitch:"); |
Dannis_mbed | 0:81b21910454e | 343 | if(svSoF.iGetPitchPolarity()!= 0) strcat(cTextLine2,"+"); |
Dannis_mbed | 0:81b21910454e | 344 | else strcat(cTextLine2,"-"); |
Dannis_mbed | 0:81b21910454e | 345 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 0:81b21910454e | 346 | strcat(cTextLine2,"\xDF"); |
Dannis_mbed | 1:b4a0d63db637 | 347 | vFillString2(); break; |
Dannis_mbed | 1:b4a0d63db637 | 348 | |
Dannis_mbed | 1:b4a0d63db637 | 349 | case _HEIGHTTEST: svSoF.cShowValue(_PHEIGHT); |
Dannis_mbed | 1:b4a0d63db637 | 350 | strcpy(cTextLine1," Confirm to end "); |
Dannis_mbed | 1:b4a0d63db637 | 351 | strcpy(cTextLine2,"Port:"); |
Dannis_mbed | 1:b4a0d63db637 | 352 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 1:b4a0d63db637 | 353 | strcat(cTextLine2," cm."); |
Dannis_mbed | 1:b4a0d63db637 | 354 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 355 | |
Dannis_mbed | 1:b4a0d63db637 | 356 | case _SHOWHEIGHTFB: svSoF.cShowValue(_HEIGHTFOILBORNE); |
Dannis_mbed | 1:b4a0d63db637 | 357 | strcpy(cTextLine1," Confirm to end "); |
Dannis_mbed | 1:b4a0d63db637 | 358 | strcpy(cTextLine2,"Height:"); |
Dannis_mbed | 1:b4a0d63db637 | 359 | strcat(cTextLine2, svSoF.getValue()); |
Dannis_mbed | 1:b4a0d63db637 | 360 | strcat(cTextLine2," cm."); |
Dannis_mbed | 2:f6d058931b17 | 361 | vFillString2(); break; |
Dannis_mbed | 2:f6d058931b17 | 362 | } // End switch case |
Dannis_mbed | 0:81b21910454e | 363 | if(strlen(cTextLine1) > 18) strcpy(cTextLine1," Line overflow "); |
Dannis_mbed | 0:81b21910454e | 364 | if(strlen(cTextLine2) > 18) strcpy(cTextLine2," Line overflow "); |
Dannis_mbed | 0:81b21910454e | 365 | } |
Dannis_mbed | 0:81b21910454e | 366 | |
Dannis_mbed | 1:b4a0d63db637 | 367 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 368 | // select menu screens // |
Dannis_mbed | 1:b4a0d63db637 | 369 | ////////////////////////////////////////////////////////////////////////////////////// |
Dannis_mbed | 1:b4a0d63db637 | 370 | void Menu::vSelectMenu(MENU_t m) |
Dannis_mbed | 1:b4a0d63db637 | 371 | { |
Dannis_mbed | 1:b4a0d63db637 | 372 | menu = m; |
Dannis_mbed | 1:b4a0d63db637 | 373 | switch(menu) |
Dannis_mbed | 1:b4a0d63db637 | 374 | { |
Dannis_mbed | 1:b4a0d63db637 | 375 | case _MENU0_0: mLCDMenu.vShowScreen(_INIT); nextMenu = _MENU0_1; break; |
Dannis_mbed | 1:b4a0d63db637 | 376 | |
Dannis_mbed | 2:f6d058931b17 | 377 | case _MENU0_1: mLCDMenu.vShowScreen(_STANDBY); nextMenu = prevMenu = confMenu = _MENU0_2; break; |
Dannis_mbed | 1:b4a0d63db637 | 378 | |
Dannis_mbed | 2:f6d058931b17 | 379 | case _MENU0_2: mLCDMenu.vShowScreen(_SETTINGS0); nextMenu = _MENU0_3; prevMenu = _MENU0_4; confMenu = _MENU1_20; break; |
Dannis_mbed | 1:b4a0d63db637 | 380 | |
Dannis_mbed | 1:b4a0d63db637 | 381 | case _MENU0_3: mLCDMenu.vShowScreen(_SETTINGS1); nextMenu = _MENU0_4; prevMenu = _MENU0_2; confMenu = _MENU1_31; break; |
Dannis_mbed | 1:b4a0d63db637 | 382 | |
Dannis_mbed | 1:b4a0d63db637 | 383 | case _MENU0_4: mLCDMenu.vShowScreen(_SETTINGS2); nextMenu = _MENU0_2; prevMenu = _MENU0_3; confMenu = _MENU1_4; break; |
Dannis_mbed | 1:b4a0d63db637 | 384 | |
Dannis_mbed | 2:f6d058931b17 | 385 | case _MENU1_20: mLCDMenu.vShowScreen(_SYSTEMVAR0); nextMenu = _MENU1_21; prevMenu = _MENU1_20; confMenu = _MENU2_20; break; |
Dannis_mbed | 2:f6d058931b17 | 386 | |
Dannis_mbed | 2:f6d058931b17 | 387 | case _MENU1_21: mLCDMenu.vShowScreen(_SYSTEMVAR1); nextMenu = _MENU1_22; prevMenu = _MENU1_20; confMenu = _MENU2_21; break; |
Dannis_mbed | 2:f6d058931b17 | 388 | |
Dannis_mbed | 2:f6d058931b17 | 389 | case _MENU1_22: mLCDMenu.vShowScreen(_SYSTEMVAR2); nextMenu = _MENU1_23; prevMenu = _MENU1_21; confMenu = _MENU2_22; break; |
Dannis_mbed | 2:f6d058931b17 | 390 | |
Dannis_mbed | 2:f6d058931b17 | 391 | case _MENU1_23: mLCDMenu.vShowScreen(_SYSTEMVAR3); nextMenu = _MENU1_24; prevMenu = _MENU1_22; confMenu = _MENU2_23; break; |
Dannis_mbed | 2:f6d058931b17 | 392 | |
Dannis_mbed | 2:f6d058931b17 | 393 | case _MENU1_24: mLCDMenu.vShowScreen(_SYSTEMVAR4); nextMenu = _BACKBACK; prevMenu = _MENU1_23; confMenu = _MENU2_24; break; |
Dannis_mbed | 2:f6d058931b17 | 394 | |
Dannis_mbed | 2:f6d058931b17 | 395 | case _MENU2_20: mLCDMenu.vShowScreen(_SYSTEMVARSELECT0); nextMenu = _MENU2_21; prevMenu = _MENU2_20; confMenu = _MENU3_20; valueToChange = _MAXROLL; break; |
Dannis_mbed | 2:f6d058931b17 | 396 | |
Dannis_mbed | 2:f6d058931b17 | 397 | case _MENU2_21: mLCDMenu.vShowScreen(_SYSTEMVARSELECT1); nextMenu = _MENU2_22; prevMenu = _MENU2_20; confMenu = _MENU3_21; valueToChange = _MINPITCH; break; |
Dannis_mbed | 2:f6d058931b17 | 398 | |
Dannis_mbed | 2:f6d058931b17 | 399 | case _MENU2_22: mLCDMenu.vShowScreen(_SYSTEMVARSELECT2); nextMenu = _MENU2_23; prevMenu = _MENU2_21; confMenu = _MENU3_23; valueToChange = _TAKEOFFSPEED; break; |
Dannis_mbed | 2:f6d058931b17 | 400 | |
Dannis_mbed | 2:f6d058931b17 | 401 | case _MENU2_23: mLCDMenu.vShowScreen(_SYSTEMVARSELECT3); nextMenu = _MENU2_24; prevMenu = _MENU2_22; confMenu = _MENU3_24; valueToChange = _HEIGHTFOILBORNE; break; |
Dannis_mbed | 2:f6d058931b17 | 402 | |
Dannis_mbed | 2:f6d058931b17 | 403 | case _MENU2_24: mLCDMenu.vShowScreen(_SYSTEMVARSELECT4); nextMenu = _MENU2_25; prevMenu = _MENU2_23; confMenu = _MENU3_25; valueToChange = _HEIGHTFOILASSIST; break; |
Dannis_mbed | 1:b4a0d63db637 | 404 | |
Dannis_mbed | 2:f6d058931b17 | 405 | case _MENU2_25: mLCDMenu.vShowScreen(_SYSTEMVARSELECT5); nextMenu = _BACKBACK; prevMenu = _MENU2_24; confMenu = _MENU3_26; valueToChange = _AOAFOILASSIST; break; |
Dannis_mbed | 2:f6d058931b17 | 406 | |
Dannis_mbed | 2:f6d058931b17 | 407 | // system variabele aanpassen |
Dannis_mbed | 2:f6d058931b17 | 408 | case _MENU3_20: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR0); confMenu = _MENU2_20; break; |
Dannis_mbed | 2:f6d058931b17 | 409 | |
Dannis_mbed | 2:f6d058931b17 | 410 | case _MENU3_21: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR1); confMenu = _MENU3_22; valueToChange = _MAXPITCH; break; |
Dannis_mbed | 2:f6d058931b17 | 411 | |
Dannis_mbed | 2:f6d058931b17 | 412 | case _MENU3_22: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR2); confMenu = _MENU2_21; break; |
Dannis_mbed | 2:f6d058931b17 | 413 | |
Dannis_mbed | 2:f6d058931b17 | 414 | case _MENU3_23: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR3); confMenu = _MENU2_22; break; |
Dannis_mbed | 1:b4a0d63db637 | 415 | |
Dannis_mbed | 2:f6d058931b17 | 416 | case _MENU3_24: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR4); confMenu = _MENU2_23; break; |
Dannis_mbed | 2:f6d058931b17 | 417 | |
Dannis_mbed | 2:f6d058931b17 | 418 | case _MENU3_25: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR5); confMenu = _MENU2_24; break; |
Dannis_mbed | 2:f6d058931b17 | 419 | |
Dannis_mbed | 2:f6d058931b17 | 420 | case _MENU3_26: bMenu = false; mLCDMenu.vShowScreen(_MUTATESYSTEMVAR6); confMenu = _MENU2_25; break; |
Dannis_mbed | 2:f6d058931b17 | 421 | |
Dannis_mbed | 2:f6d058931b17 | 422 | |
Dannis_mbed | 2:f6d058931b17 | 423 | case _MENU1_4: mLCDMenu.vShowScreen(_PROGRESS); nextMenu = _MENU0_2; prevMenu = _MENU0_3; confMenu = _MENU1_20; break; |
Dannis_mbed | 2:f6d058931b17 | 424 | |
Dannis_mbed | 2:f6d058931b17 | 425 | case _MENU1_31: mLCDMenu.vShowScreen(_ROLLTEST); nextMenu = _MENU1_32; prevMenu = _BACKHOME; confMenu = _MENU1_31; break; |
Dannis_mbed | 1:b4a0d63db637 | 426 | |
Dannis_mbed | 1:b4a0d63db637 | 427 | case _MENU1_32: mLCDMenu.vShowScreen(_PITCHTEST); nextMenu = _MENU1_33; prevMenu = _MENU1_31; confMenu = _MENU1_32; break; |
Dannis_mbed | 1:b4a0d63db637 | 428 | |
Dannis_mbed | 1:b4a0d63db637 | 429 | case _MENU1_33: mLCDMenu.vShowScreen(_SHOWHEIGHTFB); bReadHeight = false; nextMenu = _MENU1_34; prevMenu = _MENU1_32; confMenu = _MENU1_33; break; |
Dannis_mbed | 1:b4a0d63db637 | 430 | |
Dannis_mbed | 2:f6d058931b17 | 431 | case _MENU1_34: mLCDMenu.vShowScreen(_HEIGHTTEST); bReadHeight = true; nextMenu = _BACKHOME; prevMenu = _MENU1_33; confMenu = _MENU1_34; break; |
Dannis_mbed | 2:f6d058931b17 | 432 | // Todo confMenu to previous menu layer |
Dannis_mbed | 2:f6d058931b17 | 433 | case _BACKBACK: mLCDMenu.vShowScreen(_BACK); bReadHeight = false; nextMenu = _BACKHOME; prevMenu = backToFrom; confMenu = _MENU0_2; break; |
Dannis_mbed | 1:b4a0d63db637 | 434 | |
Dannis_mbed | 2:f6d058931b17 | 435 | case _BACKHOME: mLCDMenu.vShowScreen(_HOME); bReadHeight = false; nextMenu = _BACKHOME; prevMenu = _BACKBACK; confMenu = _MENU0_2; break; |
Dannis_mbed | 1:b4a0d63db637 | 436 | |
Dannis_mbed | 1:b4a0d63db637 | 437 | }//end switch |
Dannis_mbed | 1:b4a0d63db637 | 438 | } |
Dannis_mbed | 0:81b21910454e | 439 |