sequences des strats
Strategie.cpp
- Committer:
- JimmyAREM
- Date:
- 2019-05-30
- Revision:
- 7:392aa81893eb
- Parent:
- 6:db41c3f7245e
- Child:
- 8:55fe932fd696
File content as of revision 7:392aa81893eb:
#include "Strategie.h" char bufferScore[3]= {'0','0','0'}; bool typeMovement = DEPLACEMENT_AVANT; int typeEvitement = ARRET; extern bool finActions; extern int distanceUltrasonGauche; extern int distanceUltrasonDroit; extern int distanceUltrasonArriere; extern int distanceTOF1; extern int distanceTOF2; extern int distanceTOF3; extern int distanceTOF4; extern int distanceTOF5; extern bool stopCapteurs; Timeout tempsArretMvt; void updateAndWriteScore(char n1, char n2, char n3) { bufferScore[0] = n1; bufferScore[1] = n2; bufferScore[2] = n3; write(bufferScore); } void LectureI2CCarteCapteur(deplacement robot) { traitementBufferCapteurs(); if(AnalyseDistance(distanceUltrasonGauche, distanceUltrasonDroit, distanceUltrasonArriere, typeMovement) == ROBOT) { if( ((distanceUltrasonGauche <= 300) || (distanceUltrasonDroit <= 300)) && (typeMovement == DEPLACEMENT_AVANT) ) { stopCapteurs = true; } else if ( (distanceUltrasonArriere <= 300) && (typeMovement == DEPLACEMENT_ARRIERE) ) { stopCapteurs = true; } else { stopCapteurs = false; } } else { stopCapteurs = false; } } void arretSystem() { deplacement robot; robot.initialisation(); robot.arreterRobot(); } /*---------Debut Strategie homologation violet ------------------------------------------------------*/ void strategieHomologationViolet(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initViolet(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; while(tempsMatch <= TEMPSMATCH) { if(finActions == true) { etapeMatch++; finActions = false; } switch (etapeMatch) { case 0 : { /* On tourne pour aller vers le terrain adverse et on avance jusqu'au milieu du terrain */ typeMovement = DEPLACEMENT_AVANT; robot.ligne_droite_basique(3000); robot.rotation_rel(90); //robot.ligne_droite_basique(127500); etapeMatch++; break; default: { robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); } } } //Arrêter les moteurs robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); while(1); } } /*-------Fin Stratégie homologation violet------------------------------------------------------------*/ /*-------Debut Strategie homologation jaune-----------------------------------------------------------*/ void strategieHomologationJaune(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initJaune(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; while(tempsMatch <= TEMPSMATCH) { switch (etapeMatch) { case 0 : { /* On tourne pour aller vers le terrain adverse et on avance jusqu'au milieu du terrain */ typeMovement = DEPLACEMENT_AVANT; robot.ligne_droite_basique(3000); robot.rotation_rel(-90); //robot.ligne_droite_basique(127500); etapeMatch++; break; } default: { robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); } } } //Arrêter les moteurs robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); while(1); } /*Fin Strategie homologation jaune -------------------------------------------------------------------*/ /*Debut Strategie classique violet -------------------------------------------------------------------*/ void strategieClassiqueViolet(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initViolet(); robot.initialisation();//check si modif lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; while(tempsMatch <= TEMPSMATCH) { switch (etapeMatch) { case 0 : { /* On active l'expérience */ typeMovement = DEPLACEMENT_AVANT; robot.ligne_droite_basique(26500); robot.poussette(300); updateAndWriteScore('0', '4', '0'); etapeMatch++; break; } default: { robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); } } } //Arrêter les moteurs robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); while(1); } /*-------- Fin Strategie classique violet -----------------------------------------------*/ /*------- Debut Strategie classique Jaune -----------------------------------------------*/ void strategieClassiqueJaune(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, 100.0); initJaune(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; while(tempsMatch <= TEMPSMATCH) { switch (etapeMatch) { case 0 : { /* On active l'expérience */ typeMovement = DEPLACEMENT_AVANT; robot.ligne_droite_basique(26500); robot.poussette(300); updateAndWriteScore('0', '4', '0'); etapeMatch++; break; } default: { robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); } } } //Arrêter les moteurs robot.vitesse_nulle_D(0); robot.vitesse_nulle_G(0); motors_stop(); while(1); } /*--------- Fin Strategie classique jaune --------------------------------------------*/ /*--------- Debut Strategie RCVA violet ----------------------------------------------*/ void strategieRCVAViolet(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initViolet(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; } /*-------- Fin Strategie RCVA violet -----------------------------------------------*/ /*-------- Debut Strategie RCVA jaune -----------------------------------------------*/ void strategieRCVAJaune(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initJaune(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; } /*-------- Fin Strategie RCVA jaune --------------------------------------------------*/ /*-------- Debut Strategie humiliation violet ---------------------------------------*/ void strategieHumiliationViolet(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initViolet(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; } /*--------- Fin Strategie humiliation violet ----------------------------------------*/ /*-------- Debut Strategie humiliation jaune ----------------------------------------*/ void strategieHumiliationJaune(deplacement robot, Demarreur demarreur) { write(bufferScore); Timer tempsMatch; // timer en seconde int etapeMatch = 0; while(demarreur.getState() == false) { //on attend //pc.printf("On attend le depart du Robot Thanos\n\r"); } tempsArretMvt.attach(&arretSystem, TEMPSMATCH); initJaune(); robot.initialisation(); lancerTimerEcran(); tempsMatch.start(); typeEvitement = ARRET; } /*--------- Fin Strategie humiliation jaune -----------------------------------------*/