/** * @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 #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