finished speed and sensor menu in modes
This commit is contained in:
@@ -29,7 +29,7 @@ class MenuPidSettings : public MenuIntInputWrapper {
|
||||
*/
|
||||
MenuPidSettings(PID* pid);
|
||||
|
||||
void action(int16_t* values, uint8_t length);
|
||||
void action(int16_t* values, uint8_t length) override;
|
||||
|
||||
private:
|
||||
PID* pid;
|
||||
|
||||
@@ -11,3 +11,9 @@
|
||||
|
||||
#include "menuSpeed.h"
|
||||
|
||||
void MenuSpeed::action(int16_t* values, uint8_t length) {
|
||||
if (length != 2)
|
||||
return;
|
||||
this->speeds.x = (double) values[0] / 10.0;
|
||||
this->speeds.rot = (double) values[1] / 10.0;
|
||||
}
|
||||
|
||||
@@ -13,9 +13,17 @@
|
||||
#define MENU_SPEED_H
|
||||
|
||||
#include <menuIntInput.h>
|
||||
#include "moveControl.h"
|
||||
|
||||
class MenuSpeed : public MenuIntInputWrapper {
|
||||
public:
|
||||
MenuSpeed(DrivingSpeeds& speeds) : speeds(speeds){};
|
||||
|
||||
void action(int16_t* values, uint8_t length) override;
|
||||
|
||||
private:
|
||||
DrivingSpeeds& speeds;
|
||||
|
||||
class MenuSpeed : public MenuIntInput {
|
||||
|
||||
};
|
||||
|
||||
#endif // MENU_SPEED_H
|
||||
|
||||
@@ -56,6 +56,7 @@ void MenuManualControl::init() {
|
||||
this->driveManager->changeModus(this->manualControl);
|
||||
this->setCountPages(4);
|
||||
this->updateDelay = 500;
|
||||
this->activateSpeedMenu();
|
||||
MenuDriveMode::init();
|
||||
}
|
||||
|
||||
|
||||
@@ -77,8 +77,7 @@ void MenuTestMode::init() {
|
||||
this->testMode = new TestMode();
|
||||
this->driveManager->changeModus(this->testMode);
|
||||
|
||||
testMode->setMaxSpeed(1);
|
||||
testMode->setMaxRotation(8);
|
||||
this->testMode->setSpeeds(DrivingSpeeds{1, 8});
|
||||
|
||||
auto dummy = []() {
|
||||
std::cout << "Dummy in Action" <<std::endl;
|
||||
|
||||
@@ -24,6 +24,8 @@ void MenuDriveMode::left() {
|
||||
|
||||
this->firstPrint = true;
|
||||
this->configureOnLeave();
|
||||
if (this->menuSpeed)
|
||||
delete this->menuSpeed;
|
||||
this->driveManager->changeModus();
|
||||
MenuInformationSites::left();
|
||||
}
|
||||
@@ -85,6 +87,20 @@ void MenuDriveMode::init() {
|
||||
this->activeMenu = nullptr;
|
||||
}
|
||||
|
||||
void MenuDriveMode::activateSpeedMenu() {
|
||||
if (!this->driveManager->isActive())
|
||||
return;
|
||||
|
||||
DrivingSpeeds& speeds = this->driveManager->getDriveModiPtr()->getSpeedsRef();
|
||||
MenuIntInput* menu = new MenuIntInput(2, new MenuSpeed(speeds));
|
||||
|
||||
menu->setMinMax(5, UINT8_MAX);
|
||||
menu->setEntry(0, "x m/s e-1", driveManager->getDrivingSpeedsRef().x * 10);
|
||||
menu->setEntry(1, "z rad/s e-1", driveManager->getDrivingSpeedsRef().rot * 10);
|
||||
|
||||
this->addSpeedMenu(menu);
|
||||
}
|
||||
|
||||
void MenuDriveMode::enterSpeedMenu() {
|
||||
this->activeMenu = this->menuSpeed;
|
||||
this->enterMenu();
|
||||
@@ -97,9 +113,8 @@ void MenuDriveMode::enterSensorMenu() {
|
||||
|
||||
void MenuDriveMode::enterMenu() {
|
||||
if (!this->activeMenu)
|
||||
return
|
||||
return;
|
||||
|
||||
this->activeMenu->printMenu();
|
||||
std::cout << "Sensor Menu was theretically printed" << std::endl;
|
||||
this->activeMenu->setParentMenu(this);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ class MenuDriveMode : public MenuInformationSites {
|
||||
MenuDriveMode(DriveManager* driveManager);
|
||||
|
||||
void addSensorMenu(MenuSensorData* menuSensor) { this->menuSensor = menuSensor; }
|
||||
void addSpeedMenu(MenuSpeed* menuSpeed) { this->menuSpeed = menuSpeed; }
|
||||
void addSpeedMenu(MenuIntInput* menuSpeed) { this->menuSpeed = menuSpeed; }
|
||||
|
||||
/**
|
||||
* @brief Goes back to the parentMenu.
|
||||
@@ -48,6 +48,7 @@ class MenuDriveMode : public MenuInformationSites {
|
||||
protected:
|
||||
void init() override;
|
||||
virtual void configureOnLeave() {}
|
||||
void activateSpeedMenu();
|
||||
void enterSpeedMenu();
|
||||
void enterSensorMenu();
|
||||
|
||||
@@ -60,6 +61,6 @@ class MenuDriveMode : public MenuInformationSites {
|
||||
|
||||
MenuControl* activeMenu = nullptr;
|
||||
MenuSensorData* menuSensor = nullptr;
|
||||
MenuSpeed* menuSpeed = nullptr;
|
||||
MenuIntInput* menuSpeed = nullptr;
|
||||
};
|
||||
#endif // MENU_DRIVE_MODI_H
|
||||
|
||||
Reference in New Issue
Block a user