My final year project

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter

Revision:
7:1a6e18b818a5
Parent:
6:f717ce705c5d
Child:
9:355a59fd962b
--- a/main.cpp	Sat Oct 01 21:06:08 2016 +0000
+++ b/main.cpp	Sun Oct 02 00:00:48 2016 +0200
@@ -5,18 +5,31 @@
 void GUIThread();
 void Init();
 
+void ZeroPlate();
+
 int currentScreen = 0;
 int nextScreen = 0;
 Thread guiThread;
 Screen *activeScreen = NULL;
 
+float zeroAlpha;
+
+float zeroBeta;
+
+bool saved;
+
 int main()
 {
   Init();
 
   while(1)
   {
-    // TODO Add hardware logic
+    switch (currentScreen)
+    {
+      case Screen::ZERO_PLATE_SCREEN :
+        ZeroPlate();
+        break;
+    }
   }
 }
 
@@ -31,12 +44,15 @@
 
       switch (nextScreen)
       {
-        case Screen::MAIN_MENU_SCREEN:
+        case Screen::MAIN_MENU_SCREEN :
           activeScreen = new MainMenuScreen(&nextScreen);
           break;
-        case Screen::MAIN_SETTINGS_SCREEN:
+        case Screen::MAIN_SETTINGS_SCREEN :
           activeScreen = new MainSettingsScreen(&nextScreen);
           break;
+        case Screen::ZERO_PLATE_SCREEN :
+          activeScreen = new ZeroPlateScreen(&nextScreen, &zeroAlpha, &zeroBeta, &saved);
+          break;
       }
 
       activeScreen->Draw();
@@ -52,6 +68,17 @@
 
 void Init()
 {
+  saved = false;
   nextScreen = Screen::MAIN_MENU_SCREEN;
   guiThread.start(GUIThread);
 }
+
+void ZeroPlate()
+{
+  if( saved)
+  {
+    // TODO Save zero position on servos
+    saved = false;
+    nextScreen = MAIN_SETTINGS_SCREEN;
+  }
+}