/** * @file menuManualDrive.cpp * @author Alexander Klein (alex@kleiax.de) * @brief Contains an implementation of the class MenuManualDrive * @version 0.1 * @date 2022-01-20 * * @copyright Copyright (c) 2022 * */ #include "menuManualDrive.h" MenuManualControl::MenuManualControl(DriveManager* driveManager) : MenuDriveMode(driveManager) { } MenuManualControl::~MenuManualControl() { } void MenuManualControl::printPage() const { String lineOne = ""; String lineTwo = ""; switch (this->getCurrentPage()) { case 0: lineOne = "-Ready to drive-"; break; case 1: lineOne = "Input mode:"; if (this->manualControl->getInputMode() == ManualControl::InputMode::Analog) lineTwo = "Analog"; else lineTwo = "Digital"; break; case 2: lineOne = "Speed: "; lineOne.concat(this->manualControl->getMaxSpeed()); lineTwo = "- dec 0.1 inc +"; break; case 3: lineOne = "RotSpeed: "; lineOne.concat(this->manualControl->getMaxRotation()); lineTwo = "- dec 0.1 inc +"; break; default: this->printDefault(); return; } this->print(lineOne, lineTwo); } void MenuManualControl::init() { this->firstPrint = false; this->driveManager->changeModus(Modi::ManualControl); this->manualControl = (ManualControl*) this->driveManager->getDriveModiPtr(); this->setCountPages(4); this->updateDelay = 500; } void MenuManualControl::runCommand() const { switch (this->getCurrentPage()) { case 1: this->manualControl->switchInputMode(); break; case 2: this->manualControl->increaseMaxSpeed(); break; case 3: this->manualControl->increaseMaxRotation(); break; default: break; } } void MenuManualControl::runCommandNo() const { switch (this->getCurrentPage()) { case 2: this->manualControl->decreaseMaxSpeed(); break; case 3: this->manualControl->decreaseMaxRotation(); break; default: break; } }