diff --git a/lib/ControllPad/controlPad.cpp b/lib/ControllPad/controlPad.cpp new file mode 100644 index 0000000..7b8aa9c --- /dev/null +++ b/lib/ControllPad/controlPad.cpp @@ -0,0 +1,57 @@ +/** + * @file controlPad.cpp + * @author Alexander Klein (alex@kleiax.de) + * @brief + * @version 0.1 + * @date 2023-03-30 + * + * @copyright Copyright (c) 2023 + * + */ + +#include "controlPad.h" + +ControlPad::ControlPad() { + +} + +bool ControlPad::loop() { + if (millis() - this->lastLoopMillis < this->loopDelay) + return false; + this->lastLoopMillis = millis(); + + if(!this->connected) + return false; + + if (millis() - this->lastMessageReceive > this->disconnectTime) { + this->connected = false; + return false; + } + + if (this->menuControl && this->controlInput.buttons > 0 && this->updated) + if (!this->firstButtonPress) + this->menuControl->printMenu(); + + if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Left)) + this->menuControl->left(); + else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Right)) + this->menuControl->right(); + else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Up)) + this->menuControl->up(); + else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Down)) + this->menuControl->down(); + else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Yes)) + this->menuControl->yes(); + else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::No)) + this->menuControl->no(); + + this->menuControl->update(); + + return true; +} + +const ControlPadInput * ControlPad::getControlPadDataPtr(uint16_t maxElapsedTime) const { + if (maxElapsedTime && millis() - this->lastMessageReceive > maxElapsedTime) + return nullptr; + return &this->controlInput; +} diff --git a/lib/ControllPad/controllPad.h b/lib/ControllPad/controlPad.h similarity index 53% rename from lib/ControllPad/controllPad.h rename to lib/ControllPad/controlPad.h index 1a38d2c..06ffdf5 100644 --- a/lib/ControllPad/controllPad.h +++ b/lib/ControllPad/controlPad.h @@ -1,5 +1,5 @@ /** - * @file controllPad.h + * @file controlPad.h * @author Alexander Klein (alex@kleiax.de) * @brief * @version 0.1 @@ -13,23 +13,23 @@ #include -#include "controllPadInput.h" +#include "controlPadInput.h" -class ControllPad { +class ControlPad { public: - ControllPad(); + ControlPad(); bool loop(); - void setMenuControll(MenuControl* menuControll) { this->menuControl = menuControl; } + void setMenuControl(MenuControl* menuControl) { this->menuControl = menuControl; } - const ControllPadInput * getControllPadDataPtr(uint16_t maxElapsedTime = 0) const; + const ControlPadInput * getControlPadDataPtr(uint16_t maxElapsedTime = 0) const; - bool isControllPadConnected() const { return this->connected; } + bool isControlPadConnected() const { return this->connected; } private: MenuControl* menuControl = nullptr; - ControllPadInput controllInput; + ControlPadInput controlInput; bool connected = false; bool updated = false; @@ -38,7 +38,7 @@ class ControllPad { uint16_t disconnectTime = 50; uint16_t loopDelay = 5; - uint32_t lastMessageRecive = 0; + uint32_t lastMessageReceive = 0; uint32_t lastLoopMillis = 0; diff --git a/lib/ControllPad/controllPadInput.h b/lib/ControllPad/controlPadInput.h similarity index 62% rename from lib/ControllPad/controllPadInput.h rename to lib/ControllPad/controlPadInput.h index 800af32..a6dd4bd 100644 --- a/lib/ControllPad/controllPadInput.h +++ b/lib/ControllPad/controlPadInput.h @@ -1,5 +1,5 @@ /** - * @file controllPadInput.h + * @file controlPadInput.h * @author Alexander Klein (alex@kleiax.de) * @brief * @version 0.1 @@ -9,12 +9,12 @@ * */ -#ifndef CONTROLL_PAD_INPUT_H -#define CONTROLL_PAD_INPUT_H +#ifndef CONTROL_PAD_INPUT_H +#define CONTROL_PAD_INPUT_H #include -struct ControllPadInput { +struct ControlPadInput { uint8_t buttons; uint8_t x; uint8_t y; @@ -22,7 +22,7 @@ struct ControllPadInput { }; -class ControllPadButton { +class ControlPadButton { public: enum PadButton { Left, @@ -34,9 +34,9 @@ class ControllPadButton { Action }; - static bool isControllPadButtonPressed(const ControllPadInput *input, PadButton button) { + static bool isControlPadButtonPressed(const ControlPadInput *input, PadButton button) { return false; } }; -#endif // CONTROLL_PAD_INPUT_H +#endif // CONTROL_PAD_INPUT_H diff --git a/lib/ControllPad/controllPad.cpp b/lib/ControllPad/controllPad.cpp deleted file mode 100644 index 2df47b5..0000000 --- a/lib/ControllPad/controllPad.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/** - * @file controllPad.cpp - * @author Alexander Klein (alex@kleiax.de) - * @brief - * @version 0.1 - * @date 2023-03-30 - * - * @copyright Copyright (c) 2023 - * - */ - -#include "controllPad.h" - -ControllPad::ControllPad() { - -} - -bool ControllPad::loop() { - if (millis() - this->lastLoopMillis < this->loopDelay) - return false; - this->lastLoopMillis = millis(); - - if(!this->connected) - return false; - - if (millis() - this->lastMessageRecive > this->disconnectTime) { - this->connected = false; - return false; - } - - if (this->menuControl && this->controllInput.buttons > 0 && this->updated) - if (!this->firstButtonPress) - this->menuControl->printMenu(); - - if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Left)) - this->menuControl->left(); - else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Right)) - this->menuControl->right(); - else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Up)) - this->menuControl->up(); - else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Down)) - this->menuControl->down(); - else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Yes)) - this->menuControl->yes(); - else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::No)) - this->menuControl->no(); - - this->menuControl->update(); - - return true; -} - -const ControllPadInput * ControllPad::getControllPadDataPtr(uint16_t maxElapsedTime) const { - if (maxElapsedTime && millis() - this->lastMessageRecive > maxElapsedTime) - return nullptr; - return &this->controllInput; -} diff --git a/src/SpecialMenus/Systeminformation/menuSysteminformation.h b/src/SpecialMenus/Systeminformation/menuSysteminformation.h index 5f6efb1..2a046ab 100644 --- a/src/SpecialMenus/Systeminformation/menuSysteminformation.h +++ b/src/SpecialMenus/Systeminformation/menuSysteminformation.h @@ -14,7 +14,7 @@ #include -#include "controllPadInput.h" +#include "controlPadInput.h" #include "menuInformationSites.h" #include "battery.h" diff --git a/src/driveModi/Modi/Autopilot/autopilot.cpp b/src/driveModi/Modi/Autopilot/autopilot.cpp index c71d673..ba46067 100644 --- a/src/driveModi/Modi/Autopilot/autopilot.cpp +++ b/src/driveModi/Modi/Autopilot/autopilot.cpp @@ -11,7 +11,7 @@ #include "driveModi/Modi/Autopilot/autopilot.h" -Autopilot::Autopilot(MoveControl* moveControl, const ControllPadInput *input, Navigation* navigation) +Autopilot::Autopilot(MoveControl* moveControl, const ControlPadInput *input, Navigation* navigation) : ManualControl(moveControl, input) { this->navigation = navigation; this->navigationStarted = this->navigation->startNavigation(); @@ -45,7 +45,7 @@ void Autopilot::runAutopilot() { this->selfDrivingAvailable = true; if (!this->selfDriving && this->selfDrivingAvailable) - this->setSelfDriving(ControllPadButton::isControllPadButtonPressed(this->input, ControllPadButton::PadButton::Action)); + this->setSelfDriving(ControlPadButton::isControlPadButtonPressed(this->input, ControlPadButton::PadButton::Action)); if (this->routeInfo.currentPoint == this->routeInfo.totalPoints) { this->navigationEnded = true; diff --git a/src/driveModi/Modi/Autopilot/autopilot.h b/src/driveModi/Modi/Autopilot/autopilot.h index 487ceaf..b1323db 100644 --- a/src/driveModi/Modi/Autopilot/autopilot.h +++ b/src/driveModi/Modi/Autopilot/autopilot.h @@ -35,7 +35,7 @@ class Autopilot : public ManualControl { * @param moveControl for ManualControl * @param navigation for route instructions */ - Autopilot(MoveControl* moveControl, const ControllPadInput *input, Navigation* navigation); + Autopilot(MoveControl* moveControl, const ControlPadInput *input, Navigation* navigation); /** * @brief Calls runAutopilot or ManualControl loop @@ -50,7 +50,7 @@ class Autopilot : public ManualControl { void loop(); /** - * @brief Manges the autoipilot + * @brief Manges the autopilot * * If the first Point is near to current location you can turn * the autopilot on. diff --git a/src/driveModi/Modi/CaptureRoute/captureRoute.cpp b/src/driveModi/Modi/CaptureRoute/captureRoute.cpp index 57eb5c3..a3ec413 100644 --- a/src/driveModi/Modi/CaptureRoute/captureRoute.cpp +++ b/src/driveModi/Modi/CaptureRoute/captureRoute.cpp @@ -11,7 +11,7 @@ #include "driveModi/Modi/CaptureRoute/captureRoute.h" -CaptureRoute::CaptureRoute(MoveControl* moveControl, const ControllPadInput *input, Navigation* navigation) +CaptureRoute::CaptureRoute(MoveControl* moveControl, const ControlPadInput *input, Navigation* navigation) : ManualControl(moveControl, input) { this->navigation = navigation; this->routeInfo = navigation->getRouteInfo(); @@ -28,7 +28,7 @@ void CaptureRoute::loop() { } void CaptureRoute::runCaptureRoute() { - if (ControllPadButton::isControllPadButtonPressed(this->input, ControllPadButton::PadButton::Action)) { + if (ControlPadButton::isControlPadButtonPressed(this->input, ControlPadButton::PadButton::Action)) { if (this->navigation->addCurrentPosToRoute()) { this->routeInfo = navigation->getRouteInfo(); this->updateDisplay = true; diff --git a/src/driveModi/Modi/CaptureRoute/captureRoute.h b/src/driveModi/Modi/CaptureRoute/captureRoute.h index 757a9f9..e6fea7d 100644 --- a/src/driveModi/Modi/CaptureRoute/captureRoute.h +++ b/src/driveModi/Modi/CaptureRoute/captureRoute.h @@ -33,7 +33,7 @@ class CaptureRoute : public ManualControl { * @param moveControl for ManualControl * @param navigation to add Points */ - CaptureRoute(MoveControl* moveControl, const ControllPadInput *input, Navigation* navigation); + CaptureRoute(MoveControl* moveControl, const ControlPadInput *input, Navigation* navigation); /** * @brief Calls runCaptureRoute and ManualControl::loop diff --git a/src/driveModi/Modi/ManualControl/manualControl.cpp b/src/driveModi/Modi/ManualControl/manualControl.cpp index fec6158..bae63a4 100644 --- a/src/driveModi/Modi/ManualControl/manualControl.cpp +++ b/src/driveModi/Modi/ManualControl/manualControl.cpp @@ -10,7 +10,7 @@ */ #include "manualControl.h" -ManualControl::ManualControl(MoveControl *moveControl, const ControllPadInput *input) { +ManualControl::ManualControl(MoveControl *moveControl, const ControlPadInput *input) { this->moveControl = moveControl; this->input = input; this->moveControl->setDrivingStatus(DrivingStatus::drive); diff --git a/src/driveModi/Modi/ManualControl/manualControl.h b/src/driveModi/Modi/ManualControl/manualControl.h index d470a77..2e93fe1 100644 --- a/src/driveModi/Modi/ManualControl/manualControl.h +++ b/src/driveModi/Modi/ManualControl/manualControl.h @@ -13,7 +13,7 @@ #include "moveControl.h" #include "driveModi/driveModi.h" -#include "controllPadInput.h" +#include "controlPadInput.h" /** * @brief Drive the Rover with a Joystick @@ -25,7 +25,7 @@ */ class ManualControl : public DriveModi { public: - ManualControl(MoveControl *moveControl, const ControllPadInput *input); + ManualControl(MoveControl *moveControl, const ControlPadInput *input); /** * @brief Destroy the Manual Control object @@ -72,7 +72,7 @@ class ManualControl : public DriveModi { protected: MoveControl *moveControl; - const ControllPadInput* input; + const ControlPadInput* input; private: uint32_t lastMillis = 0; diff --git a/src/driveModi/driveManager.cpp b/src/driveModi/driveManager.cpp index 0fddd4f..acd61c4 100644 --- a/src/driveModi/driveManager.cpp +++ b/src/driveModi/driveManager.cpp @@ -15,7 +15,7 @@ Modi& operator++(Modi& m, int) { return m = (m == Modi::TestMode) ? Modi::Off : static_cast(static_cast(m)+1); } -DriveManager::DriveManager(MoveControl *moveControl, const ControllPadInput *input, bool wifi) { +DriveManager::DriveManager(MoveControl *moveControl, const ControlPadInput *input, bool wifi) { this->moveControl = moveControl; this->input = input; diff --git a/src/driveModi/driveManager.h b/src/driveModi/driveManager.h index 50d0266..d27edf9 100644 --- a/src/driveModi/driveManager.h +++ b/src/driveModi/driveManager.h @@ -21,7 +21,7 @@ #include "config.h" #include "networkConfig.h" #include "debugTimes.h" -#include "controllPadInput.h" +#include "controlPadInput.h" // All Drive Modi #include "driveModi/Modi/ManualControl/manualControl.h" @@ -52,7 +52,7 @@ class DriveManager { * * @param moveControl */ - DriveManager(MoveControl *moveControl, const ControllPadInput *input, bool wifi = false); + DriveManager(MoveControl *moveControl, const ControlPadInput *input, bool wifi = false); /** * @brief Destroy the Drive Manager object @@ -118,7 +118,7 @@ class DriveManager { private: Modi currentModus = Modi::Off; MoveControl *moveControl; - const ControllPadInput* input; + const ControlPadInput* input; DriveModi *currentModusPtr = nullptr; Navigation* navigation; SPIClass* spiPort; diff --git a/src/main.cpp b/src/main.cpp index beb3555..45c62c1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,7 +29,7 @@ #include "debugMqtt.h" #include "battery.h" #include "debugTimes.h" -#include "controllPad.h" +#include "controlPad.h" #include "menu.h" #include "menuAction.h" @@ -50,7 +50,7 @@ LcdWrapper* lcdWrapper; OutputBuf* outputBuf; DebugMqtt* debugMqtt = nullptr; Battery* mainBattery; -ControllPad* controllPad; +ControlPad* controlPad; bool wifiIsActive; @@ -66,8 +66,8 @@ void setup() { char wifiIndicator = 'X'; mainBattery = new Battery(35, 692000, 218500); - controllPad = new ControllPad(); - controllPad->setMenuControll(main_m); + controlPad = new ControlPad(); + controlPad->setMenuControl(main_m); Wire.begin(21, 19); Wire.setClock(400000); @@ -97,7 +97,7 @@ void setup() { std::cout << "Welcome to Kleiax-Rover" << std::endl; std::cout << "All actions from the main program run on Core -> " << xPortGetCoreID() << std::endl; - driveManager = new DriveManager(&moveController, controllPad->getControllPadDataPtr(), wifiIsActive); + driveManager = new DriveManager(&moveController, controlPad->getControlPadDataPtr(), wifiIsActive); outputBuf->activateMqtt(false); @@ -120,7 +120,7 @@ void loop() { wifiTime.stopConsol("WiFi-Time", 10); } driveManager->loop(); - controllPad->loop(); + controlPad->loop(); lcdWrapper->loop(); mainBattery->loop();