diff --git a/src/SpecialMenus/Akku/menuAkku.cpp b/src/SpecialMenus/Akku/menuAkku.cpp deleted file mode 100644 index b7aa5e3..0000000 --- a/src/SpecialMenus/Akku/menuAkku.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file menuAkku.cpp - * @author Alexander Klein (alex@kleiax.de) - * @brief Contains a implementation of the class MenuAkku - * @version 0.1 - * @date 2022-02-05 - * - * @copyright Copyright (c) 2022 - * - */ - -#include "menuAkku.h" - -MenuAkku::MenuAkku(Battery* mainBattery, Ps3Controller* gamepad) { - this->mainBattery = mainBattery; - this->gamepad = gamepad; -} - -void MenuAkku::right() { - this->printMenu(); -} - -void MenuAkku::left() { - if (this->parentMenu) - this->parentMenu->printMenu(); -} - -void MenuAkku::no() { - this->left(); -} - -void MenuAkku::yes() { - this->right(); -} - -void MenuAkku::printMenu() { - char buf[17]; - uint8_t controllerBattery = -1; - uint8_t mainBattery = this->mainBattery->getBatteryPercent(); - double mainBatteryVolt = this->mainBattery->getBatteryVoltage(); - - if( controllerBattery != this->gamepad->data.status.battery ){ - controllerBattery = this->gamepad->data.status.battery; - } - - if( controllerBattery == ps3_status_battery_charging ) sprintf(buf, "LOAD"); - else if( controllerBattery == ps3_status_battery_full ) sprintf(buf, "FULL"); - else if( controllerBattery == ps3_status_battery_high ) sprintf(buf, "HIGH"); - else if( controllerBattery == ps3_status_battery_low) sprintf(buf, "LOW"); - else if( controllerBattery == ps3_status_battery_dying ) sprintf(buf, "BAD"); - else if( controllerBattery == ps3_status_battery_shutdown ) sprintf(buf, "OFF"); - else sprintf(buf, "UNDEF"); - - if (this->lcd) { - lcd->clear(); - lcd->setCursor(0, 0); - lcd->printf("Controller: %s", buf); - lcd->setCursor(0, 1); - lcd->printf("Main: %u%% %4.2fV", mainBattery, mainBatteryVolt); - } - std::cout << "Controller: " << buf << " Main: " << (int) mainBattery << "% " << mainBatteryVolt << "V" << std::endl; -} - -void MenuAkku::update() { - if (millis() - this->lastMillis < this->delay) { - return; - } - this->printMenu(); - this->lastMillis = millis(); -} diff --git a/src/SpecialMenus/Akku/menuAkku.h b/src/SpecialMenus/Akku/menuAkku.h deleted file mode 100644 index cbdeee5..0000000 --- a/src/SpecialMenus/Akku/menuAkku.h +++ /dev/null @@ -1,65 +0,0 @@ -/** - * @file menuAkku.h - * @author Alexander Klein (alex@kleiax.de) - * @brief Contains a Menu class to show battery pack informations - * @version 0.1 - * @date 2022-02-05 - * - * @copyright Copyright (c) 2022 - * - */ - -#ifndef MENU_AKKU_H -#define MENU_AKKU_H - -#include - -#include "menuControl.h" -#include "battery.h" - -/** - * @brief This class shows battery informations - * - * Provide information for main battery pack and - * PS3-Controller battery pack - * - */ -class MenuAkku : public MenuControl { - public: - /** - * @brief Construct a new Menu Akku object - * - */ - MenuAkku(Battery* mainBattery, Ps3Controller* gamepad); - - void down() override {} - void up() override {} - void right() override; - void left() override; - void no() override; - void yes() override; - - /** - * @brief Prints the Information to display and console - * - * The informations are only printed to the display if it - * set. - */ - void printMenu() override; - - /** - * @brief Renew the informations and print them - * - */ - void update() override; - - private: - const uint16_t delay = 15000; - uint32_t lastMillis = 0; - - Battery* mainBattery; - Ps3Controller* gamepad; - -}; - -#endif // MENU_AKKU_H diff --git a/src/SpecialMenus/Systeminformation/menuSysteminformatio.cpp b/src/SpecialMenus/Systeminformation/menuSysteminformatio.cpp index 9afde48..bbd3982 100644 --- a/src/SpecialMenus/Systeminformation/menuSysteminformatio.cpp +++ b/src/SpecialMenus/Systeminformation/menuSysteminformatio.cpp @@ -11,6 +11,12 @@ #include "menuSysteminformation.h" +MenuSysteminformation::MenuSysteminformation(Battery* mainBattery, Ps3Controller* gamepad) + : MenuInformationSites(5) { + this->mainBattery = mainBattery; + this->gamepad = gamepad; +} + void MenuSysteminformation::printPage() const { String lineOne = ""; String lineTwo = ""; @@ -25,10 +31,34 @@ void MenuSysteminformation::printPage() const { lineTwo.concat((millis() / 1000)); break; + case 2: + lineOne = "Main battery:"; + lineTwo = ""; + lineTwo.concat(this->mainBattery->getBatteryPercent()); + lineTwo.concat("% V="); + lineTwo.concat(this->mainBattery->getBatteryVoltage()); + break; + + case 3: + lineOne = "PS3 battery"; + lineTwo = "is "; + MenuSysteminformation::ps3ToString(this->gamepad->data.status.battery); + break; + default: this->printDefault(); return; } this->print(lineOne, lineTwo); -} +} + +String MenuSysteminformation::ps3ToString(uint8_t battery) { + if( battery == ps3_status_battery_charging ) return "LOAD"; + else if( battery == ps3_status_battery_full ) return "FULL"; + else if( battery == ps3_status_battery_high ) return "HIGH"; + else if( battery == ps3_status_battery_low) return "LOW"; + else if( battery == ps3_status_battery_dying ) return "BAD"; + else if( battery == ps3_status_battery_shutdown ) return "OFF"; + else return "UNDEF"; +} diff --git a/src/SpecialMenus/Systeminformation/menuSysteminformation.h b/src/SpecialMenus/Systeminformation/menuSysteminformation.h index 974b60b..b316e65 100644 --- a/src/SpecialMenus/Systeminformation/menuSysteminformation.h +++ b/src/SpecialMenus/Systeminformation/menuSysteminformation.h @@ -13,15 +13,21 @@ #define MENU_SYSTEMINFORMATION_H #include +#include #include "menuInformationSites.h" +#include "battery.h" class MenuSysteminformation : public MenuInformationSites { public: - MenuSysteminformation() : MenuInformationSites(5) {} + MenuSysteminformation(Battery* mainBattery, Ps3Controller* gamepad); private: void printPage() const override; + static String ps3ToString(uint8_t battery); + + Battery* mainBattery; + Ps3Controller* gamepad; }; #endif // MENU_SYSTEMINFORMATION_H diff --git a/src/main.cpp b/src/main.cpp index 4235982..30e1e6c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -41,7 +41,6 @@ #include "SpecialMenus/driveModi/TestMode/menuTestMode.h" #include "SpecialMenus/PID/menuPidSettings.h" #include "SpecialMenus/GPS/menuGPS.h" -#include "SpecialMenus/Akku/menuAkku.h" #include "SpecialMenus/Systeminformation/menuSysteminformation.h" MoveControl moveController; @@ -281,8 +280,7 @@ void makeMenu() { MenuAutopilot* auto_m = new MenuAutopilot(driveManager); MenuTestMode* test_m = new MenuTestMode(driveManager); MenuGPS* gps_m = new MenuGPS(driveManager); - MenuAkku* akku_m = new MenuAkku(mainBattery, gamepad); - MenuSysteminformation* sys_m = new MenuSysteminformation(); + MenuSysteminformation* sys_m = new MenuSysteminformation(mainBattery, gamepad); // Set Menus on LCD main_m->setLcd(lcd); @@ -295,7 +293,6 @@ void makeMenu() { auto_m->setLcd(lcd); test_m->setLcd(lcd); gps_m->setLcd(lcd); - akku_m->setLcd(lcd); sys_m->setLcd(lcd); @@ -304,13 +301,11 @@ void makeMenu() { MenuAction* gps_e = new MenuAction("GPS", gps_m); MenuAction* pid_e = new MenuAction("PID", pid_m); MenuAction* restart_e = new MenuAction("Restart", restart); - MenuAction* akku_e = new MenuAction("Battery", akku_m); MenuAction* contr_e = new MenuAction("Remove PS3", disconnectController); MenuAction* sys_e = new MenuAction("Systeminfo", sys_m); main_m->addEntry(mode_e); main_m->addEntry(gps_e); main_m->addEntry(pid_e); - main_m->addEntry(akku_e); main_m->addEntry(sys_e); main_m->addEntry(contr_e); main_m->addEntry(restart_e);