Last
Dependencies: BLE_API HCSR04 X_NUCLEO_IDB0XA1 mbed
Fork of contest_IOT5 by
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
Generated on Sun Jul 24 2022 23:31:02 by 1.7.2