Last

Dependencies:   BLE_API HCSR04 X_NUCLEO_IDB0XA1 mbed

Fork of contest_IOT5 by Contest IOT GSE5

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers display.h Source File

display.h

00001 
00002 #ifndef DISPLAY_H
00003 #define DISPLAY_H
00004 
00005 #include "mbed.h"
00006 
00007 void pong_init_ttempro(Serial &pc){
00008 
00009     pc.printf("\033[2J");       //Efface la console
00010     pc.printf("\033[?25l");     //Cache le curseur
00011     
00012     for(int i=0; i <= 128 ; i++){
00013         pc.printf("\033[0;%dH",i);     //Place le curseur à 0:0
00014         pc.printf("X");     //Place le curseur à 0:0
00015         pc.printf("\033[32;%dH",i);     //Place le curseur à 0:0
00016         pc.printf("X");     //Place le curseur à 0:0
00017     }
00018     
00019     for(int i=0; i <= 32 ; i++){
00020         pc.printf("\033[%d;0H",i);     //Place le curseur à 0:0
00021         pc.printf("X");     //Place le curseur à 0:0
00022         pc.printf("\033[%d;128H",i);     //Place le curseur à 0:0
00023         pc.printf("X");     //Place le curseur à 0:0
00024     }
00025     
00026 }
00027 
00028 void print_cursor_ttempro(Serial &pc, int *pos1, int *pos1prec, int *pos2, int *pos2prec){
00029     for(int i=0;i<=29;i++){
00030         if( pos1[i] != pos1prec[i] ){
00031             if(pos1[i] == 1){
00032                 pc.printf("\033[%d;3H",i+2);     //Place le curseur à 0:0
00033                 pc.printf("X");     //Place le curseur à 0:0  
00034             }
00035             else{
00036                 pc.printf("\033[%d;3H",i+2);     //Place le curseur à 0:0
00037                 pc.printf(" ");     //Place le curseur à 0:0  
00038             }
00039         }
00040                 
00041         if( pos2[i] != pos2prec[i] ){
00042             if(pos2[i] == 1){
00043                 pc.printf("\033[%d;126H",i+2);     //Place le curseur à 0:0
00044                 pc.printf("X");     //Place le curseur à 0:0  
00045             }
00046             else{
00047                 pc.printf("\033[%d;126H",i+2);     //Place le curseur à 0:0
00048                 pc.printf(" ");     //Place le curseur à 0:0  
00049             }
00050         }   
00051     } 
00052 }
00053 
00054 void set_pos_vector(int *pos, int distance){
00055             
00056     if(distance <= 10){
00057         for(int i=0;i<=5;i++){ pos[i] = 1; }
00058     }
00059     else if(distance >= 34){
00060         for(int i=24;i<=29;i++){ pos[i] = 1; }
00061     }
00062     else{
00063         for(int i=(distance-10);i<=(distance-4);i++){ pos[i] = 1; }
00064     }   
00065 }
00066 
00067 int set_print_ball(Serial &pc, int *pos1,int *pos2,double *posBallX, double *posBallY, double *angBall){
00068     pc.printf("\033[%d;%dH",(int)*posBallY, (int)*posBallX);     //Place le curseur à 0:0
00069     pc.printf(" ");     //Place le curseur à 0:0  
00070     *posBallX = *posBallX + 2.0*cos((double)*angBall*3.1415/180.0);
00071     *posBallY = *posBallY - 2.0*sin((double)*angBall*3.1415/180.0);
00072     
00073     if(*posBallX <= 4){
00074         if(pos1[(int)*posBallY] == 1){
00075             *posBallX = 8 - *posBallX;
00076             *angBall = 180 - *angBall;
00077         }
00078         else{ return 1; }
00079         }
00080     else if(*posBallX >= 125){
00081         if(pos2[(int)*posBallY] == 1){
00082             *posBallX = 250 - *posBallX;
00083             *angBall = 180 - *angBall;
00084         }
00085         else{ return 2; }
00086     }
00087         
00088         
00089     if(*posBallY <= 2){
00090         *posBallY = -*posBallY+4;
00091         *angBall = -*angBall;
00092     }
00093     else if(*posBallY >= 31){
00094         *posBallY = 62 - *posBallY;
00095         *angBall = -*angBall;
00096     }
00097     pc.printf("\033[%d;%dH",(int)*posBallY, (int)*posBallX);     //Place le curseur à 0:0
00098     pc.printf("o");     //Place le curseur à 0:0  
00099     return 3;
00100 }
00101 
00102 
00103 int print_ball(Serial &pc, int *distance1, int *distance2, double *posBallX, double *posBallY){
00104     pc.printf("\033[%d;%dH",(int)*posBallY, (int)*posBallX);     //Place le curseur à 0:0
00105     pc.printf(" ");     //Place le curseur à 0:0  
00106     if(*posBallY <= 50){
00107         if(*distance1 <= 10){
00108             *posBallX = 4;
00109         }
00110         else if(*distance1 >= 34){
00111             *posBallX = 27;
00112         }
00113         else{
00114             *posBallX = *distance1;
00115         }
00116     }
00117     else
00118     {
00119         if(*distance2 <= 10){
00120             *posBallX = 4;
00121         }
00122         else if(*distance2 >= 34){
00123             *posBallX = 27;
00124         }
00125         else{
00126             *posBallX = *distance2;
00127         }
00128     }
00129     pc.printf("\033[%d;%dH",(int)*posBallY, (int)*posBallX);     //Place le curseur à 0:0
00130     pc.printf("o");     //Place le curseur à 0:0  
00131     return 3;
00132 }
00133 
00134 
00135 
00136 #endif