![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Started a gui menuflow
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
Diff: Touch.cpp
- Revision:
- 3:b029a3f73a9e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Touch.cpp Thu Jun 11 22:55:06 2020 +0000 @@ -0,0 +1,176 @@ +#include "Touch.h" +#include "main.h" +#include "Screens.h" + +// in Bigbutton position same as draw big button position +// out 1 touch detected 0 no touch detected + +uint16_t x, y = 0; +uint16_t touch_x, touch_y = 0; +bool press_detected = false; + +TS_StateTypeDef TS_State; +TS_StateTypeDef Old_TS_State; + +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; +} + + +bool CheckBigButtonTouch (uint8_t position) +{ + bool result = false; + if((touch_x >= BigButtonX) && (touch_x<=(BigButtonX + BigButtonWidth))) + { + switch(position) + { + case 1: + if((touch_y >= BigButton1Y)&&(touch_y <= (BigButton1Y+BigButtonHeight))) + { + result = true; + press_detected = false; + } + break; + case 2: + if((touch_y >= BigButton1Y)&&(touch_y <= (BigButton2Y+BigButtonHeight))) + { + result = true; + press_detected = false; + } + break; + case 3: + if((touch_y >= BigButton3Y)&&(touch_y <= (BigButton3Y+BigButtonHeight))) + { + result = true; + press_detected = false; + } + break; + case 4: + if((touch_y >= BigButton4Y)&&(touch_y <= (BigButton4Y+BigButtonHeight))) + { + result = true; + press_detected = false; + } + break; + + } + } + + return result; +} + +void CheckPress(ScreenState screen) +{ + if(press_detected) + { + switch(screen) + { + case StartUp: + //Mode Cpap + if(CheckBigButtonTouch(1)) + { + display_screen = CPAPMain; + refreshScreen = true; + break; + } + // Mode niv + if(CheckBigButtonTouch (2)) + { + display_screen = NIVMain; + refreshScreen = true; + break; + } + break; + case CPAPMain : + //Mode Cpap + if(CheckBigButtonTouch(1)) + { + display_screen = CPAPRunning; // Start CPAP + refreshScreen = true; + break; + } + // Mode niv + if(CheckBigButtonTouch (2)) // Settings CPAP + { + display_screen = CPAPSettingsMain; + refreshScreen = true; + break; + } + if(CheckBigButtonTouch (3)) + { + display_screen = StartUp; // Back to main screen + refreshScreen = true; + break; + } + break; + case NIVMain : + if(CheckBigButtonTouch(1)) + { + display_screen = NIVRunning; // Start NIV + refreshScreen = true; + break; + } + // Mode niv + if(CheckBigButtonTouch (2)) // Settings NIV + { + display_screen = NIVSettingsMain; + refreshScreen = true; + break; + } + if(CheckBigButtonTouch (3)) // Back + { + display_screen = StartUp; // Back to main screen + refreshScreen = true; + break; + } + break; + case CPAPRunning: + break; + case CPAPSettingsMain: + if(CheckBigButtonTouch(1)) + { + //display_screen = NIVRunning; // Start NIV + refreshScreen = true; + break; + } + // Mode niv + if(CheckBigButtonTouch (2)) // Settings NIV + { + //display_screen = NIVSettingsMain; + refreshScreen = true; + break; + } + if(CheckBigButtonTouch (4)) // Back + { + display_screen = CPAPMain; // Back to main screen + refreshScreen = true; + break; + } + break; + case CPAPSettingsDetailView: + break; + case NIVRunning: + break; + case NIVSettingsMain: + break; + case NIVSettingsDetailView: + break; + default: + break; + } + } + +}