From a6f4b5ecbc52fc438a6c48a8d3a0ef20f34dec90 Mon Sep 17 00:00:00 2001 From: haller Date: Wed, 24 May 2006 20:51:29 +0000 Subject: * TestAI qui compile * Ajout du Makefile.defs du répertoire ai * Ajout d'une fonction getFd dans Motor --- i/marvin/src/ai/Makefile.defs | 5 +++++ i/marvin/src/ai/ai.cc | 21 ++++++++++++++------- i/marvin/src/ai/ai.hh | 2 -- i/marvin/src/ai/test_ai.cc | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 i/marvin/src/ai/Makefile.defs (limited to 'i/marvin/src/ai') diff --git a/i/marvin/src/ai/Makefile.defs b/i/marvin/src/ai/Makefile.defs new file mode 100644 index 0000000..5016f06 --- /dev/null +++ b/i/marvin/src/ai/Makefile.defs @@ -0,0 +1,5 @@ +PROGRAMS += test_ai + +ai_OBJECTS = ai.o $(motor_OBJECTS) $(es_OBJECTS) $(scheduler_OBJECTS) + +test_ai_OBJECTS = test_ai.o $(ai_OBJECTS) $(tester_OBJECTS) diff --git a/i/marvin/src/ai/ai.cc b/i/marvin/src/ai/ai.cc index 1adcf5e..bbf3158 100644 --- a/i/marvin/src/ai/ai.cc +++ b/i/marvin/src/ai/ai.cc @@ -22,10 +22,17 @@ // Email: // }}} #include "ai.hh" +#include "config/config.hh" +#include "timer/timer.hh" + +/// Fonction callback useless +static void +callback (void) +{} //constructeur Ai::Ai (const Config & config) - : motor_(config), es_(config), log_ ("Ai"), + :es_(config), log_ ("Ai"), schedulableMotor_(callback, motor_.getFd()), schedulableEs_(callback, es_.getFd()), round_duration_ (config.get ("ai.round_duration")), @@ -114,7 +121,7 @@ Ai::waitJack (bool out) { do { - udpate (); + update (); } while (es_.isJackOut () != out); } @@ -156,21 +163,21 @@ void Ai::progHomoloRobal(void) /// PAF BEGIN!!! (lancer le timer) Timer::startRound(); /// on avance un poil parce que le mur c'est mal - move(400, 0); + motor_.move(400, 0); /// On tourne XXX - rotate(-M_PI/4); + motor_.rotate(-M_PI/4); /// On cherche au moins une balle (sinon c'est con) - barilletLancement(); + es_.barilletLancement(); /// XXX Avancer d'une certaine facon pour choper des balles /// XXX Ouais ba y'a encore ddes truc à faire là /// On cherche un tru (repositionnement??) - motor_.lockGoodHole(); + // XXX motor_.lockGoodHole(); motor_.findHole(); /// On trouve un trou, chouette /// Aspirer le trou es_.extraitBalle(); /// mettre une baballe - es_.deposeBlanche(); + // XXX es_.deposeBlanche(); /// Tourner 3 fois en chantant du Mickael Jackson /// Again.... /// Fin du match diff --git a/i/marvin/src/ai/ai.hh b/i/marvin/src/ai/ai.hh index 25bba63..8d673e5 100644 --- a/i/marvin/src/ai/ai.hh +++ b/i/marvin/src/ai/ai.hh @@ -66,8 +66,6 @@ class Ai bool update (void); /// La célèbre fonction sync bool sync (void); - /// Stop the mouvement of the motor - void stop (void); /// Init things for a match. void prepare (void); /// Reference sensors diff --git a/i/marvin/src/ai/test_ai.cc b/i/marvin/src/ai/test_ai.cc index 9412277..b4f3882 100644 --- a/i/marvin/src/ai/test_ai.cc +++ b/i/marvin/src/ai/test_ai.cc @@ -35,4 +35,46 @@ class TestAI : public Tester { // Update ? } + public: + TestAI(int argc, char ** argv) + :Tester(argc, argv), ai_(config_) + {} + void preRun (void) + { + Interpreter &interpreter = getInterpreter(); + // Add functions + interpreter.add("init", Interpreter::memFunc(ai_, &Ai::init), + "Initialise le robal(void)"); + interpreter.add("stop", Interpreter::memFunc(ai_, &Ai::stop), + "Stop le robal(void)"); + interpreter.add("tempo", Interpreter::memFunc(ai_, + &Ai::temporisation), + "On temporise(int msec)"); + interpreter.add("jack", Interpreter::memFunc(ai_, &Ai::waitJack), + "On attend que le jack sorte/rentre(bool sorte)"); + interpreter.add("sensors", Interpreter::memFunc(ai_, + &Ai::referenceSensors), + "Initialise les capteurs RVB(void)"); + interpreter.add("homologation", Interpreter::memFunc(ai_, + &Ai::progHomoloRobal), + "Programme d'homologation du robal"); + } + void postRun(void) + { + // On init le robal histoire de ... + ai_.init(); + } +}; + +int main (int argc, char **argv) +{ + try + { + TestAI ta(argc, argv); + ta.run (); + } + catch (const std::exception &e) + { + std::cerr << e.what () << std::endl; + } } -- cgit v1.2.3