#ifndef ai_hh #define ai_hh // ai.hh // marvin - programme du robot 2006. {{{ // // Copyright (C) 2006 Nicolas Haller // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // Contact : // Web: http://perso.efrei.fr/~haller/ // Email: // }}} /// Intelligence supérieur(à celui d'une balle de ping-pong) artificielle /// (comme une blonde) du robot. #include "motor/motor.hh" #include "es/es.hh" #include "scheduler/scheduler.hh" #include "scheduler/schedulable_read_fd.hh" #include "log/log.hh" class Ai { private: // Modules de contrôles du robot Motor motor_; Es es_; /// Logger Log log_; // Le scheduler scheduler::Scheduler scheduler_; scheduler::SchedulableReadFd schedulableMotor_; scheduler::SchedulableReadFd schedulableEs_; // Paramètres générales du robot const int round_duration_; const int schedule_time_; const int reference_sensor_mask_; public: /// Constructeur Ai(const Config & config); /// Destructeur du robot ~Ai(void); /// Initialisation du robal void init(void); /// Arrête complêtement le robot void stop(void); /// Fonction de tempo void temporisation (int msec); /// Attend le jack rentre(false) ou sorte (true) void waitJack (bool out); /// Attend une mise à jour... bool update (void); /// La célèbre fonction sync bool sync (void); /// Init things for a match. void prepare (void); /// Some after after a match void afterMatch(void); /// Reference sensors void referenceSensors (void); /// programme d'homologation du robal void progHomoloRobal(void); /// programme de match du robal void progMatch(void); bool motorMove (int d, int a); void motorRotate (double d); void motorBasicFindHole (void); int motorSmartFindHole (double distOut); void motorDeblock(void); }; #endif // ai_hh