code de la carte IHM avant les bugs et avant le travail effectué avec Melchior

Dependencies:   mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait

Revision:
24:1a13c998c7ac
Parent:
22:c7763a7ec6c7
Child:
27:ff70537a7619
--- a/IHM/ihm.cpp	Fri Jun 26 13:08:54 2020 +0000
+++ b/IHM/ihm.cpp	Wed Jul 08 08:19:16 2020 +0000
@@ -1,7 +1,6 @@
 #include "global.h"
 
 #define VERT 0xFF00FF00
-#define VERT_F 0xFF00C400
 #define ROUGE 0xFFFF0000
 #define BLEU 0xFF0000FF
 #define JAUNE 0xFFFDD835//FEFE00
@@ -46,12 +45,9 @@
 Button FORCE_LAUNCH(0, 600, 400, 100, "Force Launch");
 Button SUIVANT(0,380,200,100,"Suivant");
 ////////////////////////////////////////////////////////////
-unsigned char flag_sd =0;
+
 signed char Bouton_Strat (void);
-void DrawC (int l,int h,int x, int y, unsigned char fill);
-void DrawR (int l,int h,int x, int y, unsigned char fill);
-void DrawA (int l,int h,int x, int y, unsigned char fill);
-void DrawCheck (int l,int h,int x, int y, int cochage);
+
 void SelectionStrat (unsigned char numeroStrat);
 
 /****************************************************************************************/
@@ -69,22 +65,41 @@
     }
     ts.GetState(&TS_State);
     switch (strat_etat_s) {
-        case INIT :
+        case INIT : //intialise l'écran et passe à l'attente d'initialisation des cartes
             ts.GetState(&TS_State);
-            wait(0.15);
-            strat_etat_s=INIT2;
-            break;
-        case INIT2 :
             canProcessRx();
-            FORCE_LAUNCH.Draw(BLEU, 0);
-            while(strat_etat_s == INIT2) {
-                canProcessRx();
-                if(FORCE_LAUNCH.Touched() || (flag_check_carte1 && flag_check_carte2 && flag_sd)) {
-                    strat_etat_s = CHOIX;
-                    while(FORCE_LAUNCH.Touched());
-                }
+            lcd.SetBackColor(LCD_COLOR_WHITE);
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+            lcd.Clear (LCD_COLOR_WHITE);
+            wait(0.15);
+            lcd.DisplayStringAt(0, 10, (uint8_t *)"Verification des cartes", LEFT_MODE);
+            //cartes non verifiées////////////////
+            lcd.SetTextColor(DIY_GREY);
+            lcd.FillRect(0,400,400,150); //carte moteur
+            lcd.FillRect(0,600,400,150); //Balise
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+            lcd.SetBackColor(DIY_GREY);
+            lcd.DisplayStringAt(80, 450, (uint8_t *)"Carte Moteur", LEFT_MODE);
+            lcd.DisplayStringAt(110,650, (uint8_t *)"Balise", LEFT_MODE);
+            ////////////////////////////////////////
+            FORCE_LAUNCH.Draw(0xFFFF0000, 0);
+
+            strat_etat_s=ATT;
+            break;
+
+        case ATT :  //Si les cartes sont présentes passe directement à choix sinon attente de force Launch (cette partie est encore buggée mais les cartes affichent bien leur présence donc faut juste force launch tout le temps...)
+            if (flag_check_carte==1) {
+                strat_etat_s = CHOIX;
+                gameEtat = ETAT_CONFIG;
+            } else if (FORCE_LAUNCH.Touched()) {
+                strat_etat_s = CHOIX;
+                gameEtat = ETAT_CONFIG;
+                while(FORCE_LAUNCH.Touched());
             }
+
             break;
+
+
         case CHOIX :    //Match ou DEMO
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
@@ -146,8 +161,8 @@
                 }
             }
             break;
-            
-            case DEMO2 :
+        
+        case DEMO2 :
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
             lcd.Clear (LCD_COLOR_WHITE);
@@ -173,7 +188,57 @@
                     strat_etat_s = CHOIX;
                 }
             }
