Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 32:84bcb8f2667a
- Parent:
- 31:85d9fb71f921
- Child:
- 33:c70ded6dd380
--- a/main.cpp Fri Jun 07 09:47:52 2019 +0000 +++ b/main.cpp Fri Jun 07 11:18:42 2019 +0000 @@ -3,14 +3,15 @@ #include "Robot.h" #include "math.h" -bool automate_aveugle(Robot&, bool&); -void automate_ejecte(Robot&, bool&); -void automate_testLasers(Robot&); -void automate_testABalle(Robot&, bool&); -void automate_deplacement(Robot&); -void automate_vitesse(Robot&); -bool automate_fin_de_partie(Robot&); -bool automate_arretUrgence(Robot&); +bool automate_aveugle(Robot&, bool&); //automate de début de partie +void automate_ejecte(Robot&, bool&); // +void automate_testLasers(Robot&); // +void automate_testABalle(Robot&, bool&); // +void automate_deplacement(Robot&); // +void automate_vitesse(Robot&); //automate pour la vitesse du robot +bool automate_fin_de_partie(Robot&); //automate crève ballon de fin de partie +bool automate_arretUrgence(Robot&); //automate d'arrêt d'urgence au filet +void automate_run(Robot&); //automate principale de partie typedef enum{TURN_FAST, CORRECT_GAUCHE, CORRECT_DROITE, GO_STRAIGHT} type_etat_deplacement; type_etat_deplacement etat_deplacement = TURN_FAST; @@ -20,20 +21,19 @@ { Robot robot; - bool ejecte = false; - while(1) - if(!Robot::Jack) { + automate_run(robot); // Trois balles en début de partie à l'aveugle - if( !automate_aveugle(robot, ejecte) ); + + /*if( !automate_aveugle(robot, ejecte) ); else if(automate_fin_de_partie(robot)) { robot.stopRouleau(); break; } - automate_ejecte(robot, ejecte); + automate_ejecte(robot, ejecte);*/ // Gestion du lancer de balle /*automate_testABalle(robot, ejecte); @@ -47,8 +47,38 @@ // Gestion de la vitesse en fonction de l'état actuel automate_vitesse(robot);*/ } +} + +void automate_run(Robot& robot) +{ + bool ejecte = false; + typedef enum{ATTENTE,RUN} type_etat; + static type_etat etat = ATTENTE; + static Timer T_partie; - return 0; + switch(etat) + { + case ATTENTE: + if(!Robot::Jack) + { + T_partie.start(); + etat = RUN; + } + break; + case RUN: + if(T_partie.read() < 35.0f) + { + /*while( !*/automate_aveugle(robot, ejecte)/* )*/; + automate_ejecte(robot, ejecte); + } + else + { + T_partie.stop(); + robot.stopRouleau(); + automate_fin_de_partie(robot); + } + break; + } } bool automate_fin_de_partie(Robot& robot)