class virtual touch
touches.cpp@1:99bd999c4225, 2017-12-02 (annotated)
- Committer:
- jlpadiolleau
- Date:
- Sat Dec 02 11:50:33 2017 +0000
- Revision:
- 1:99bd999c4225
- Parent:
- 0:9a2aecfcdf51
Class for virtual touch
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jlpadiolleau | 0:9a2aecfcdf51 | 1 | |
jlpadiolleau | 0:9a2aecfcdf51 | 2 | #include "touches.h" |
jlpadiolleau | 0:9a2aecfcdf51 | 3 | |
jlpadiolleau | 0:9a2aecfcdf51 | 4 | uint8_t readTouchApp(void) |
jlpadiolleau | 0:9a2aecfcdf51 | 5 | { |
jlpadiolleau | 0:9a2aecfcdf51 | 6 | TS_DISCO_F746NG ts; // instanciation du Touch Screen |
jlpadiolleau | 1:99bd999c4225 | 7 | ts.Init(420, 272); |
jlpadiolleau | 0:9a2aecfcdf51 | 8 | TS_StateTypeDef TS_State; // Structure liée au Touch Screen |
jlpadiolleau | 0:9a2aecfcdf51 | 9 | uint16_t X,Y,X1,Y1,X2,Y2; // Coordonnées de la touche et des icônes |
jlpadiolleau | 0:9a2aecfcdf51 | 10 | uint8_t Row,Line,Touch=0; // ligne et colonnes de l'icône |
jlpadiolleau | 0:9a2aecfcdf51 | 11 | ts.GetState(&TS_State); |
jlpadiolleau | 0:9a2aecfcdf51 | 12 | if (TS_State.touchDetected) |
jlpadiolleau | 0:9a2aecfcdf51 | 13 | { |
jlpadiolleau | 0:9a2aecfcdf51 | 14 | X=TS_State.touchX[0]; // Lecture de la coordonnée X de la touche |
jlpadiolleau | 0:9a2aecfcdf51 | 15 | Y=TS_State.touchY[0]; // Lecture de la coordonnée Y de la touche |
jlpadiolleau | 0:9a2aecfcdf51 | 16 | for(Line=0;Line<2;Line++) |
jlpadiolleau | 0:9a2aecfcdf51 | 17 | { |
jlpadiolleau | 0:9a2aecfcdf51 | 18 | for(Row=0;Row<4;Row++) |
jlpadiolleau | 0:9a2aecfcdf51 | 19 | { |
jlpadiolleau | 0:9a2aecfcdf51 | 20 | X1=ICON_H_GAP*(Row+1)+ICON_WIDTH*Row; |
jlpadiolleau | 0:9a2aecfcdf51 | 21 | Y1=ICON_V_GAP*(Line+1)+ICON_HEIGHT*Line; |
jlpadiolleau | 0:9a2aecfcdf51 | 22 | X2=X1+ICON_WIDTH; |
jlpadiolleau | 0:9a2aecfcdf51 | 23 | Y2=X2+ICON_HEIGHT; |
jlpadiolleau | 0:9a2aecfcdf51 | 24 | if((X>X1) && (X<X2) && (Y>Y1)&& (Y<Y2)) Touch=(Line*4)+Row+1; |
jlpadiolleau | 0:9a2aecfcdf51 | 25 | } |
jlpadiolleau | 0:9a2aecfcdf51 | 26 | } |
jlpadiolleau | 0:9a2aecfcdf51 | 27 | |
jlpadiolleau | 0:9a2aecfcdf51 | 28 | } |
jlpadiolleau | 0:9a2aecfcdf51 | 29 | return Touch; |
jlpadiolleau | 0:9a2aecfcdf51 | 30 | } |
jlpadiolleau | 0:9a2aecfcdf51 | 31 | |
jlpadiolleau | 0:9a2aecfcdf51 | 32 | bool readTouchClose(uint16_t X1,uint16_t Y1,uint16_t X2,uint16_t Y2) |
jlpadiolleau | 0:9a2aecfcdf51 | 33 | { |
jlpadiolleau | 0:9a2aecfcdf51 | 34 | TS_DISCO_F746NG ts; // instanciation du Touch Screen |
jlpadiolleau | 0:9a2aecfcdf51 | 35 | TS_StateTypeDef TS_State; // Structure liée au Touch Screen |
jlpadiolleau | 0:9a2aecfcdf51 | 36 | uint16_t X,Y; // Coordonnées de la touche et des icônes |
jlpadiolleau | 0:9a2aecfcdf51 | 37 | bool Touch=false; |
jlpadiolleau | 0:9a2aecfcdf51 | 38 | ts.GetState(&TS_State); |
jlpadiolleau | 0:9a2aecfcdf51 | 39 | if (TS_State.touchDetected) |
jlpadiolleau | 0:9a2aecfcdf51 | 40 | { |
jlpadiolleau | 0:9a2aecfcdf51 | 41 | X=TS_State.touchX[0]; // Lecture de la coordonnée X de la touche |
jlpadiolleau | 0:9a2aecfcdf51 | 42 | Y=TS_State.touchY[0]; // Lecture de la coordonnée Y de la touche |
jlpadiolleau | 0:9a2aecfcdf51 | 43 | X2=X1+ICON_WIDTH; |
jlpadiolleau | 0:9a2aecfcdf51 | 44 | Y2=X2+ICON_HEIGHT; |
jlpadiolleau | 0:9a2aecfcdf51 | 45 | if((X>X1) && (X<X2) && (Y>Y1)&& (Y<Y2)) Touch=true; |
jlpadiolleau | 0:9a2aecfcdf51 | 46 | |
jlpadiolleau | 0:9a2aecfcdf51 | 47 | } |
jlpadiolleau | 0:9a2aecfcdf51 | 48 | return Touch; |
jlpadiolleau | 0:9a2aecfcdf51 | 49 | } |