Started a gui menuflow

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Revision:
3:b029a3f73a9e
Parent:
2:5828e6917e75
--- a/main.cpp	Tue Jun 09 22:57:20 2020 +0000
+++ b/main.cpp	Thu Jun 11 22:55:06 2020 +0000
@@ -1,167 +1,46 @@
 #include "mbed.h"
 #include "TS_DISCO_F429ZI.h"
 #include "LCD_DISCO_F429ZI.h"
+#include "Screens.h"
+#include "Touch.h"
+#include "main.h"
 
 #define y_max 310
 DigitalOut led1(LED1);
+
 Ticker ts_service;
-
 AnalogIn   pdiff(PC_5);
 AnalogIn   p_guage(PC_4);
 
 LCD_DISCO_F429ZI lcd;
 TS_DISCO_F429ZI ts;
+
 //PwmOut led(LED1);
 PwmOut motor(PB_0);
 
-TS_StateTypeDef TS_State;
-TS_StateTypeDef Old_TS_State;
+
 
 uint8_t text[30];
-uint8_t status;
-
-uint16_t x, y = 0;
-uint16_t touch_x, touch_y = 0;
-bool press_detected = false;
 
 uint16_t setPressure = 0;
-uint8_t isr_text[30];
-uint8_t display_screen = 1;
-
-int showScreen(uint8_t screen)
-{
-    switch(screen) 
-    {
-        case 1 :
-            BSP_LCD_SetFont(&Font20);
-            setPressure = (y*20)/y_max;
-            sprintf((char*)isr_text, "SetP=%2d", setPressure);   
-            lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&isr_text, CENTER_MODE);
-            sprintf((char*)isr_text, "PDIFF=%.2f", (pdiff.read()*6.0f)-0.8f);
-            lcd.DisplayStringAt(0, LINE(2), (uint8_t *)&isr_text, CENTER_MODE);
-            sprintf((char*)isr_text, "PGUAGE=%.2f", (p_guage.read()*38.0f)-10.0f);
-            lcd.DisplayStringAt(0, LINE(3), (uint8_t *)&isr_text, CENTER_MODE);
-            
-            BSP_LCD_SetFont(&Font12);
-            lcd.DrawRect(5, 100, 70, 50);
-            lcd.DrawRect(85, 100, 70, 50);
-            lcd.DrawRect(165, 100, 70, 50);
-            sprintf((char*)isr_text, "  Start");   
-            lcd.DisplayStringAt(10, 130, (uint8_t *)&isr_text, LEFT_MODE);
-            sprintf((char*)isr_text, "Settings");   
-            lcd.DisplayStringAt(95, 130, (uint8_t *)&isr_text, LEFT_MODE);
-            sprintf((char*)isr_text, "Stop");   
-            lcd.DisplayStringAt(170, 130, (uint8_t *)&isr_text, LEFT_MODE);
-            
-            lcd.DrawRect(5, 160, 70, 50);
-            lcd.DrawRect(85, 160, 70, 50);
-            lcd.DrawRect(165, 160, 70, 50);            
-            
-            lcd.DrawRect(5, 220, 70, 50);
-            lcd.DrawRect(85, 220, 70, 50);
-            lcd.DrawRect(165, 220, 70, 50);
-            break;
-        case 2 :
-            BSP_LCD_SetFont(&Font20);
-            setPressure = (y*20)/y_max;
-            sprintf((char*)isr_text, "SetPress=%2d", setPressure);   
-            lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&isr_text, CENTER_MODE);
-            sprintf((char*)isr_text, "PDIFF=%.2f", pdiff.read()*6.0f);
-            lcd.DisplayStringAt(0, LINE(2), (uint8_t *)&isr_text, CENTER_MODE);
-            sprintf((char*)isr_text, "PGUAGE=%.2f", p_guage.read()*38.0f);
-            lcd.DisplayStringAt(0, LINE(3), (uint8_t *)&isr_text, CENTER_MODE);
-            
-            BSP_LCD_SetFont(&Font12);
-            lcd.DrawRect(5, 100, 70, 50);
-            lcd.DrawRect(85, 100, 70, 50);
-            lcd.DrawRect(165, 100, 70, 50);
-            sprintf((char*)isr_text, "  Start");   
-            lcd.DisplayStringAt(10, 130, (uint8_t *)&isr_text, LEFT_MODE);
-            sprintf((char*)isr_text, "Settings");   
-            lcd.DisplayStringAt(95, 130, (uint8_t *)&isr_text, LEFT_MODE);
-            sprintf((char*)isr_text, "  Stop");   
-            lcd.DisplayStringAt(165, 130, (uint8_t *)&isr_text, LEFT_MODE);
-            
-            lcd.DrawRect(5, 160, 70, 50);
-            lcd.DrawRect(85, 160, 70, 50);
-            lcd.DrawRect(165, 160, 70, 50);            
-            
-            lcd.DrawRect(5, 220, 70, 50);
-            lcd.DrawRect(85, 220, 70, 50);
-            lcd.DrawRect(165, 220, 70, 50);
-    }
-    return screen;
-}
-
-void CheckPress()
-{
-    if(press_detected)
-    {
-        display_screen = 2;
-    }
-    
-}
-
-void CheckTs()
-{
-    ts.GetState(&TS_State);      
-    if (TS_State.TouchDetected)
-    {
-        x = TS_State.X;
-        y = TS_State.Y;
-    }
-    if ((Old_TS_State.TouchDetected) && (!TS_State.TouchDetected))
-    {
-     touch_x = x;
-     touch_y = y;
-     press_detected = true;
-    }   
-    Old_TS_State = TS_State;
-}
+ScreenState display_screen = StartUp; // StartScreen 
+uint8_t status = 0;
 
 int main()
 {
     motor.period(0.1f);
-    
-    BSP_LCD_SetFont(&Font20);
-  
-    lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
-    lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE);
-    
-     
+       
+    ts_service.attach(&CheckTs, 0.1); // the address of the function to be attached (flip) and the interval (2 seconds)  
+    status= ts.Init(lcd.GetXSize(), lcd.GetYSize());
+      
     wait(1);
-  
-    status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
-  
-    if (status != TS_OK)
-    {
-      lcd.Clear(LCD_COLOR_RED);
-      lcd.SetBackColor(LCD_COLOR_RED);
-      lcd.SetTextColor(LCD_COLOR_WHITE);
-      lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
-      lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
-    }
-    else
-    {
-      lcd.Clear(LCD_COLOR_GREEN);
-      lcd.SetBackColor(LCD_COLOR_GREEN);
-      lcd.SetTextColor(LCD_COLOR_WHITE);
-      lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
-      lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
-    }
-    
-    wait(1);
-    lcd.Clear(LCD_COLOR_BLUE);
-    lcd.SetBackColor(LCD_COLOR_BLUE);
+    lcd.Clear(LCD_COLOR_DARKGRAY);
+    lcd.SetBackColor(LCD_COLOR_DARKGRAY);
     lcd.SetTextColor(LCD_COLOR_WHITE);
-    
-    ts_service.attach(&CheckTs, 0.2); // the address of the function to be attached (flip) and the interval (2 seconds)
   
     while(1)
     {
-      led1 = !led1;
-      wait(0.2);
-      CheckPress();
-      showScreen(display_screen);
+      CheckPress(display_screen);
+      showScreen(display_screen,lcd);
     }
 }