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 Label{25, 125} // 100, 23
}}; }};
ProgressBar m_progressBar0{20, 200, 200, 10, 0, 1000}; std::array<ProgressBar, 2> m_progressBars {{
ProgressBar m_progressBar1{20, 230, 200, 10, 0, 1000}; ProgressBar{20, 200, 200, 10, 0, 1000},
ProgressBar{20, 230, 200, 10, 0, 1000}
}};
}; };
CalibrateDisplay::CalibrateDisplay(bool bootup) : CalibrateDisplay::CalibrateDisplay(bool bootup) :
@@ -77,8 +79,8 @@ void CalibrateDisplay::initScreen()
for (auto &label : m_labels) for (auto &label : m_labels)
label.start(); label.start();
m_progressBar0.start(); for (auto &progressBar : m_progressBars)
m_progressBar1.start(); progressBar.start();
} }
void CalibrateDisplay::redraw() void CalibrateDisplay::redraw()
@@ -89,8 +91,8 @@ void CalibrateDisplay::redraw()
m_labels[2].redraw(String{brems}); m_labels[2].redraw(String{brems});
m_labels[3].redraw(String{raw_brems}); m_labels[3].redraw(String{raw_brems});
m_progressBar0.redraw(gas); m_progressBars[0].redraw(gas);
m_progressBar1.redraw(brems); m_progressBars[1].redraw(brems);
} }
void CalibrateDisplay::stop() 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 { namespace {
class BoardcomputerHardwareSettingsMenu; class BoardcomputerHardwareSettingsMenu;
class CalibrateDisplay; class CalibrateDisplay;
class GametrakCalibrateDisplay;
class SettingsMenu; class SettingsMenu;
} }
@@ -122,6 +123,7 @@ class BoardcomputerHardwareSettingsMenu :
makeComponent<MenuItem, StaticText<TEXT_SETBREMSMIN>, SwitchScreenAction<BremsMinChangeScreen>>, makeComponent<MenuItem, StaticText<TEXT_SETBREMSMIN>, SwitchScreenAction<BremsMinChangeScreen>>,
makeComponent<MenuItem, StaticText<TEXT_SETBREMSMAX>, SwitchScreenAction<BremsMaxChangeScreen>>, makeComponent<MenuItem, StaticText<TEXT_SETBREMSMAX>, SwitchScreenAction<BremsMaxChangeScreen>>,
#ifdef FEATURE_GAMETRAK #ifdef FEATURE_GAMETRAK
makeComponent<MenuItem, StaticText<TEXT_GAMETRAKCALIBRATE>, SwitchScreenAction<GametrakCalibrateDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKXMIN>, SwitchScreenAction<GametrakXMinChangeScreen>>, makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKXMIN>, SwitchScreenAction<GametrakXMinChangeScreen>>,
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKXMAX>, SwitchScreenAction<GametrakXMaxChangeScreen>>, makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKXMAX>, SwitchScreenAction<GametrakXMaxChangeScreen>>,
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKYMIN>, SwitchScreenAction<GametrakYMinChangeScreen>>, makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKYMIN>, SwitchScreenAction<GametrakYMinChangeScreen>>,

View File

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

View File

@@ -35,6 +35,7 @@
#include "displays/calibratedisplay.h" #include "displays/calibratedisplay.h"
#include "displays/dualgraphdisplay.h" #include "displays/dualgraphdisplay.h"
#include "displays/gameoflifedisplay.h" #include "displays/gameoflifedisplay.h"
#include "displays/gametrakcalibratedisplay.h"
#include "displays/lockscreen.h" #include "displays/lockscreen.h"
#include "displays/metersdisplay.h" #include "displays/metersdisplay.h"
#include "displays/pingpongdisplay.h" #include "displays/pingpongdisplay.h"
@@ -103,6 +104,9 @@ union X {
CalibrateDisplay calibrateDisplay; CalibrateDisplay calibrateDisplay;
DualGraphDisplay dualGraphDisplay; DualGraphDisplay dualGraphDisplay;
GameOfLifeDisplay gameOfLifeDisplay; GameOfLifeDisplay gameOfLifeDisplay;
#ifdef FEATURE_GAMETRAK
GametrakCalibrateDisplay gametrakCalibrateDisplay;
#endif
Lockscreen lockScreen; Lockscreen lockScreen;
MetersDisplay metersDisplay; MetersDisplay metersDisplay;
PingPongDisplay pingPongDisplay; PingPongDisplay pingPongDisplay;
@@ -236,6 +240,9 @@ template<> decltype(displays.bmsDisplay) &
template<> decltype(displays.calibrateDisplay) &getRefByType<decltype(displays.calibrateDisplay)>() { return displays.calibrateDisplay; } 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.dualGraphDisplay) &getRefByType<decltype(displays.dualGraphDisplay)>() { return displays.dualGraphDisplay; }
template<> decltype(displays.gameOfLifeDisplay) &getRefByType<decltype(displays.gameOfLifeDisplay)>() { return displays.gameOfLifeDisplay; } 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.lockScreen) &getRefByType<decltype(displays.lockScreen)>() { return displays.lockScreen; }
template<> decltype(displays.metersDisplay) &getRefByType<decltype(displays.metersDisplay)>() { return displays.metersDisplay; } template<> decltype(displays.metersDisplay) &getRefByType<decltype(displays.metersDisplay)>() { return displays.metersDisplay; }
template<> decltype(displays.pingPongDisplay) &getRefByType<decltype(displays.pingPongDisplay)>() { return displays.pingPongDisplay; } 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_SETGASMAX[] = "Set gasMax";
constexpr char TEXT_SETBREMSMIN[] = "Set bremsMin"; constexpr char TEXT_SETBREMSMIN[] = "Set bremsMin";
constexpr char TEXT_SETBREMSMAX[] = "Set bremsMax"; constexpr char TEXT_SETBREMSMAX[] = "Set bremsMax";
constexpr char TEXT_GAMETRAKCALIBRATE[] = "Gametrak calibrate";
constexpr char TEXT_SETGAMETRAKXMIN[] = "Set gametrakXMin"; constexpr char TEXT_SETGAMETRAKXMIN[] = "Set gametrakXMin";
constexpr char TEXT_SETGAMETRAKXMAX[] = "Set gametrakXMax"; constexpr char TEXT_SETGAMETRAKXMAX[] = "Set gametrakXMax";
constexpr char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin"; constexpr char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin";