weitere Softwareanpassungen

So hier gibt es noch ein paar Anpassungen im Code.

Da ich die L298N Motortreiber verwende, muss in der mower.cpp noch in der Methode readSensor der Aufruf von checkMotorFault auskommentiert werden. Andernfalls gibt es nur Motor Fault Errors

Wenn der Mower im manuellen Modus irgendwo gegen fährt, schiebt er im original Code einfach weiter. Durch die Anpassung weiter oben bleibt er zumindest stehen. Da er aber nicht zurück setzt, bleibt der Bumper ewig aktiv und man bekommt den Mower nur von Hand raus. Normalerweise fährt der Mower ja zurück und dreht dann, ich will, dass er nur zurück setzt und dann stehen bleibt. Dazu sind einige Anpassungen erforderlich gewesen:

1. robot.h: Hier wird dem ENUM für die roll types ein weiterer Wert (NONE) eingefügt

2. robot.cpp
Zunächst ändern wir das Verhalten vom STATE_MANUAL. Wenn ein Bumper aktiviert wurde, wird nun reverseOrBidir(NONE) aufgerufen

Die Methode reverseOrBidir bleibt wie gehabt. Die Methode setzt als nächsten State STATE_REVERSE (sofern kein bidirektionales Mähen). Diesen State müssen wir anpassen.

Hier wurde eine weitere Prüfung auf rollDir eingefügt. Wenn dieser den Wert NONE hat, befinden wir uns im manuellen Modus und sind irgendwo dran gekommen. Somit ist der neue State STATE_MANUAL und nicht wie bisher STATE_ROLL.

In der Methode setNextState wird nun geprüft, ob der alte Status STATE_REVERSE und der neue STATE_MANUAL ist (ziemlich am Ende).

Somit wird erreicht, dass der Mower nach dem zurück setzen auch wieder stehen bleibt. Andernfalls würde er ewig zurück setzen.