Files
Bachelorarbeit-Rover/src/driveModi/driveManager.h
T

63 lines
1.4 KiB
C++

/**
* @file driveManager.h
* @author Alexander Klein (alex@kleiax.de)
* @brief Contains a class to switch the DriveModi
* @version 0.1
* @date 2021-12-14
*
* @copyright Copyright (c) 2021
*
*/
#ifndef DRIVE_MANAGER_H
#define DRIVE_MANAGER_H
//GPS Serial Pins
#define GPS_RX 17
#define GPS_TX 16
#define GPS_BAUD 9600
#include <Arduino.h>
#include "moveControl.h"
#include "driveModi/driveModi.h"
#include "navigation.h"
// All Drive Modi
#include "driveModi/Modi/ManualControl/manualControl.h"
#include "driveModi/Modi/CaptureRoute/captureRoute.h"
#include "driveModi/Modi/Autopilot/autopilot.h"
#include "driveModi/Modi/ConsolControl/consolControl.h"
#include "driveModi/Modi/TestMode/testMode.h"
enum class Modi {
Off,
ManualControl,
CaptureRoute,
Autopilot,
ConsolControl,
TestMode
};
class DriveManager {
public:
DriveManager(MoveControl *moveControl);
~DriveManager();
void loop();
void nextModus();
void changeModus(Modi modus);
Navigation* getNavigation() {return this->navigation;}
DriveModi* getDriveModiPtr() { return this->currentModusPtr; }
Modi getDriveModi() { return this->currentModus; }
private:
Modi currentModus = Modi::Off;
MoveControl *moveControl;
DriveModi *currentModusPtr = nullptr;
Navigation* navigation;
};
#endif // DRIVE_MANAGER_H