finished speed and sensor menu in modes

This commit is contained in:
2023-09-29 11:30:13 +02:00
parent d7357d4f95
commit 45264c6481
17 changed files with 96 additions and 78 deletions
+1 -1
View File
@@ -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;
+6
View File
@@ -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;
}
+10 -2
View File
@@ -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;
+17 -2
View File
@@ -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);
}
+3 -2
View File
@@ -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