summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ai/ai.cc
diff options
context:
space:
mode:
authorhaller2005-04-23 20:46:35 +0000
committerhaller2005-04-23 20:46:35 +0000
commitfe37f66264914ca37c77be02cec2c1d1a10043d7 (patch)
treed916ad76b38fe6d5118e5a537bf5db77e2cef854 /2005/i/robert/src/ai/ai.cc
parent3a3f8be88bca27db95a06c78f979f3a4a2803aa3 (diff)
Ajout du Makefile.def pour ai
Définition terminée d'un premier header pour ai Première implémentation de ai Ne compile pas
Diffstat (limited to '2005/i/robert/src/ai/ai.cc')
-rw-r--r--2005/i/robert/src/ai/ai.cc98
1 files changed, 98 insertions, 0 deletions
diff --git a/2005/i/robert/src/ai/ai.cc b/2005/i/robert/src/ai/ai.cc
index 3e81151..599efc1 100644
--- a/2005/i/robert/src/ai/ai.cc
+++ b/2005/i/robert/src/ai/ai.cc
@@ -23,3 +23,101 @@
//
// }}}
+/// Constructeur
+Ai::Ai(const Config & config)
+ :motor(config), roundDuration(config.get("ai.roundDuration")),
+ enMouvement(false)
+{
+}
+
+/// Initialise le robot
+void init(void)
+{
+ // Initialise les moteurs
+ motor_.init();
+ // initialise la carte es
+ es_.init();
+ // XXX peut-il faire des actions??
+}
+
+/// stop le robot
+void stop(void)
+{
+ // Stop les moteurs
+ motor_.stop();
+}
+
+/// Lance le robot
+void run(void)
+{
+ // XXX Effectue plein d'actions plus ou moins conne
+
+}
+
+// Attend le jack entré (false) ou sorti (true).
+void waitJack (bool out)
+{
+ while (es_.stateJack() != out)
+ update();
+}
+
+/// Rejoint un point. (argument en mm)
+void goTo (double x, double y) // XXX Y'a une vitesse par defaut??
+{
+ while (motor_.getX() != x || motor_.getY() != y)
+ {
+ motor_.goTo(x,y);
+ update();
+ }
+}
+
+/// Recale contre une bordure.
+void recale (void)
+{
+ while(!es_.capteursContact())
+ {
+ motor_.recalage(); //XXX hum...
+ update();
+ }
+}
+
+/// Mouvement basic. XXX c'est quoi les arguments là??
+void basic (double v, double d)
+{
+ motor.setSpeed(v);
+ do
+ {
+ motor_.linearMove(d);
+ update(); // XXX Et si on se prend un mur?????
+ }
+ while (!motor_.waiting());
+}
+
+/// Rotation (argument en radian)
+void rotation (double a)
+{
+ do
+ {
+ motor_.rotation(a);
+ update();
+ }while (!motor_.waiting());
+}
+
+/// Monte(vrai) ou descend(faux) l'ascenceur
+void ascenceur (bool monte)
+{
+ while(es_.stateAsc() != monte ? true : false)
+ {
+ es_.moveAsc(monte); // XXX bon le nom de la fonction est à chier on est d'accord
+ update();
+ }
+}
+
+/// Désactive les ventouse
+void ventouses (void)
+{
+ es_.ventouses();
+ while(!es_.stateVentouses()) // XXX Ca, ca doit servir à rien
+ update();
+}
+