From 6096a33b9be9f9fa175bda07475b9011a855203c Mon Sep 17 00:00:00 2001 From: bisset Date: Mon, 26 May 2003 09:57:10 +0000 Subject: *** empty log message *** --- 2003/i/buzz/src/automate/action.cc | 220 ++++++++++++++++++++++++++++++ 2003/i/buzz/src/automate/action.h | 124 +++++++++++++++++ 2003/i/buzz/src/automate/grafcet.cc | 2 +- 2003/i/buzz/src/automate/grammar.yy | 47 +++++++ 2003/i/buzz/src/automate/lexer.ll | 24 +++- 2003/i/buzz/src/automate/receptivite.cc | 125 +++++++++++++++++ 2003/i/buzz/src/automate/receptivite.h | 116 ++++++++++++++++ 2003/i/buzz/src/automate/test_automate.cc | 2 + 8 files changed, 658 insertions(+), 2 deletions(-) (limited to '2003/i/buzz/src') diff --git a/2003/i/buzz/src/automate/action.cc b/2003/i/buzz/src/automate/action.cc index 2764a44..caddb21 100644 --- a/2003/i/buzz/src/automate/action.cc +++ b/2003/i/buzz/src/automate/action.cc @@ -33,6 +33,8 @@ Action::stop (void) { } +/*Definition de l'action liée à PRINT + // Destructeur. ActionPrint::~ActionPrint () { @@ -45,4 +47,222 @@ ActionPrint::start (void) cout << m_s << endl; } +/*Definition de l'action liée à INITIALISATION + +//Constructeur +ActionInitialisation::ActionInitialisation() +{ +} + +// Destructeur +ActionInitialisation::~ActionInitialisation() +{ +} + +void ActionInitialisation::start(void) +{ + +} + + +/*Definition de l'action liée à RECHERCHER + +//Constructeur +ActionRechercher::ActionRechercher() +{ +} + +// Destructeur +ActionRechercher::~ActionRechercher() +{ +} + +void ActionRechercher::start(void) +{ + +} + + +/*Definition de l'action liée à ROTATION + +//Constructeur +ActionRotation::ActionRotation() +{ +} + +// Destructeur +ActionRotation::~ActionRotation() +{ +} + +void ActionRotation::start(void) +{ + +} + + +/*Definition de l'action liée à ATTEINDRE + +//Constructeur +ActionAtteindre::ActionAtteindre() +{ +} + +// Destructeur +ActionAtteindre::~ActionAtteindre() +{ +} + +void ActionAtteindre::start(void) +{ + +} + + +/*Definition de l'action liée à NB_PALET_PILE + +//Constructeur +ActionNbPaletPile::ActionNbPaletPile() +{ +} + +// Destructeur +ActionNbPaletPile::~ActionNbPaletPile() +{ } + +void ActionNbPaletPile::start(void) +{ + +} + + +/*Definition de l'action liée à NB_PALET_STOCKE + +//Constructeur +ActionNbPaletStocke::ActionNbPaletStocke() +{ +} + +// Destructeur +ActionNbPaletStocke::~ActionNbPaletStocke() +{ +} + +void ActionNbPaletStocke::start(void) +{ + +} + + +/*Definition de l'action liée à MISE_EN_PLACE + +//Constructeur +ActionMiseEnPlace::ActionMiseEnPlace() +{ +} + +// Destructeur +ActionMiseEnPlace::~ActionMiseEnPlace() +{ +} + +void ActionMiseEnPlace::start(void) +{ + +} + + +/*Definition de l'action liée à REPERER_COULEUR + +//Constructeur +ActionRepererCouleur::ActionRepererCouleur(int _capteur) +{ + m_capteur = _capteur; +} + +// Destructeur +ActionRepererCouleur::~ActionRepererCouleur() +{ +} + +void ActionRepererCouleur::start(void) +{ + +} + + +/*Definition de l'action liée à RETOURNER + +//Constructeur +ActionRetourner::ActionRetourner() +{ +} + +// Destructeur +ActionRetourner::~ActionRetourner() +{ +} + +void ActionRetourner::start(void) +{ + +} + + +/*Definition de l'action liée à AVANCER + +//Constructeur +ActionAvancer::ActionAvancer(int _distance) +{ + m_distance = _distance; +} + +// Destructeur +ActionAvancer::~ActionAvancer() +{ +} + +void ActionAvancer::start(void) +{ + +} + + +/*Definition de l'action liée à RECULER + +//Constructeur +ActionReculer::ActionReculer(int _distance) +{ + m_distance = _distance; +} + +// Destructeur +ActionReculer::~ActionReculer() +{ +} + +void ActionReculer::start(void) +{ + +} + + +/*Definition de l'action liée à PLACER_PINCE + +//Constructeur +ActionPlacerPince::ActionPlacerPince(int _position) +{ + m_position = _position; +} + +// Destructeur +ActionPlacerPince::~ActionPlacerPince() +{ +} + +void ActionPlacerPince:start(void) +{ + +} + diff --git a/2003/i/buzz/src/automate/action.h b/2003/i/buzz/src/automate/action.h index fcd0b2c..1ee7bd5 100644 --- a/2003/i/buzz/src/automate/action.h +++ b/2003/i/buzz/src/automate/action.h @@ -32,6 +32,130 @@ namespace Automate // Utilisée une fois, lors de l'activation de l'action. void start (void); }; + + class ActionInitialisation : public Action + { + public: + // Constructeur + ActionInitialisation (void); + // Destructeur + ~ActionInitialisation () ; + void start (void); + } + + class ActionRechercher : public Action + { + public: + // Constructeur + ActionRechercher (void); + // Destructeur + ~ActionRechercher () ; + void start (void); + } + + class ActionRotation : public Action + { + public: + // Constructeur + ActionRotation (void); + // Destructeur + ~ActionRotation () ; + void start (void); + } + + class ActionAtteindre : public Action + { + public: + // Constructeur + ActionAtteindre (void); + // Destructeur + ~ActionAtteindre () ; + void start (void); + } + + class ActionNbPaletPile : public Action + { + public: + // Constructeur + ActionNbPaletPile (void); + // Destructeur + ~ActionNbPaletPile () ; + void start (void); + } + + class ActionNbPaletStocke : public Action + { + public: + // Constructeur + ActionNbPaletStocke (void); + // Destructeur + ~ActionNbPaletStocke () ; + void start (void); + } + + class ActionMiseEnPlace : public Action + { + public: + // Constructeur + ActionMiseEnPlace (void); + // Destructeur + ~ActionMiseEnPlace () ; + void start (void); + } + + class ActionRepererCouleur : public Action + { + int m_capteur; + public: + // Constructeur + ActionRepererCouleur (int); + // Destructeur + ~ActionRepererCouleur () ; + void start (void); + } + + class ActionRetourner : public Action + { + public: + // Constructeur + ActionRetourner (void); + // Destructeur + ~ActionRetourner () ; + void start (void); + } + + class ActionAvancer : public Action + { + int m_distance; + public: + // Constructeur + ActionAvancer (int); + // Destructeur + ~ActionAvancer () ; + void start (void); + } + + class ActionReculer : public Action + { + int m_distance; + public: + // Constructeur + ActionReculer (int); + // Destructeur + ~ActionReculer () ; + void start (void); + } + + class ActionPlacerPince : public Action + { + int m_position; + public: + // Constructeur + ActionPlacerPince (int); + // Destructeur + ~ActionPlacerPince () ; + void start (void); + } } #endif // action_h diff --git a/2003/i/buzz/src/automate/grafcet.cc b/2003/i/buzz/src/automate/grafcet.cc index 045b61f..7049a23 100644 --- a/2003/i/buzz/src/automate/grafcet.cc +++ b/2003/i/buzz/src/automate/grafcet.cc @@ -83,7 +83,7 @@ Grafcet::run (void) break; } } - // Arète les actions en stop. + // Arrète les actions en stop. for (i = m_grafcet.begin (); i != m_grafcet.end ();) { if (i->type == etape) diff --git a/2003/i/buzz/src/automate/grammar.yy b/2003/i/buzz/src/automate/grammar.yy index 1fd4efc..a780777 100644 --- a/2003/i/buzz/src/automate/grammar.yy +++ b/2003/i/buzz/src/automate/grammar.yy @@ -36,7 +36,33 @@ Grafcet *input_grafcet; %token STRING %token ERR GOTO %token EQ NEQ LEQ GEQ + +/*TOKEN des actions +%token INITIALISATION +%token RECHERCHER +%token ROTATION +%token AVANCER_PALET +%token NB_PALET_PILE +%token NB_PALET_STOCKE +%token MISE_EN_PLACE +%token REPERER_COULEUR +%token RETOURNER +%token AVANCER +%token RECULER +%token PLACER_PINCE %token PRINT + +/*TOKEN des conditions +%token INIT +%token PALETS_TROUVES +%token PALETS +%token STOCKE +%token COULEUR_ADVERSE +%token PINCE_ANGLE +%token PINCE_POS +%token ROBOT_RECULE +%token ROBOT_AVANCE + %type grafcet %type etape %type action @@ -74,10 +100,31 @@ etape: '#' NUM { $$ = new Etape ($2); } /*met les actions ici puis defini une classe pour l'action (avec parametres) action: PRINT STRING { $$ = new ActionPrint (*$2); delete $2; } + | INITIALISATION { $$ = new ActionInit ();} + | RECHERCHER { $$ = new ActionRechercher ();} + | ROTATION { $$ = new ActionRotation ();} + | AVANCER_PALET { $$ = new ActionAvancerPalet ();} + | NB_PALET_PILE { $$ = new ActionNbPaletPile ();} + | NB_PALET_STOCKE { $$ = new ActionNbPaletStocke ();} + | MISE_EN_PLACE { $$ = new ActionMiseEnPlace ();} + | REPERER_COULEUR NUM { $$ = new ActionRepererCouleur ($2);} + | RETOURNER { $$ = new ActionRetourner ();} + | AVANCER NUM { $$ = new ActionAvancer ($2);} + | RECULER NUM { $$ = new ActionReculer ($2);} + | PLACER_PINCE NUM { $$ = new ActionPlacerPince ($2);} ; receptivite: BOOL { $$ = new ReceptiviteBool ($1); } + | INIT { $$ = new ReceptInit (false); } + | PALETS_TROUVES { $$ = new ReceptPaletsTrouves (false); } + | PALETS NUM { $$ = new ReceptPalets (false,$2); } + | STOCKE NUM { $$ = new ReceptStocke (false,$2); } + | COULEUR_ADVERSE NUM { $$ = new ReceptCouleurAdverse (false,$2); } + | PINCE_ANGLE NUM { $$ = new ReceptPinceAngle (false,$2); } + | PINCE_POS NUM { $$ = new ReceptPincePos (false,$2); } + | ROBOT_RECULE { $$ = new ReceptRobotRecule (false); } + | ROBOT_AVANCE { $$ = new ReceptRobotAvance (false); } | receptivite '&' receptivite { $$ = new ReceptiviteBoolOp ($1, '&', $3); } | receptivite '|' receptivite diff --git a/2003/i/buzz/src/automate/lexer.ll b/2003/i/buzz/src/automate/lexer.ll index 21e50be..16635d5 100644 --- a/2003/i/buzz/src/automate/lexer.ll +++ b/2003/i/buzz/src/automate/lexer.ll @@ -25,11 +25,33 @@ STRING \"[^\n"]\" %% -/*Rajout des actions et des conditions ici*/ +/*CONDITIONS*/ +"init" return INIT; //si robot initialise +"palets_trouves" return PALETS_TROUVES; //si palets ont ete trouve durant la recherche +"palets" return PALETS; //param:num ex:palets 1 valeurs possibles:1,2,3 nombre de palets dans la pile +"stocke" return STOCKE; //param:num ex:stocke 0 valeurs possibles:0,1,2 nombre de palets stockes +"couleur_adverse" return COULEUR_ADVERSE; //param:num vp:1:capteur avant ,2:capteur arriere ,3:camera +"pince_angle" return PINCE_ANGLE; //param:num ex:pince_angle 0 valeurs possibles:0 ou 180 angle des 2 pinces +"pince_pos" return PINCE_POS; //param:num ex:pince_pos 2 vp:1,4:1+,2,5:2+,3,6:3+ position horizontale des 2 pinces +"robot_recule" return ROBOT_RECULE; //determine si le robot a fini de reculer +"robot_avance" return ROBOT_AVANCE; //determine si le robot a fini d'avancer "goto" return GOTO; +/*ACTIONS*/ "print" return PRINT; +"initialisation" return INITIALISATION; +"rechercher" return RECHERCHER; //Determine la position d'un palet ou d'une pile cible non-marque +"rotation" return ROTATION; //Fait la rotation du robot suivant la carte pour une meilleure recherche +"atteindre" return AVANCER_PALET; //contient le chemineur pour arriver devant le palet cible +"nb_palet_pile" return NB_PALET_PILE; //Determine le nb de palet dans la pile cible +"nb_palet_stocke" return NB_PALET_STOCKE; //Determine le nb de palet stocke +"mise_en_place" return MISE_EN_PLACE //Mise en place du palet ou de la pile cible ceux ci etant atteint +"reperer_couleur" return REPERER_COULEUR; //param:num vp:1:avant, 2:arriere +"retourner" return RETOURNER; //Retourne le palet de l'avant vers l'arriere ou inversemment +"avancer" return AVANCER; //param:num vp:1,2,..n avance le robot de une a n fois une longueur (fixe) en avant +"reculer" return RECULER; //param:num vp:1,2,..n recule le robot de une a n fois une longueur (fixe) en arriere +"placer_pince" return PLACER_PINCE; //param:num vp:1..6 postionne les 2 pinces aux positions 1 à 6 vues plus haut "&&" return '&'; "||" return '|'; diff --git a/2003/i/buzz/src/automate/receptivite.cc b/2003/i/buzz/src/automate/receptivite.cc index c978788..0fab595 100644 --- a/2003/i/buzz/src/automate/receptivite.cc +++ b/2003/i/buzz/src/automate/receptivite.cc @@ -76,4 +76,129 @@ ReceptiviteCmpOp::test (void) return false; } +/*Definition de la receptivité liée à PLACER_PINCE + +// Destructeur. +ReceptInit::~ReceptInit () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptInit::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à PALETS_TROUVES + +// Destructeur. +ReceptPaletsTrouves::~ReceptPaletsTrouves () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptPaletsTrouves::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à PALETS + +// Destructeur. +ReceptPalets::~ReceptPalets () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptPalets::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à STOCKE + +// Destructeur. +ReceptStocke::~ReceptStocke () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptStocke::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à COULEUR_ADVERSE + +// Destructeur. +ReceptCouleurAdverse::~ReceptCouleurAdverse () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptCouleurAdverse::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à PINCE_ANGLE + +// Destructeur. +ReceptPinceAngle::~ReceptPinceAngle () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptPinceAngle::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à PINCE_POS + +// Destructeur. +ReceptPincePos::~ReceptPincePos () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptPincePos::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à ROBOT_RECULE + +// Destructeur. +bool ReceptRobotRecule::~ReceptRobotRecule () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptRobotRecule::test (void) +{ + return m_bool; +} + + +/*Definition de la receptivité liée à ROBOT_AVANCE + +// Destructeur. +ReceptRobotAvance::~ReceptRobotAvance () +{ +} + +// Retourne la valeur de la receptivité. +bool ReceptRobotAvance::test (void) +{ + return m_bool; +} + } diff --git a/2003/i/buzz/src/automate/receptivite.h b/2003/i/buzz/src/automate/receptivite.h index 27a5d3e..60f6c00 100644 --- a/2003/i/buzz/src/automate/receptivite.h +++ b/2003/i/buzz/src/automate/receptivite.h @@ -59,6 +59,122 @@ namespace Automate // Retourne la valeur de la receptivité. bool test (void); }; + + /*Ajout des conditions du grafcet, un objet par condition + + class ReceptInit : public Receptivite + { + bool m_bool; + public: + // Constructeur. + ReceptInit (bool _bool) { m_bool = _bool; } + // Destructeur. + ~ReceptInit (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptPaletsTrouves : public Receptivite + { + bool m_bool; + public: + // Constructeur. + ReceptPaletsTrouves (bool _bool) { m_bool = _bool; } + // Destructeur. + ~ReceptPaletsTrouves (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptPalets : public Receptivite + { + bool m_bool; + int m_nbpalets; + public: + // Constructeur. + ReceptPalets (bool _bool, int _nbpalets) { m_bool = _bool; m_nbpalets = _nbpalets; } + // Destructeur. + ~ReceptPalets (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptStocke : public Receptivite + { + bool m_bool; + int m_nbstocke; + public: + // Constructeur. + ReceptStocke (bool _bool, int _nbstocke) { m_bool = _bool; _nbstocke = m_nbstocke; } + // Destructeur. + ~ReceptStocke (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptCouleurAdverse : public Receptivite + { + bool m_bool; + int m_capteur; + public: + // Constructeur. + ReceptCouleurAdverse (bool _bool, int _capteur) { m_bool = _bool; _capteur = m_capteur; } + // Destructeur. + ~ReceptCouleurAdverse (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptPinceAngle : public Receptivite + { + bool m_bool; + int m_angle; + public: + // Constructeur. + ReceptPinceAngle (bool _bool, int _angle) { m_bool = _bool; m_angle = _angle;} + // Destructeur. + ~ReceptPinceAngle (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptPincePos : public Receptivite + { + bool m_bool; + int m_position; + public: + // Constructeur. + ReceptPincePos (bool _bool,int _position) { m_bool = _bool; m_position = _position; } + // Destructeur. + ~ReceptPincePos (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptRobotRecule : public Receptivite + { + bool m_bool; + public: + // Constructeur + ReceptRobotRecule (bool _bool) { m_bool = _bool; } + // Destructeur. + ~ReceptRobotRecule (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + + class ReceptRobotAvance : public Receptivite + { + bool m_bool; + public: + // Constructeur. + ReceptRobotAvance (bool _bool) { m_bool = _bool; } + // Destructeur. + ~ReceptRobotAvance (); + // Retourne la valeur de la receptivité. + bool test (void); + }; + } #endif // receptivite_h diff --git a/2003/i/buzz/src/automate/test_automate.cc b/2003/i/buzz/src/automate/test_automate.cc index e80ef42..2ebe18c 100644 --- a/2003/i/buzz/src/automate/test_automate.cc +++ b/2003/i/buzz/src/automate/test_automate.cc @@ -8,4 +8,6 @@ using namespace Automate; int main (int argc, char **argv) { + //filename "strategie1.txt","strategie2.txt" + } -- cgit v1.2.3