/** * @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) : battery{battery} { this->setUpdateDelay(MenuCalibrateBattery::updateDelay); } 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 (static_cast(parentMenu)) { this->parentMenu->printMenu(); } } void MenuCalibrateBattery::right() { if (this->battery->getCalibrationState() == Battery::CalibrationState::Waiting) { this->battery->nextVoltageIsReady(); } }