Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
Chargement...
Recherche...
Aucune correspondance
motors/include/AbstractDriver.h
Aller à la documentation de ce fichier.
1
7
13
14#ifndef MOTORS_ABSTRACTDRIVER_H
15#define MOTORS_ABSTRACTDRIVER_H
16
17#define MAX_MOTOR_IN_DRIVER 2
18
19#include <cstdint>
20
21class AbstractMotor;
22
23
28public:
29 virtual ~AbstractDriver() = default;
30
36 virtual int attach(AbstractMotor* motor) = 0;
37
44 virtual int attach(AbstractMotor* motor, uint8_t id) = 0;
45
50 virtual void detach(const int id) {
51 m_motors[id] = nullptr;
52 }
53
59 virtual void setVelocity(float velocity, uint8_t id) = 0;
60
66 virtual float getVelocity(uint8_t id) const = 0;
67
73 AbstractMotor* getMotor(const int id) const {
74 if (id < 0 || id >= MAX_MOTOR_IN_DRIVER) return nullptr;
75 return m_motors[id];
76 }
77protected:
78 AbstractMotor* m_motors[MAX_MOTOR_IN_DRIVER] = {};
79};
80
81#endif //MOTORS_ABSTRACTDRIVER_H
Représente un driver moteur abstrait.
Definition motors/include/AbstractDriver.h:27
virtual int attach(AbstractMotor *motor, uint8_t id)=0
Attache un moteur à l'identifiant spécifié.
AbstractMotor * getMotor(const int id) const
Retourne un pointeur vers le moteur à l'identifiant donné.
Definition motors/include/AbstractDriver.h:73
virtual void detach(const int id)
Détache le moteur à cet identifiant.
Definition motors/include/AbstractDriver.h:50
virtual float getVelocity(uint8_t id) const =0
Retourne la vitesse du moteur à l'identifiant donné.
virtual int attach(AbstractMotor *motor)=0
Attache un moteur au premier canal disponible.
virtual void setVelocity(float velocity, uint8_t id)=0
Fixe la vitesse du moteur à l'identifiant donné.
Definition motors/include/AbstractMotors.h:14