#include "./calibrate.h" #include "./home.h" #include "include/metrics.h" #include "lib/settings.h" void CalibrateScreen::initHeights() { this->height[CalibrateStepCurrent] = Control.getCurrentHeight(); this->height[CalibrateStepMax] = Settings.Height.Maximum; this->height[CalibrateStepMin] = Settings.Height.Minimum; } bool CalibrateScreen::nextPage() { this->step = (CalibrateStep)(this->step + 1); if (this->step < __CalibrateStepCount) return true; Settings.Height.Offset = this->height[CalibrateStepCurrent] - Control.getCurrentMeasurement(); Settings.Height.Maximum = this->height[CalibrateStepMax]; Settings.Height.Minimum = this->height[CalibrateStepMin]; writeSettingsHeights(); this->screenManager->show(); return false; } bool CalibrateScreen::isValidHeight() { switch (this->step) { case CalibrateStepCurrent: return this->height[CalibrateStepCurrent] >= Control.getCurrentMeasurement(); case CalibrateStepMin: return this->height[CalibrateStepMin] <= this->height[CalibrateStepCurrent]; case CalibrateStepMax: return this->height[CalibrateStepMax] > this->height[CalibrateStepMin] && this->height[CalibrateStepMax] >= this->height[CalibrateStepCurrent]; default: return true; } } const char* CalibrateScreen::getTitle() { switch (this->step) { case CalibrateStepCurrent: return "Calibrate"; case CalibrateStepMin: return "Minimum"; case CalibrateStepMax: return "Maximum"; default: return nullptr; } }