From 78c6eb9bba686db209f9eb0886b5f3b2c0af3a33 Mon Sep 17 00:00:00 2001 From: schodet Date: Wed, 10 Sep 2003 20:18:46 +0000 Subject: Apres 2003 --- 2003/i/buzz/src/motor/motor.h | 60 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) (limited to '2003/i/buzz/src/motor/motor.h') diff --git a/2003/i/buzz/src/motor/motor.h b/2003/i/buzz/src/motor/motor.h index 330ce88..a51b140 100644 --- a/2003/i/buzz/src/motor/motor.h +++ b/2003/i/buzz/src/motor/motor.h @@ -15,21 +15,77 @@ class Motor // Paramètre vitesse/acceleration. int m_accel, m_speed; int m_raccel, m_rspeed; + int m_inf_accel, m_inf_speed; + int m_inf_raccel, m_inf_rspeed; + // Paramètres géométriques. + int m_ed2; + double m_factor, m_rfactor; // Operations en cours. - bool running; + bool m_running; + char m_last_com; + int m_last_a1, m_last_a2, m_last_a3; + // Calcul de position. + double m_x, m_y, m_dir; + // Capteurs. + char m_capteurs; + bool m_capteursFetch; + // Servo. + bool m_servoFinnish; + // Distance effectuée. + int m_doneG, m_doneD; + int m_doneGs, m_doneDs; + // Instance unique. + static Motor *m_instance; public: // Constructeur. Motor (void); // Destructeur. ~Motor (void); + // Change la position courante. + void setPos (double x, double y); + // Change la position courante. + void setPos (double x, double y, double dir); + // Récupère la position courante. TODO: valider avec une date. + void getPos (double &x, double &y, double &dir); + // Retourne une référence vers l'instance unique. + static Motor &getInstance (void) { return *m_instance; } // Avance d'une distance d, à la vitesse s. void goDistance (int d, int s = -1); // Tourne d'un angle d, à la vitesse s. void turnAngle (int d, int s = -1); + // Avance indéfiniment à la vitesse s. + void go (int s = 0); + // Avance indéfiniment à la vitesse sg et sd, respectivement pour le + // moteur gauche et droit. + void go (int sg, int sd); + // Tourne indéfiniment à la vitesse s. + void turn (int s = 0); + // Avance indéfiniment en tournant à la vitesse max s, de rayon r. + void goTurn (int s, int r); + // Stoppe. + void stop (void); + // Stop progressif. + void stopp (void); + // Reset. + void reset (void); // Retourne true si la commande est terminée. - bool finnish (void) { readMsg (); return !running; } + bool finnish (void) { readMsg (); return !m_running; } // Traite les message entrants. void readMsg (void); + // Traite l'information de bouclage. + void readTicks (int g, int d); + // Demande les infos capteurs. + void fetchCapteurs (void); + // Retourne les infos capteurs. + int getCapteurs (void); + // Gère les servos. + void setServo (int s); + // Attend le top départ. + void waitRound (void); + // Récupère la distance parcouru. + int getDone (void); + // Mémorise la distance parcourue pour le moment. + void setDone (void); private: // Envoie une commande. void send (char com, int a1 = -1, int a2 = -1, int a3 = -1); -- cgit v1.2.3