- added batteryCalibration
- start with default Menus for DriveModes
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* @file menuCalibrateBattery.cpp
|
||||
* @author Alexander Klein (alex@kleiax.de)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2023-09-26
|
||||
*
|
||||
* @copyright Copyright (c) 2023
|
||||
*
|
||||
*/
|
||||
|
||||
#include "menuCalibrateBattery.h"
|
||||
|
||||
MenuCalibrateBattery::MenuCalibrateBattery(Battery* battery) {
|
||||
this->setUpdateDelay(400);
|
||||
this->battery = battery;
|
||||
}
|
||||
|
||||
void MenuCalibrateBattery::printMenu() {
|
||||
if (this->battery->getCalibrationState() == Battery::CalibrationState::None)
|
||||
this->battery->startCalibration();
|
||||
|
||||
String lineOne = "";
|
||||
String lineTwo = "";
|
||||
|
||||
switch (this->battery->getCalibrationState()) {
|
||||
case Battery::CalibrationState::Waiting:
|
||||
lineOne = "Target Voltage:";
|
||||
lineTwo = "7 + ";
|
||||
lineTwo.concat(this->battery->getCurrentCalibrationVoltage());
|
||||
lineTwo.concat(" / 10");
|
||||
break;
|
||||
|
||||
case Battery::CalibrationState::Reading:
|
||||
lineOne = "Reading...";
|
||||
break;
|
||||
|
||||
case Battery::CalibrationState::Finished:
|
||||
lineOne = "Finished!";
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
this->print(lineOne, lineTwo);
|
||||
}
|
||||
|
||||
void MenuCalibrateBattery::left() {
|
||||
this->battery->finishCalibration();
|
||||
|
||||
if (parentMenu)
|
||||
this->parentMenu->printMenu();
|
||||
}
|
||||
|
||||
void MenuCalibrateBattery::right() {
|
||||
if (this->battery->getCalibrationState() == Battery::CalibrationState::Waiting)
|
||||
this->battery->nextVoltageIsReady();
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @file menuCalibrateBattery.h
|
||||
* @author Alexander Klein (alex@kleiax.de)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2023-09-26
|
||||
*
|
||||
* @copyright Copyright (c) 2023
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MENU_CALIBRATE_BATTERY_H
|
||||
#define MENU_CALIBRATE_BATTERY_H
|
||||
|
||||
#include "menuControl.h"
|
||||
#include "battery.h"
|
||||
|
||||
class MenuCalibrateBattery : public MenuControl {
|
||||
public:
|
||||
MenuCalibrateBattery(Battery* battery);
|
||||
|
||||
void printMenu() override;
|
||||
|
||||
void left() override;
|
||||
void no() override { this->left(); }
|
||||
void right() override;
|
||||
void yes() override { this->right(); }
|
||||
|
||||
private:
|
||||
Battery* battery;
|
||||
};
|
||||
|
||||
#endif //MENU_CALIBRATE_BATTERY_H
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* @file menuSpeed.cpp
|
||||
* @author Alexander Klein (alex@kleiax.de)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2023-09-26
|
||||
*
|
||||
* @copyright Copyright (c) 2023
|
||||
*
|
||||
*/
|
||||
|
||||
#include "menuSpeed.h"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* @file menuSpeed.h
|
||||
* @author Alexander Klein (alex@kleiax.de)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2023-09-26
|
||||
*
|
||||
* @copyright Copyright (c) 2023
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MENU_SPEED_H
|
||||
#define MENU_SPEED_H
|
||||
|
||||
#include <menuIntInput.h>
|
||||
|
||||
class MenuSpeed : MenuIntInput {
|
||||
|
||||
};
|
||||
|
||||
#endif // MENU_SPEED_H
|
||||
@@ -14,6 +14,7 @@
|
||||
MenuSysteminformation::MenuSysteminformation(Battery* mainBattery)
|
||||
: MenuInformationSites(8) {
|
||||
this->mainBattery = mainBattery;
|
||||
this->noEqualLeft = true;
|
||||
}
|
||||
|
||||
void MenuSysteminformation::printPage() const {
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
|
||||
#include "menuInformationSites.h"
|
||||
#include "driveModi/driveManager.h"
|
||||
#include "SpecialMenus/SensorData/menuSensorData.h"
|
||||
#include "SpecialMenus/Speed/menuSpeed.h"
|
||||
|
||||
/**
|
||||
* @brief A base class for Menus about DriveModi
|
||||
@@ -36,6 +38,9 @@ class MenuDriveMode : public MenuInformationSites {
|
||||
void configureOnLeave() {}
|
||||
|
||||
DriveManager* driveManager;
|
||||
MenuSensorData* menuSensor;
|
||||
MenuSpeed* menuSpeed;
|
||||
|
||||
bool firstPrint = true;
|
||||
};
|
||||
|
||||
|
||||
+4
-1
@@ -47,6 +47,7 @@
|
||||
#include "SpecialMenus/PID/menuPidSettings.h"
|
||||
#include "SpecialMenus/Route/menuRoute.h"
|
||||
#include "SpecialMenus/SensorData/menuSensorData.h"
|
||||
#include "SpecialMenus/CalibrateBattery/menuCalibrateBattery.h"
|
||||
|
||||
MoveControl moveController;
|
||||
Network* network;
|
||||
@@ -142,7 +143,7 @@ void loop() {
|
||||
lcdWrapper->loop();
|
||||
mainBattery->loop();
|
||||
|
||||
// new Value ervery 0.5s
|
||||
// new Value ervery 0.5s
|
||||
if (mainBattery->isNewValue()) {
|
||||
static uint8_t batteryLowCounter = 0;
|
||||
if (mainBattery->isBatteryLow(10))
|
||||
@@ -216,6 +217,7 @@ void makeMenu() {
|
||||
MenuSensorData* sen_m = new MenuSensorData(sensorData);
|
||||
//TODO: Wie bekommt jeder die dumme Route?
|
||||
MenuRoute* rout_m = new MenuRoute(new Route());
|
||||
MenuCalibrateBattery* bat_m = new MenuCalibrateBattery(mainBattery);
|
||||
|
||||
auto_m->setUpdateDelay(1000);
|
||||
sys_m->setUpdateDelay(1500);
|
||||
@@ -242,6 +244,7 @@ void makeMenu() {
|
||||
set_m->addEntry(new MenuAction("Speed", dummy));
|
||||
set_m->addEntry(new MenuAction("Distance", dummy));
|
||||
set_m->addEntry(new MenuAction("WiFi", dummy));
|
||||
set_m->addEntry(new MenuAction("Battery", bat_m));
|
||||
|
||||
// Entry for the PID Menu
|
||||
pid_m->addEntry(new MenuAction("Left", pidl_m));
|
||||
|
||||
Reference in New Issue
Block a user