-            break;
+        break;
+        
+        case TEST_ASSERVE:
+            lcd.SetBackColor(LCD_COLOR_WHITE);
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+            lcd.Clear (LCD_COLOR_WHITE);
+            lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Asservissements", LEFT_MODE);
+            RETOUR.Draw(0xFFFF0000,0);
+            TEST_A.Draw(BLEU, BLANC);
+            TEST_B.Draw(BLEU, BLANC);
+            while(strat_etat_s==TEST_ASSERVE) {
+                if(RETOUR.Touched()) {
+                    while (RETOUR.Touched());
+                    strat_etat_s=DEMO2;
+                } else if(TEST_A.Touched()) {
+                    while (TEST_A.Touched());
+                    GoToPosition(2000,0,0,0);
+                    TEST_A.Draw(BLEU, BLANC);  
+                }  else if(TEST_B.Touched()) {
+                    while (TEST_B.Touched());
+                    Rotate(3599);
+                    TEST_B.Draw(BLEU, BLANC);
+                }  
+            }
+        break; 
+
+        case TEST_DIVE:
+            
+            while(strat_etat_s==TEST_DIVE) {
+                canProcessRx();
+                lcd.SetBackColor(LCD_COLOR_WHITE);
+                lcd.SetTextColor(LCD_COLOR_BLACK);
+                lcd.Clear (LCD_COLOR_WHITE);
+                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Coordonnees", LEFT_MODE);
+                RETOUR.Draw(0xFFFF0000,0);
+                sprintf(toto,"%hd",x_robot);
+                lcd.DisplayStringAt(0, LINE(10), (unsigned char *)"X :", LEFT_MODE);
+                lcd.DisplayStringAt(50, LINE(10), (unsigned char *)toto, LEFT_MODE);
+                sprintf(toto,"%hd",y_robot);
+                lcd.DisplayStringAt(0, LINE(11), (unsigned char *)"Y :", LEFT_MODE);
+                lcd.DisplayStringAt(50, LINE(11), (unsigned char *)toto, LEFT_MODE);
+                sprintf(toto,"%hd",theta_robot);
+                lcd.DisplayStringAt(0, LINE(12), (unsigned char *)"T :", LEFT_MODE);
+                lcd.DisplayStringAt(50, LINE(12), (unsigned char *) toto, LEFT_MODE);
+                if(RETOUR.Touched()) {
+                    while (RETOUR.Touched());
+                    strat_etat_s=DEMO2;
+                } 
+                wait(0.2);
+            }
+        break;
 
         case TEST_VENTOUSE:   
             lcd.SetBackColor(LCD_COLOR_WHITE);
@@ -239,7 +304,7 @@
             }
             break;
         
-        case TEST_DIVE:
+        case TEST_ELECTROV:
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
             lcd.Clear (LCD_COLOR_WHITE);   
@@ -248,10 +313,10 @@
             RETOUR.Draw(0xFFFF0000,0);
             TEST_A.Draw(BLEU, BLANC);
             TEST_B.Draw(BLEU, BLANC);
