version 1.0
Dependencies: CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed
Fork of SolarOnFoils_MainModule_20150518 by
Diff: menu.cpp
- Revision:
- 0:81b21910454e
- Child:
- 1:b4a0d63db637
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menu.cpp Tue Jun 23 13:55:28 2015 +0000 @@ -0,0 +1,148 @@ +#include "menu.h" +#include "string.h" + + +// Contructor +Menu::Menu() : + uiCounter(0), + bError(0) + { + init(); + }; + +Menu::~Menu() +{ +}; + +extern SystemVar svSoF; +extern Serial debug; +////////////////////////////////////////////////////////////////////////////////////// +// init // +////////////////////////////////////////////////////////////////////////////////////// +void Menu::init(void) +{ + memset (cTextLine1,' ',16); + memset (cTextLine2,' ',16); +} +////////////////////////////////////////////////////////////////////////////////////// +// set's // +////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////// +// get's // +////////////////////////////////////////////////////////////////////////////////////// +char* Menu::getLine1(void) +{ + static char* pLine1; + pLine1 = cTextLine1; + return pLine1; +} + +char* Menu::getLine2(void) +{ + static char* pLine2; + pLine2 = cTextLine2; + return pLine2; +} + +////////////////////////////////////////////////////////////////////////////////////// +// other // +////////////////////////////////////////////////////////////////////////////////////// +void Menu::vFillString2(void) +{ + int i; + int length = strlen(cTextLine2); + for (i=length; i < 16; i++) strcat(cTextLine2," "); +} + +////////////////////////////////////////////////////////////////////////////////////// +// show screens // +////////////////////////////////////////////////////////////////////////////////////// + +void Menu::cShowScreen(SCREEN_t s) +{ + screen = s; + uiCounter = rand()% 100 + 1; + switch(screen) + { + case _INIT: strcpy(cTextLine1," Solar on Foils "); + strcpy(cTextLine2," Initialize "); break; + + case _STANDBY: strcpy(cTextLine1,"STANDBY"); + strcpy(cTextLine2," Solar on Foils "); break; + + case _ACTIVE: strcpy(cTextLine1,"ACTIVE"); + strcpy(cTextLine2," Solar on Foils "); break; + + case _FOILBORNE: strcpy(cTextLine1,"FOILBORNE"); + strcpy(cTextLine2," Solar on Foils "); break; + + case _CANINIT: strcpy(cTextLine1,"CAN INITIALIZE"); + strcpy(cTextLine2," Solar on Foils "); break; + + case _CANOK: strcpy(cTextLine2,"System OK "); break; + + case _CANID101OK: strcpy(cTextLine1," PORT FOIL "); + strcpy(cTextLine2," CAN OK "); break; + case _CANID102OK: strcpy(cTextLine1," STARB FOIL "); + strcpy(cTextLine2," CAN OK "); break; + case _CANID201OK: strcpy(cTextLine1," PORT HEIGHT "); + strcpy(cTextLine2," CAN OK "); break; + case _CANID202OK: strcpy(cTextLine1," STARB HEIGHT "); + strcpy(cTextLine2," CAN OK "); break; + case _CANID205OK: strcpy(cTextLine1," GYRO/GPS "); + strcpy(cTextLine2," CAN OK "); break; + case _CANID1001OK: strcpy(cTextLine1," EXTERN UI "); + strcpy(cTextLine2," CAN OK "); break; + case _CANID101FAIL: strcpy(cTextLine1," PORT FOIL "); + strcpy(cTextLine2," CAN FAIL "); break; + case _CANID102FAIL: strcpy(cTextLine1," STARB FOIL "); + strcpy(cTextLine2," CAN FAIL "); break; + case _CANID201FAIL: strcpy(cTextLine1," PORT HEIGHT "); + strcpy(cTextLine2," CAN FAIL "); break; + case _CANID202FAIL: strcpy(cTextLine1," STARB HEIGHT "); + strcpy(cTextLine2," CAN FAIL "); break; + case _CANID205FAIL: strcpy(cTextLine1," GYRO/GPS "); + strcpy(cTextLine2," CAN FAIL "); break; + case _CANID1001FAIL: strcpy(cTextLine1," EXTERN UI "); + strcpy(cTextLine2," CAN FAIL "); break; + + case _CANFAIL: strcpy(cTextLine2," System FAIL "); break; + + case _CANNORESPONSE: strcpy(cTextLine2," No CAN responce"); break; + + case _PULSE_IS: strcpy(cTextLine1,"Pulse is: "); +// char *intStr = itoa(uiCounter); + //string str = string(intStr); +// strcpy(cTextLine2, intStr); // about to test + break; + case _IMUREADY: strcpy(cTextLine1,"MPU9150 is ready"); break; + + case _IMUFAIL: strcpy(cTextLine1,"MPU9150init fail"); break; + + case _ROLLTEST: svSoF.cShowValue(_ROLL); + strcpy(cTextLine1," Confirm to end "); + strcpy(cTextLine2,"Roll: "); + if(svSoF.iGetRollPolarity()!= 0) strcat(cTextLine2,"+"); + else strcat(cTextLine2,"-"); + strcat(cTextLine2, svSoF.getValue()); + strcat(cTextLine2,"\xDF"); + vFillString2(); break; + + case _PITCHTEST: svSoF.cShowValue(_PITCH); + strcpy(cTextLine1," Confirm to end "); + strcpy(cTextLine2,"Pitch:"); + if(svSoF.iGetPitchPolarity()!= 0) strcat(cTextLine2,"+"); + else strcat(cTextLine2,"-"); + strcat(cTextLine2, svSoF.getValue()); + strcat(cTextLine2,"\xDF"); + vFillString2(); break; + + } // End switch case + //debug.printf("strlen %i\t", strlen(cTextLine2)); // debug stringlength + if(strlen(cTextLine1) > 18) strcpy(cTextLine1," Line overflow "); + if(strlen(cTextLine2) > 18) strcpy(cTextLine2," Line overflow "); + // \xDF for degree sign. +} + +