class virtual touch
Diff: touches.cpp
- Revision:
- 0:9a2aecfcdf51
- Child:
- 1:99bd999c4225
diff -r 000000000000 -r 9a2aecfcdf51 touches.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/touches.cpp Thu Nov 09 19:50:06 2017 +0000 @@ -0,0 +1,48 @@ + +#include "touches.h" + +uint8_t readTouchApp(void) +{ + TS_DISCO_F746NG ts; // instanciation du Touch Screen + TS_StateTypeDef TS_State; // Structure liée au Touch Screen + uint16_t X,Y,X1,Y1,X2,Y2; // Coordonnées de la touche et des icônes + uint8_t Row,Line,Touch=0; // ligne et colonnes de l'icône + ts.GetState(&TS_State); + if (TS_State.touchDetected) + { + X=TS_State.touchX[0]; // Lecture de la coordonnée X de la touche + Y=TS_State.touchY[0]; // Lecture de la coordonnée Y de la touche + for(Line=0;Line<2;Line++) + { + for(Row=0;Row<4;Row++) + { + X1=ICON_H_GAP*(Row+1)+ICON_WIDTH*Row; + Y1=ICON_V_GAP*(Line+1)+ICON_HEIGHT*Line; + X2=X1+ICON_WIDTH; + Y2=X2+ICON_HEIGHT; + if((X>X1) && (X<X2) && (Y>Y1)&& (Y<Y2)) Touch=(Line*4)+Row+1; + } + } + + } + return Touch; +} + +bool readTouchClose(uint16_t X1,uint16_t Y1,uint16_t X2,uint16_t Y2) +{ + TS_DISCO_F746NG ts; // instanciation du Touch Screen + TS_StateTypeDef TS_State; // Structure liée au Touch Screen + uint16_t X,Y; // Coordonnées de la touche et des icônes + bool Touch=false; + ts.GetState(&TS_State); + if (TS_State.touchDetected) + { + X=TS_State.touchX[0]; // Lecture de la coordonnée X de la touche + Y=TS_State.touchY[0]; // Lecture de la coordonnée Y de la touche + X2=X1+ICON_WIDTH; + Y2=X2+ICON_HEIGHT; + if((X>X1) && (X<X2) && (Y>Y1)&& (Y<Y2)) Touch=true; + + } + return Touch; +} \ No newline at end of file