My final year project

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter

Committer:
Generic
Date:
Sat Oct 01 22:49:03 2016 +0000
Revision:
9:355a59fd962b
Parent:
7:1a6e18b818a5
Child:
12:650ae2f4c7df
Fixed compiler errors and screens not switching when zero is saved

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kerneels Bezuidenhout 1:43fb2d03c36f 1 #include "mbed.h"
Kerneels Bezuidenhout 1:43fb2d03c36f 2 #include "Screens.hpp"
Kerneels Bezuidenhout 1:43fb2d03c36f 3
Kerneels Bezuidenhout 1:43fb2d03c36f 4
Kerneels Bezuidenhout 1:43fb2d03c36f 5 void GUIThread();
Kerneels Bezuidenhout 1:43fb2d03c36f 6 void Init();
Kerneels Bezuidenhout 1:43fb2d03c36f 7
Kerneels Bezuidenhout 7:1a6e18b818a5 8 void ZeroPlate();
Kerneels Bezuidenhout 7:1a6e18b818a5 9
Kerneels Bezuidenhout 1:43fb2d03c36f 10 int currentScreen = 0;
Kerneels Bezuidenhout 1:43fb2d03c36f 11 int nextScreen = 0;
Kerneels Bezuidenhout 1:43fb2d03c36f 12 Thread guiThread;
Kerneels Bezuidenhout 1:43fb2d03c36f 13 Screen *activeScreen = NULL;
Kerneels Bezuidenhout 1:43fb2d03c36f 14
Kerneels Bezuidenhout 7:1a6e18b818a5 15 float zeroAlpha;
Kerneels Bezuidenhout 7:1a6e18b818a5 16
Kerneels Bezuidenhout 7:1a6e18b818a5 17 float zeroBeta;
Kerneels Bezuidenhout 7:1a6e18b818a5 18
Kerneels Bezuidenhout 7:1a6e18b818a5 19 bool saved;
Kerneels Bezuidenhout 7:1a6e18b818a5 20
Generic 9:355a59fd962b 21 Serial pc(USBTX,USBRX);
Generic 9:355a59fd962b 22
Kerneels Bezuidenhout 1:43fb2d03c36f 23 int main()
Kerneels Bezuidenhout 1:43fb2d03c36f 24 {
Kerneels Bezuidenhout 1:43fb2d03c36f 25 Init();
Kerneels Bezuidenhout 1:43fb2d03c36f 26
Kerneels Bezuidenhout 1:43fb2d03c36f 27 while(1)
Kerneels Bezuidenhout 1:43fb2d03c36f 28 {
Kerneels Bezuidenhout 7:1a6e18b818a5 29 switch (currentScreen)
Kerneels Bezuidenhout 7:1a6e18b818a5 30 {
Kerneels Bezuidenhout 7:1a6e18b818a5 31 case Screen::ZERO_PLATE_SCREEN :
Kerneels Bezuidenhout 7:1a6e18b818a5 32 ZeroPlate();
Kerneels Bezuidenhout 7:1a6e18b818a5 33 break;
Kerneels Bezuidenhout 7:1a6e18b818a5 34 }
Kerneels Bezuidenhout 1:43fb2d03c36f 35 }
Kerneels Bezuidenhout 1:43fb2d03c36f 36 }
Kerneels Bezuidenhout 1:43fb2d03c36f 37
Kerneels Bezuidenhout 1:43fb2d03c36f 38 void GUIThread()
Kerneels Bezuidenhout 1:43fb2d03c36f 39 {
Kerneels Bezuidenhout 1:43fb2d03c36f 40 while(1)
Kerneels Bezuidenhout 1:43fb2d03c36f 41 {
Kerneels Bezuidenhout 1:43fb2d03c36f 42 if( nextScreen != currentScreen )
Kerneels Bezuidenhout 1:43fb2d03c36f 43 {
Generic 9:355a59fd962b 44 pc.printf("%d\n\r",nextScreen);
Generic 9:355a59fd962b 45
Kerneels Bezuidenhout 1:43fb2d03c36f 46 if( activeScreen != NULL)
Kerneels Bezuidenhout 1:43fb2d03c36f 47 delete activeScreen;
Kerneels Bezuidenhout 1:43fb2d03c36f 48
Kerneels Bezuidenhout 1:43fb2d03c36f 49 switch (nextScreen)
Kerneels Bezuidenhout 1:43fb2d03c36f 50 {
Kerneels Bezuidenhout 7:1a6e18b818a5 51 case Screen::MAIN_MENU_SCREEN :
Kerneels Bezuidenhout 1:43fb2d03c36f 52 activeScreen = new MainMenuScreen(&nextScreen);
Kerneels Bezuidenhout 1:43fb2d03c36f 53 break;
Kerneels Bezuidenhout 7:1a6e18b818a5 54 case Screen::MAIN_SETTINGS_SCREEN :
Kerneels Bezuidenhout 5:383f1108187d 55 activeScreen = new MainSettingsScreen(&nextScreen);
Kerneels Bezuidenhout 5:383f1108187d 56 break;
Kerneels Bezuidenhout 7:1a6e18b818a5 57 case Screen::ZERO_PLATE_SCREEN :
Kerneels Bezuidenhout 7:1a6e18b818a5 58 activeScreen = new ZeroPlateScreen(&nextScreen, &zeroAlpha, &zeroBeta, &saved);
Kerneels Bezuidenhout 7:1a6e18b818a5 59 break;
Kerneels Bezuidenhout 1:43fb2d03c36f 60 }
Kerneels Bezuidenhout 1:43fb2d03c36f 61
Kerneels Bezuidenhout 1:43fb2d03c36f 62 activeScreen->Draw();
Generic 6:f717ce705c5d 63 currentScreen = nextScreen;
Kerneels Bezuidenhout 1:43fb2d03c36f 64 Thread::wait(200);
Kerneels Bezuidenhout 1:43fb2d03c36f 65 }
Kerneels Bezuidenhout 1:43fb2d03c36f 66
Kerneels Bezuidenhout 1:43fb2d03c36f 67 activeScreen->Process();
Kerneels Bezuidenhout 1:43fb2d03c36f 68
Kerneels Bezuidenhout 1:43fb2d03c36f 69 Thread::wait(20);
Kerneels Bezuidenhout 1:43fb2d03c36f 70 }
Kerneels Bezuidenhout 1:43fb2d03c36f 71 }
Kerneels Bezuidenhout 1:43fb2d03c36f 72
Kerneels Bezuidenhout 1:43fb2d03c36f 73 void Init()
Kerneels Bezuidenhout 1:43fb2d03c36f 74 {
Generic 9:355a59fd962b 75 pc.baud(57600);
Kerneels Bezuidenhout 7:1a6e18b818a5 76 saved = false;
Generic 2:5fded6444350 77 nextScreen = Screen::MAIN_MENU_SCREEN;
Kerneels Bezuidenhout 1:43fb2d03c36f 78 guiThread.start(GUIThread);
Kerneels Bezuidenhout 1:43fb2d03c36f 79 }
Kerneels Bezuidenhout 7:1a6e18b818a5 80
Kerneels Bezuidenhout 7:1a6e18b818a5 81 void ZeroPlate()
Kerneels Bezuidenhout 7:1a6e18b818a5 82 {
Kerneels Bezuidenhout 7:1a6e18b818a5 83 if( saved)
Kerneels Bezuidenhout 7:1a6e18b818a5 84 {
Generic 9:355a59fd962b 85 // TODO Save zero position on servos and fix screen not changing
Generic 9:355a59fd962b 86 nextScreen = Screen::MAIN_SETTINGS_SCREEN;
Kerneels Bezuidenhout 7:1a6e18b818a5 87 saved = false;
Kerneels Bezuidenhout 7:1a6e18b818a5 88 }
Generic 9:355a59fd962b 89
Generic 9:355a59fd962b 90 Thread::wait(20);
Kerneels Bezuidenhout 7:1a6e18b818a5 91 }