Fridolin  1.2
DieBitschubser
Engine.h
gehe zur Dokumentation dieser Datei
1 #pragma once
2 
3 #include "Motor.h"
4 
5 
14 namespace STFU
15 {
28 int operator""_percent(unsigned long long int);
29 
34 class Engine
35 {
36 public:
37 
40  static const int FORWARD = 0;
42  static const int BACKWARD = 255;
43 
46  static const int MAX_SPEED = 255;
48  static const int HALF_SPEED = 127;
50  static const int MIN_SPEED = 0;
51 
55  Engine() = delete;
61  Engine(Motor& left, Motor& right);
62 
66  ~Engine();
67 
72  int speed() const;
73 
81  int direction() const;
82 
87  void stop();
88 
95  void driveForward(int);
106  void driveForward(int sL, int sR);
107 
114  void driveBackward(int);
125  void driveBackward(int sL, int sR);
126 
133  void rotateLeft(int);
141  void rotateLeft(int sL, int sR);
142 
151  void turnLeft(int);
152 
159  void rotateRight(int);
167  void rotateRight(int sL, int sR);
168 
177  void turnRight(int);
178 
183  const Motor& leftMotor() const;
188  const Motor& rightMotor() const;
189 
190 private:
192  Motor* _leftMotor = nullptr;
194  Motor* _rightMotor = nullptr;
196  int _leftSpeed;
198  int _rightSpeed;
199 
200 
205  void speed(int);
211  void speed(int sL, int sR);
212 
217  void direction(int);
223  void direction(int dL, int dR);
224 
231  int average(int, int) const;
232 
238  int backward(int) const;
239 };
240 
241 }
const Motor & leftMotor() const
Abfrage des linken Motors.
Definition: Engine.cpp:119
static const int BACKWARD
Richtung: Rueckwaerts.
Definition: Engine.h:42
int direction() const
Abfrage der Motor Drehrichtung.
Definition: Engine.cpp:46
Diese Klasse kombiniert einen linken und rechten Motor zu einem Antrieb.
Definition: Engine.h:34
void rotateRight(int)
Im Stehen nach rechts Drehen. Der linke Motor dreht mit einer Geschwindigkeit von s vorwaerts und d...
Definition: Engine.cpp:102
void turnRight(int)
Beim Fahren nach rechts Drehen. Beide Motoren drehen vorwaerts. Der linke Motor dreht in der ueberg...
Definition: Engine.cpp:113
void rotateLeft(int)
Im Stehen nach links Drehen. Der rechte Motor dreht vorwaerts. Der linke Motor dreht rueckwaerts.
Definition: Engine.cpp:84
static const int HALF_SPEED
halbe Geschwindigkeit: 127, entspricht 50% Leistung
Definition: Engine.h:48
static const int MAX_SPEED
Antrieb Geschwindigkeit.
Definition: Engine.h:46
Engine()=delete
Der Defaultkonstruktor ist verboten.
void driveForward(int)
Alle Motoren drehen in der uebergebenen Geschwindigkeit vorwaerts.
Definition: Engine.cpp:60
void stop()
Anhalten der Motoren Die Geschwindigkeit der Motoren wird auf 0 gesetzt.
Definition: Engine.cpp:54
Enthaelt die Klasse Motor.
Diese Klasse stellt die Initialisierung und Funktionen für Motoren bereit.
Definition: Motor.h:20
Super Tolle Fridolin Utilities Alle Klassen aus dieser Bibliothek haben den Präfix: STFU.
Definition: Button.cpp:3
void turnLeft(int)
Beim Fahren nach links Drehen. Beide Motoren drehen vorwaerts. Der rechte Motor dreht in der ueberg...
Definition: Engine.cpp:95
static const int FORWARD
Antrieb Richtung der Motoren.
Definition: Engine.h:40
static const int MIN_SPEED
minimale Geschwindigkeit: 0, entspricht 0% Leistung
Definition: Engine.h:50
int speed() const
Abfrage der aktuell maximalen Motorgeschwindigkeit.
Definition: Engine.cpp:40
void driveBackward(int)
Alle Motoren drehen in der uebergebenen Geschwindigkeit rueckwaerts.
Definition: Engine.cpp:71
~Engine()
Im Destruktor werden die verwendeten Resourcen wieder freigegeben.
Definition: Engine.cpp:32
const Motor & rightMotor() const
Abfrage des rechten Motors.
Definition: Engine.cpp:124