Added GametrakCalibrateDisplay

This commit is contained in:
2020-05-25 22:40:02 +02:00
parent 65875fc995
commit ace299f922
6 changed files with 100 additions and 8 deletions

View File

@@ -47,8 +47,10 @@ private:
Label{25, 125} // 100, 23
}};
ProgressBar m_progressBar0{20, 200, 200, 10, 0, 1000};
ProgressBar m_progressBar1{20, 230, 200, 10, 0, 1000};
std::array<ProgressBar, 2> m_progressBars {{
ProgressBar{20, 200, 200, 10, 0, 1000},
ProgressBar{20, 230, 200, 10, 0, 1000}
}};
};
CalibrateDisplay::CalibrateDisplay(bool bootup) :
@@ -77,8 +79,8 @@ void CalibrateDisplay::initScreen()
for (auto &label : m_labels)
label.start();
m_progressBar0.start();
m_progressBar1.start();
for (auto &progressBar : m_progressBars)
progressBar.start();
}
void CalibrateDisplay::redraw()
@@ -89,8 +91,8 @@ void CalibrateDisplay::redraw()
m_labels[2].redraw(String{brems});
m_labels[3].redraw(String{raw_brems});
m_progressBar0.redraw(gas);
m_progressBar1.redraw(brems);
m_progressBars[0].redraw(gas);
m_progressBars[1].redraw(brems);
}
void CalibrateDisplay::stop()

View File

@@ -0,0 +1,80 @@
#pragma once
#include <array>
#include <WString.h>
#include "demodisplay.h"
#include "actions/switchscreenaction.h"
#include "globals.h"
#include "texts.h"
#include "widgets/label.h"
#include "widgets/progressbar.h"
#include "modes/ignoreinputmode.h"
namespace {
class StatusDisplay;
class BoardcomputerHardwareSettingsMenu;
}
namespace {
class GametrakCalibrateDisplay : public DemoDisplay, public SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, public BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>
{
using Base = DemoDisplay;
public:
void initScreen() override;
void redraw() override;
private:
std::array<Label, 6> m_labels {{
Label{25, 50}, // 100, 23
Label{120, 50}, // 100, 23
Label{25, 75}, // 100, 23
Label{120, 75}, // 100, 23
Label{25, 100}, // 100, 23
Label{120, 100} // 100, 23
}};
std::array<ProgressBar, 3> m_progressBars {{
ProgressBar{20, 200, 200, 10, 0, 1000},
ProgressBar{20, 230, 200, 10, 0, 1000},
ProgressBar{20, 260, 200, 10, 0, 1000}
}};
};
void GametrakCalibrateDisplay::initScreen()
{
tft.fillScreen(TFT_BLACK);
tft.setTextFont(4);
tft.setTextColor(TFT_YELLOW);
tft.drawString(TEXT_CALIBRATE, 5, 5, 4);
tft.fillRect(0, 34, tft.width(), 3, TFT_WHITE);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
for (auto &label : m_labels)
label.start();
for (auto &progressBar : m_progressBars)
progressBar.start();
}
void GametrakCalibrateDisplay::redraw()
{
m_labels[0].redraw(String{gametrakX});
m_labels[1].redraw(String{raw_gametrakX});
m_labels[2].redraw(String{gametrakY});
m_labels[3].redraw(String{raw_gametrakY});
m_labels[4].redraw(String{gametrakDist});
m_labels[5].redraw(String{raw_gametrakDist});
m_progressBars[0].redraw(gametrakX);
m_progressBars[1].redraw(gametrakY);
m_progressBars[2].redraw(gametrakDist);
}
}

View File

