summaryrefslogtreecommitdiff
path: root/2003
diff options
context:
space:
mode:
Diffstat (limited to '2003')
-rw-r--r--2003/i/buzz/src/automate/action.cc220
-rw-r--r--2003/i/buzz/src/automate/action.h124
-rw-r--r--2003/i/buzz/src/automate/grafcet.cc2
-rw-r--r--2003/i/buzz/src/automate/grammar.yy47
-rw-r--r--2003/i/buzz/src/automate/lexer.ll24
-rw-r--r--2003/i/buzz/src/automate/receptivite.cc125
-rw-r--r--2003/i/buzz/src/automate/receptivite.h116
-rw-r--r--2003/i/buzz/src/automate/test_automate.cc2
8 files changed, 658 insertions, 2 deletions
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 <s> 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> grafcet
%type <etape> etape
%type <action> 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"
+
}