Capteur_US

Dependencies:   mbed DRV8825

Revision:
0:dc036b67c87c
Child:
1:2fe8c402ee79
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debug.cpp	Wed Jul 08 19:51:28 2020 +0000
@@ -0,0 +1,137 @@
+#include "pins.h"
+
+void serialIT(){
+    //pc.printf("\n\rserialIT on\n\r");
+    static int i=0;
+    static char buffer[10]=""; // Tableau qui contient la chaine de caractère rentrée dans le terminal.
+    static char cmd[Lcmd]=""; // Variable qui retient que les premiers caractères qui représentent la commande.
+    char tampon = pc.getc();
+    
+    if((tampon >= 48 && tampon <=57) || (tampon>=97 && tampon<=122) || tampon==13)
+    {
+        buffer[i]=tampon; // Ajout du caractère dans le tableau buffer
+        pc.putc(buffer[i]); // Réécriture sur le terminal du caractère envoyé
+        i++;
+    }
+
+    if(buffer[i-1]=='\r'){ // Attente un appui sur la touche entrée
+        i=0;
+        copieTab(buffer,cmd); // Sauvegarde la commande dans le tableau cmd
+        cmdChoice(cmd); 
+    }  
+}
+
+void copieTab(char *tab1,char *tab2){ // Fonction qui recopie un tableau dans un autre
+    //pc.printf("\n\rcopieTab on\n\r");
+    //pc.printf("\n\r");
+    for(int j=0;j<Lcmd;j++){
+        tab2[j]=tab1[j];
+        //pc.printf("%c",tab2[j]);
+    }
+    //pc.printf("\n\r");
+}
+
+void cmdChoice(char *cmd){ // Fonction qui permet de choisir de l'activation d'une commande
+    //pc.printf("\n\rcmdChoice on\n\rcmd =");
+    
+    const char *options[]={
+    "help", //0
+    "usao", //1
+    "us1o", //2
+    "us2o", //3
+    "us3o", //4
+    "us4o", //5
+    "us5o", //6
+    "us6o", //7
+    "tdrv", //8
+    "cdon", //9
+    "cdga", //10
+    "cdgb", //11
+    0
+    };
+    
+    long option=-1;
+    
+    for (long a=0; options[a] && option<0; a++){
+        if (!strcmp(cmd,options[a]) || strcmp(cmd,options[a])==1){ // strcmp(cmd,options[a])==1 permet de contourner le problème, à revoir !!!
+            option=a;
+        }
+        //pc.printf("res = %d",strcmp(cmd,options[a]));
+    }
+            
+    switch (option) {
+        case 0:     //help
+            pc.printf("\n\n\r###HELP###\n\r");
+            pc.printf("usao : Affichage resultats capteurs a ultrasons\n\r");
+            pc.printf("usxo : Affichage resultat capteur ultrasons x\n\r");
+            pc.printf("tdrv : Lance la fonction test_drv()\n\r");
+            pc.printf("cdon : Affichage resultats codeurs\n\r");
+            pc.printf("cdgx : Affichage resultats codeur gauche phase x (a ou b)\n\r");
+            pc.printf("\n\r");
+            break;
+        case 1:     //usao
+            pc.printf("Capt US ALL ON/OFF\n\r");
+            aff_US[0]=!aff_US[0];aff_US[1]=!aff_US[1];aff_US[2]=!aff_US[2];
+            aff_US[3]=!aff_US[3];aff_US[4]=!aff_US[4];aff_US[5]=!aff_US[5];
+            break;
+        case 2:     //us1o
+            pc.printf("Capt US 1 ON/OFF\n\r");
+            aff_US[0]=!aff_US[0];
+            break;
+        case 3:     //us2o
+            pc.printf("Capt US 2 ON/OFF\n\r");
+            aff_US[1]=!aff_US[1];
+            break;
+        case 4:     //us3o
+            pc.printf("Capt US 3 ON/OFF\n\r");
+            aff_US[2]=!aff_US[2];
+            break;
+        case 5:     //us4o
+            pc.printf("Capt US 4 ON/OFF\n\r");
+            aff_US[3]=!aff_US[3];
+            break;
+        case 6:     //us5o
+            pc.printf("Capt US 5 ON/OFF\n\r");
+            aff_US[4]=!aff_US[4];
+            break;
+        case 7:     //us6o
+            pc.printf("Capt US 6 ON/OFF\n\r");
+            aff_US[5]=!aff_US[5];
+            break;
+        case 8:     //tdrv
+            pc.printf("Fonction test_drv()\n\r");
+            test_drv();
+            break;
+        case 9:     //cdon
+            pc.printf("Results ALL Encoders ON/OFF\n\r");
+            aff_cd[0]=!aff_cd[0];
+            aff_cd[1]=!aff_cd[1];
+            break;
+        case 10:    //cdga
+            pc.printf("Results Encoder Left A ON/OFF\n\r");
+            aff_cd[0]=!aff_cd[0];
+            break;
+        case 11:    //cdgb
+            pc.printf("Results Encoder Left B ON/OFF\n\r");
+            aff_cd[1]=!aff_cd[1];
+            break;
+        default:
+            pc.printf("Commande invalide\n\r");
+    }
+}
+
+void affUltrasons(){
+    if(aff_US[0]) printf("Tps US1 = %5.0f uS\n\r", us_out[0]); 
+    if(aff_US[1]) printf("Tps US2 = %5.0f uS\n\r", us_out[1]); 
+    if(aff_US[2]) printf("Tps US3 = %5.0f uS\n\r", us_out[2]); 
+    if(aff_US[3]) printf("Tps US4 = %5.0f uS\n\r", us_out[3]); 
+    if(aff_US[4]) printf("Tps US5 = %5.0f uS\n\r", us_out[4]); 
+    if(aff_US[5]) printf("Tps US6 = %5.0f uS\n\r", us_out[5]);
+    if(aff_US[0]||aff_US[1]||aff_US[2]||aff_US[3]||aff_US[4]||aff_US[5]) printf("\n\r"); 
+}
+
+void affCodeurs(){
+    if(aff_cd[0]) printf("CdgA = %d\n\r", cpt_cdgA);   
+    if(aff_cd[1]) printf("CdgB = %d\n\r", cpt_cdgB); 
+}    
+    
\ No newline at end of file