@@ -15,6 +15,7 @@
namespace {
class BoardcomputerHardwareSettingsMenu;
class CalibrateDisplay;
class GametrakCalibrateDisplay;
class SettingsMenu;
}
@@ -122,6 +123,7 @@ class BoardcomputerHardwareSettingsMenu :
makeComponent<MenuItem, StaticText<TEXT_SETBREMSMIN>, SwitchScreenAction<BremsMinChangeScreen>>,
makeComponent<MenuItem, StaticText<TEXT_SETBREMSMAX>, SwitchScreenAction<BremsMaxChangeScreen>>,
#ifdef FEATURE_GAMETRAK
makeComponent<MenuItem, StaticText<TEXT_GAMETRAKCALIBRATE>, SwitchScreenAction<GametrakCalibrateDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKXMIN>, SwitchScreenAction<GametrakXMinChangeScreen>>,
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKXMAX>, SwitchScreenAction<GametrakXMaxChangeScreen>>,
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKYMIN>, SwitchScreenAction<GametrakYMinChangeScreen>>,

View File

@@ -91,7 +91,7 @@ constexpr Settings::DefaultMode defaultDefaultMode {
.smoothing = 20,
.frontPercentage = 100,
.backPercentage = 100,
.add_schwelle = 950,
.add_schwelle = 750,
.gas1_wert = 1250,
.gas2_wert = 1250,
.brems1_wert = 250,
@@ -105,7 +105,7 @@ constexpr Settings::TempomatMode defaultTempomatMode {
constexpr Settings::LarsmMode defaultLarsmMode {
.mode = LarsmModeMode::Mode4,
.iterations = 5
.iterations = 100
};
constexpr Settings defaultSettings{

View File

@@ -35,6 +35,7 @@
#include "displays/calibratedisplay.h"
#include "displays/dualgraphdisplay.h"
#include "displays/gameoflifedisplay.h"
#include "displays/gametrakcalibratedisplay.h"
#include "displays/lockscreen.h"
#include "displays/metersdisplay.h"
#include "displays/pingpongdisplay.h"
@@ -103,6 +104,9 @@ union X {
CalibrateDisplay calibrateDisplay;
DualGraphDisplay dualGraphDisplay;
GameOfLifeDisplay gameOfLifeDisplay;
#ifdef FEATURE_GAMETRAK
GametrakCalibrateDisplay gametrakCalibrateDisplay;
#endif
Lockscreen lockScreen;
MetersDisplay metersDisplay;
PingPongDisplay pingPongDisplay;
@@ -236,6 +240,9 @@ template<> decltype(displays.bmsDisplay) &
template<> decltype(displays.calibrateDisplay) &getRefByType<decltype(displays.calibrateDisplay)>() { return displays.calibrateDisplay; }
template<> decltype(displays.dualGraphDisplay) &getRefByType<decltype(displays.dualGraphDisplay)>() { return displays.dualGraphDisplay; }
template<> decltype(displays.gameOfLifeDisplay) &getRefByType<decltype(displays.gameOfLifeDisplay)>() { return displays.gameOfLifeDisplay; }
#ifdef FEATURE_GAMETRAK
template<> decltype(displays.gametrakCalibrateDisplay) &getRefByType<decltype(displays.gametrakCalibrateDisplay)>() { return displays.gametrakCalibrateDisplay; }
#endif
template<> decltype(displays.lockScreen) &getRefByType<decltype(displays.lockScreen)>() { return displays.lockScreen; }
template<> decltype(displays.metersDisplay) &getRefByType<decltype(displays.metersDisplay)>() { return displays.metersDisplay; }
template<> decltype(displays.pingPongDisplay) &getRefByType<decltype(displays.pingPongDisplay)>() { return displays.pingPongDisplay; }

View File

@@ -227,6 +227,7 @@ constexpr char TEXT_SETGASMIN[] = "Set gasMin";
constexpr char TEXT_SETGASMAX[] = "Set gasMax";
constexpr char TEXT_SETBREMSMIN[] = "Set bremsMin";
constexpr char TEXT_SETBREMSMAX[] = "Set bremsMax";
constexpr char TEXT_GAMETRAKCALIBRATE[] = "Gametrak calibrate";
constexpr char TEXT_SETGAMETRAKXMIN[] = "Set gametrakXMin";
constexpr char TEXT_SETGAMETRAKXMAX[] = "Set gametrakXMax";
constexpr char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin";