48 lines
1.0 KiB
C++
48 lines
1.0 KiB
C++
#ifndef __screen_calibrate
|
|
#define __screen_calibrate
|
|
|
|
#include "include/screenids.h"
|
|
#include "./baseheightentry.h"
|
|
#include "../screen.h"
|
|
#include "../control.h"
|
|
|
|
|
|
enum CalibrateStep
|
|
{
|
|
CalibrateStepCurrent = 0,
|
|
CalibrateStepMax,
|
|
CalibrateStepMin,
|
|
|
|
__CalibrateStepCount
|
|
};
|
|
|
|
|
|
/*
|
|
* Calibrate screen
|
|
* Configures the absolute height (calculates the offset) and
|
|
* the allowed minimum and maximum absolute height.
|
|
*/
|
|
class CalibrateScreen : public BaseHeightEntryScreen
|
|
{
|
|
public:
|
|
CalibrateScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseHeightEntryScreen(screenManager, display) { }
|
|
|
|
ScreenId screenId() { return ScreenId::Calibrate; };
|
|
|
|
protected:
|
|
void initHeights();
|
|
uint16_t getHeight() { return this->height[this->step]; }
|
|
void setHeight(uint16_t value) { this->height[this->step] = value; };
|
|
bool nextPage();
|
|
|
|
bool isValidHeight();
|
|
const char* getTitle();
|
|
|
|
private:
|
|
CalibrateStep step = CalibrateStepCurrent;
|
|
|
|
uint16_t height[__CalibrateStepCount];
|
|
};
|
|
|
|
#endif
|