71 lines
1.4 KiB
C++
71 lines
1.4 KiB
C++
/**
|
|
* @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<bool>(parentMenu))
|
|
{
|
|
this->parentMenu->printMenu();
|
|
}
|
|
}
|
|
|
|
void MenuCalibrateBattery::right()
|
|
{
|
|
if (this->battery->getCalibrationState() == Battery::CalibrationState::Waiting)
|
|
{
|
|
this->battery->nextVoltageIsReady();
|
|
}
|
|
}
|