AresENSEA-CDF2020
/
AresCDFMainCode_us2
Test
Diff: debug.cpp
- 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