Started a gui menuflow

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Touch.cpp

Committer:
ahaas92
Date:
2020-06-11
Revision:
3:b029a3f73a9e

File content as of revision 3:b029a3f73a9e:

#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;
        }       
    }
    
}