-            while(strat_etat_s==TEST_DIVE) {
+            while(strat_etat_s==TEST_ELECTROV) {
                 if(RETOUR.Touched()) {
                     while (RETOUR.Touched());
-                    strat_etat_s=DEMO2;
+                    strat_etat_s=DEMO;
                 } else if(TEST_A.Touched()) {
                     while (TEST_A.Touched());
                     //SendRawId(TEST_ELECTROV_A);
@@ -263,30 +328,7 @@
                 }  
             }
             break;
-        case TEST_ASSERVE:
-            lcd.SetBackColor(LCD_COLOR_WHITE);
-            lcd.SetTextColor(LCD_COLOR_BLACK);
-            lcd.Clear (LCD_COLOR_WHITE);   
-            lcd.Clear (LCD_COLOR_WHITE);
-            lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Asservissements", LEFT_MODE);
-            RETOUR.Draw(0xFFFF0000,0);
-            TEST_A.Draw(BLEU, BLANC);
-            TEST_B.Draw(BLEU, BLANC);
-            while(strat_etat_s==TEST_ASSERVE) {
-                if(RETOUR.Touched()) {
-                    while (RETOUR.Touched());
-                    strat_etat_s=DEMO2;
-                } else if(TEST_A.Touched()) {
-                    while (TEST_A.Touched());
-                    //SendRawId(TEST_ELECTROV_A);
-                    TEST_A.Draw(BLEU, BLANC);
-                }  else if(TEST_B.Touched()) {
-                    while (TEST_B.Touched());
-                    //SendRawId(TEST_ELECTROV_A);
-                    TEST_B.Draw(BLEU, BLANC);
-                }  
-            }
-            break; 
+            
         case TEST_AUD:  
               
             lcd.SetBackColor(LCD_COLOR_WHITE);
@@ -411,12 +453,32 @@
         case TEST_COULEUR:      
             lcd.Clear (LCD_COLOR_WHITE);
             lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Test Couleur", LEFT_MODE);
+            TEST_A.Draw(BLEU, BLANC);
+            TEST_B.Draw(BLEU, BLANC);
+            TEST_C.Draw(BLEU, BLANC);
+            TEST_D.Draw(BLEU, BLANC);
             RETOUR.Draw(0xFFFF0000,0);
             while(strat_etat_s==TEST_COULEUR) {
                 if(RETOUR.Touched()) {
                     while (RETOUR.Touched());
                     strat_etat_s=DEMO;
                     lcd.Clear (LCD_COLOR_WHITE);
+                }else if(TEST_A.Touched()) {
+                    while (TEST_A.Touched());
+                    SendRawId(TEST_BRAS_A);
+                    TEST_A.Draw(BLEU, BLANC);
+                } else if(TEST_B.Touched()) {
+                    while (TEST_B.Touched());
+                    SendRawId(TEST_BRAS_B);
+                    TEST_B.Draw(BLEU, BLANC);
+                } else if(TEST_C.Touched()) {
+                    while (TEST_C.Touched());
+                    SendRawId(TEST_BRAS_C);
+                    TEST_C.Draw(BLEU, BLANC);
+                } else if(TEST_D.Touched()) {
+                    while (TEST_D.Touched());
+                    SendRawId(TEST_BRAS_D);
+                    TEST_D.Draw(BLEU, BLANC);
                 } 
             }
             break;
@@ -461,7 +523,6 @@
             while (strat_etat_s == SELECT_SIDE) {
                 canProcessRx();
                 if(COTE_JAUNE.Touched()) {
-                    
                     Cote = 0x0;
                     InversStrat = Cote;
                     strat_etat_s = TACTIQUE;
@@ -775,85 +836,4 @@
             lcd.DisplayStringAt(150,0, (uint8_t *)strat_sd[Strategie], LEFT_MODE);
             break;
     }
-}
-void demarrage(unsigned char num){
-    switch(num){
-        case 0:
-        lcd.SetBackColor(DIY_GREY);
-        lcd.SetTextColor(NOIR);
-        lcd.Clear (DIY_GREY);
-        DrawC(95,150,0,50,0);
-        DrawR(95,150,105,50,0);
-        DrawA(95,150,210,50,0);
-        DrawC(95,150,315,50,0);
-        DrawCheck(30,30,50,243,0);
-        DrawCheck(30,30,50,293,0);
-        DrawCheck(30,30,50,343,0);
-        DrawCheck(30,30,50,393,0);
-        lcd.DisplayStringAt(100, 250, (uint8_t *)"Init CAN", LEFT_MODE);
-        lcd.DisplayStringAt(100, 300, (uint8_t *)"Micro SD", LEFT_MODE);
-        lcd.DisplayStringAt(100, 350, (uint8_t *)"Carte Moteur", LEFT_MODE);
-        lcd.DisplayStringAt(100, 400, (uint8_t *)"Balise IR", LEFT_MODE);
-        break;
-        case 1://can
-        DrawCheck(30,30,50,250,1);
-        break;
-        case 2://SD
-        DrawCheck(30,30,50,300,1);
-        flag_sd=1;
-        break;
-        case 3://moteur
-        DrawCheck(30,30,50,350,1);
-        break;
-        case 4://balise
-        DrawCheck(30,30,50,400,1);
-        break;
-        default:
-        break;
-}
-}
-void DrawC (int l,int h,int x, int y, unsigned char fill){
-    Point c[8]={{l,0},{l,h/6},{l/5,h/3},{l/5,2*(h/3)},{l,5*(h/6)},{l,h},{0,5*(h/6)},{0,h/6}};
-    for(int a=0;a<8;a++){
-        c[a].X+=x;
-        c[a].Y+=y;
-    }
-    lcd.DrawPolygon(c, 8);
-    
-}
-void DrawR (int l,int h,int x, int y, unsigned char fill){
-    Point r[10]={{0,0},{5*(l/6),0},{l,h/3},{5*(l/6),h/2},{l/2,h/2},{l,h},{2*(l/3),h},{l/4,h/2},{l/4,h},{0,h}};
-    for(int a=0;a<10;a++){
-        r[a].X+=x;
-        r[a].Y+=y;
-    }
-    lcd.DrawPolygon(r, 10);
-}
-void DrawA (int l,int h,int x, int y, unsigned char fill){
-    Point a[8]={{l/4,0},{3*(l/4),0},{l,h},{5*(l/6),h},{4*(l/6),h/2},{2*(l/6),h/2},{l/6,h},{0,h}};
-    for(int z=0;z<8;z++){
-        a[z].X+=x;
-        a[z].Y+=y;
-    }
-    lcd.DrawPolygon(a, 8);
-}
-void DrawCheck (int l,int h,int x, int y, int cochage){
-    if(x<3)x=3;
-    if(cochage == 1){
-        lcd.SetTextColor(VERT_F);
-        lcd.DrawLine(x,y-(h/2),x+l/2,y+h/2);
-        lcd.DrawLine(x-1,y-(h/2),x+l/2,y+h/2+1);
-        lcd.DrawLine(x-2,y-(h/2),x+l/2,y+h/2+2);
-        lcd.DrawLine(x+l/2,y+h/2,x+(4*(l/3)),y);
-        lcd.DrawLine(x+l/2,y+h/2+1,x+(4*(l/3))+1,y);
-        lcd.DrawLine(x+l/2,y+h/2+2,x+(4*(l/3))+2,y);
-        lcd.SetTextColor(NOIR);
-    } else {
-        Point a[4]={{0,0},{l,0},{l,h},{0,h}};
-        for(int z=0;z<8;z++){
-            a[z].X+=x;
-            a[z].Y+=y;
-        }
-        lcd.DrawPolygon(a, 4);
-    }
 }
\ No newline at end of file