Files
Bachelorarbeit-Rover/src/SpecialMenus/driveModi/ManualDrive/menuManualDrive.cpp
T
2023-08-18 16:51:54 +02:00

99 lines
2.2 KiB
C++

/**
* @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;
}
}