63 lines
1.4 KiB
C++
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
|