Merge branch 'gametrak'
This commit is contained in:
@@ -85,6 +85,16 @@ build_flags =
|
|||||||
-DDEFAULT_BREMSMIN=1300
|
-DDEFAULT_BREMSMIN=1300
|
||||||
-DDEFAULT_BREMSMAX=4000
|
-DDEFAULT_BREMSMAX=4000
|
||||||
-DFEATURE_BMS
|
-DFEATURE_BMS
|
||||||
|
-DFEATURE_GAMETRAK
|
||||||
|
-DPINS_GAMETRAKX=31
|
||||||
|
-DPINS_GAMETRAKY=32
|
||||||
|
-DPINS_GAMETRAKDIST=34
|
||||||
|
-DDEFAULT_GAMETRAKXMIN=0
|
||||||
|
-DDEFAULT_GAMETRAKXMAX=4095
|
||||||
|
-DDEFAULT_GAMETRAKYMIN=0
|
||||||
|
-DDEFAULT_GAMETRAKYMAX=4095
|
||||||
|
-DDEFAULT_GAMETRAKDISTMIN=0
|
||||||
|
-DDEFAULT_GAMETRAKDISTMAX=4095
|
||||||
|
|
||||||
[env:feedc0de_usb]
|
[env:feedc0de_usb]
|
||||||
platform = ${common_env_data.platform}
|
platform = ${common_env_data.platform}
|
||||||
|
@@ -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()
|
||||||
|
80
src/displays/gametrakcalibratedisplay.h
Normal file
80
src/displays/gametrakcalibratedisplay.h
Normal 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_GAMETRAKCALIBRATE, 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);
|
||||||
|
}
|
||||||
|
}
|
@@ -15,6 +15,7 @@
|
|||||||
namespace {
|
namespace {
|
||||||
class BoardcomputerHardwareSettingsMenu;
|
class BoardcomputerHardwareSettingsMenu;
|
||||||
class CalibrateDisplay;
|
class CalibrateDisplay;
|
||||||
|
class GametrakCalibrateDisplay;
|
||||||
class SettingsMenu;
|
class SettingsMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,6 +65,64 @@ using BremsMaxChangeScreen = makeComponent<
|
|||||||
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
struct GametrakXText : public virtual TextInterface {
|
||||||
|
public:
|
||||||
|
String text() const override { return String{"gametrakX: "} + raw_gametrakX + ": " + gametrakX; }
|
||||||
|
};
|
||||||
|
struct GametrakYText : public virtual TextInterface {
|
||||||
|
public:
|
||||||
|
String text() const override { return String{"gametrakY: "} + raw_gametrakY + ": " + gametrakY; }
|
||||||
|
};
|
||||||
|
struct GametrakDistText : public virtual TextInterface {
|
||||||
|
public:
|
||||||
|
String text() const override { return String{"gametrakDist: "} + raw_gametrakDist + ": " + gametrakDist; }
|
||||||
|
};
|
||||||
|
|
||||||
|
using GametrakXMinChangeScreen = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_SETGAMETRAKXMIN>,
|
||||||
|
GametrakXMinAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
|
||||||
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
|
>;
|
||||||
|
using GametrakXMaxChangeScreen = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_SETGAMETRAKXMAX>,
|
||||||
|
GametrakXMaxAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
|
||||||
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
|
>;
|
||||||
|
using GametrakYMinChangeScreen = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_SETGAMETRAKYMIN>,
|
||||||
|
GametrakYMinAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
|
||||||
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
|
>;
|
||||||
|
using GametrakYMaxChangeScreen = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_SETGAMETRAKYMAX>,
|
||||||
|
GametrakYMaxAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
|
||||||
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
|
>;
|
||||||
|
using GametrakDistMinChangeScreen = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_SETGAMETRAKDISTMIN>,
|
||||||
|
GametrakDistMinAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
|
||||||
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
|
>;
|
||||||
|
using GametrakDistMaxChangeScreen = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_SETGAMETRAKDISTMAX>,
|
||||||
|
GametrakDistMaxAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
|
||||||
|
SwitchScreenAction<BoardcomputerHardwareSettingsMenu>
|
||||||
|
>;
|
||||||
|
#endif
|
||||||
|
|
||||||
class BoardcomputerHardwareSettingsMenu :
|
class BoardcomputerHardwareSettingsMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>,
|
public StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>,
|
||||||
@@ -77,6 +136,20 @@ class BoardcomputerHardwareSettingsMenu :
|
|||||||
makeComponent<MenuItem, StaticText<TEXT_SETGASMAX>, SwitchScreenAction<GasMaxChangeScreen>>,
|
makeComponent<MenuItem, StaticText<TEXT_SETGASMAX>, SwitchScreenAction<GasMaxChangeScreen>>,
|
||||||
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
|
||||||
|
makeComponent<MenuItem, StaticText<nullptr>, DummyAction>,
|
||||||
|
makeComponent<MenuItem, GametrakXText, DisabledColor, StaticFont<2>, DummyAction>,
|
||||||
|
makeComponent<MenuItem, GametrakYText, DisabledColor, StaticFont<2>, DummyAction>,
|
||||||
|
makeComponent<MenuItem, GametrakDistText, DisabledColor, StaticFont<2>, DummyAction>,
|
||||||
|
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>>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKYMAX>, SwitchScreenAction<GametrakYMaxChangeScreen>>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKDISTMIN>, SwitchScreenAction<GametrakDistMinChangeScreen>>,
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_SETGAMETRAKDISTMAX>, SwitchScreenAction<GametrakDistMaxChangeScreen>>,
|
||||||
|
#endif
|
||||||
|
makeComponent<MenuItem, StaticText<nullptr>, DummyAction>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_SWAPSCREENBYTES>, ToggleBoolAction, CheckboxIcon, SwapScreenBytesAccessor>,
|
makeComponent<MenuItem, StaticText<TEXT_SWAPSCREENBYTES>, ToggleBoolAction, CheckboxIcon, SwapScreenBytesAccessor>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||||
>
|
>
|
||||||
|
26
src/displays/menus/gametrakmodesettingsmenu.h
Normal file
26
src/displays/menus/gametrakmodesettingsmenu.h
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "menudisplay.h"
|
||||||
|
#include "staticmenudefinition.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "menuitem.h"
|
||||||
|
#include "actions/switchscreenaction.h"
|
||||||
|
#include "icons/back.h"
|
||||||
|
#include "texts.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
class ModesSettingsMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
class GametrakModeSettingsMenu :
|
||||||
|
public MenuDisplay,
|
||||||
|
public StaticText<TEXT_GAMETRAKMODESETTINGS>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<ModesSettingsMenu>>,
|
||||||
|
public StaticMenuDefinition<
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||||
|
>
|
||||||
|
{};
|
||||||
|
#endif
|
||||||
|
}
|
@@ -11,6 +11,7 @@ namespace {
|
|||||||
class DefaultModeSettingsMenu;
|
class DefaultModeSettingsMenu;
|
||||||
class TempomatModeSettingsMenu;
|
class TempomatModeSettingsMenu;
|
||||||
class LarsmModeSettingsMenu;
|
class LarsmModeSettingsMenu;
|
||||||
|
class GametrakModeSettingsMenu;
|
||||||
class SettingsMenu;
|
class SettingsMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,6 +24,9 @@ class ModesSettingsMenu :
|
|||||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTMODESETTIGNS>, SwitchScreenAction<DefaultModeSettingsMenu>>,
|
makeComponent<MenuItem, StaticText<TEXT_DEFAULTMODESETTIGNS>, SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_TEMPOMATMODESETTINGS>, SwitchScreenAction<TempomatModeSettingsMenu>>,
|
makeComponent<MenuItem, StaticText<TEXT_TEMPOMATMODESETTINGS>, SwitchScreenAction<TempomatModeSettingsMenu>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_LARSMMODESETTINGS>, SwitchScreenAction<LarsmModeSettingsMenu>>,
|
makeComponent<MenuItem, StaticText<TEXT_LARSMMODESETTINGS>, SwitchScreenAction<LarsmModeSettingsMenu>>,
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_GAMETRAKMODESETTINGS>, SwitchScreenAction<GametrakModeSettingsMenu>>,
|
||||||
|
#endif
|
||||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#include "modes/defaultmode.h"
|
#include "modes/defaultmode.h"
|
||||||
#include "modes/tempomatmode.h"
|
#include "modes/tempomatmode.h"
|
||||||
#include "modes/larsmmode.h"
|
#include "modes/larsmmode.h"
|
||||||
|
#include "modes/gametrakmode.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
class MainMenu;
|
class MainMenu;
|
||||||
@@ -27,6 +28,9 @@ public:
|
|||||||
using SetDefaultModeAction = SetterAction<ModeInterface*, currentMode, DefaultMode*, &modes::defaultMode>;
|
using SetDefaultModeAction = SetterAction<ModeInterface*, currentMode, DefaultMode*, &modes::defaultMode>;
|
||||||
using SetTempomatModeAction = SetterAction<ModeInterface*, currentMode, TempomatMode*, &modes::tempomatMode>;
|
using SetTempomatModeAction = SetterAction<ModeInterface*, currentMode, TempomatMode*, &modes::tempomatMode>;
|
||||||
using SetLarsmModeAction = SetterAction<ModeInterface*, currentMode, LarsmMode*, &modes::larsmMode>;
|
using SetLarsmModeAction = SetterAction<ModeInterface*, currentMode, LarsmMode*, &modes::larsmMode>;
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
using SetGametrakModeAction = SetterAction<ModeInterface*, currentMode, GametrakMode*, &modes::gametrakMode>;
|
||||||
|
#endif
|
||||||
|
|
||||||
class SelectModeMenu :
|
class SelectModeMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
@@ -36,6 +40,9 @@ class SelectModeMenu :
|
|||||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULT>, MultiAction<SetDefaultModeAction, SwitchScreenAction<MainMenu>>>,
|
makeComponent<MenuItem, StaticText<TEXT_DEFAULT>, MultiAction<SetDefaultModeAction, SwitchScreenAction<MainMenu>>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_TEMPOMAT>, MultiAction<SetTempomatModeAction, SwitchScreenAction<MainMenu>>>,
|
makeComponent<MenuItem, StaticText<TEXT_TEMPOMAT>, MultiAction<SetTempomatModeAction, SwitchScreenAction<MainMenu>>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_LARSM>, MultiAction<SetLarsmModeAction, SwitchScreenAction<MainMenu>>>,
|
makeComponent<MenuItem, StaticText<TEXT_LARSM>, MultiAction<SetLarsmModeAction, SwitchScreenAction<MainMenu>>>,
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
makeComponent<MenuItem, StaticText<TEXT_GAMETRAK>, MultiAction<SetGametrakModeAction, SwitchScreenAction<MainMenu>>>,
|
||||||
|
#endif
|
||||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
|
@@ -18,6 +18,10 @@ using pin_t = int;
|
|||||||
|
|
||||||
int16_t raw_gas, raw_brems;
|
int16_t raw_gas, raw_brems;
|
||||||
float gas, brems;
|
float gas, brems;
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
int16_t raw_gametrakX, raw_gametrakY, raw_gametrakDist;
|
||||||
|
float gametrakX, gametrakY, gametrakDist;
|
||||||
|
#endif
|
||||||
float avgSpeed, avgSpeedKmh, sumCurrent, sumAbsoluteCurrent;
|
float avgSpeed, avgSpeedKmh, sumCurrent, sumAbsoluteCurrent;
|
||||||
|
|
||||||
Settings settings;
|
Settings settings;
|
||||||
|
37
src/modes/gametrakmode.h
Normal file
37
src/modes/gametrakmode.h
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "modeinterface.h"
|
||||||
|
#include "globals.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
#include "bobbycar-protocol/protocol.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
class GametrakMode : public ModeInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void update() override;
|
||||||
|
|
||||||
|
const char *displayName() const override { return "Gametrak"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace modes {
|
||||||
|
GametrakMode gametrakMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GametrakMode::update()
|
||||||
|
{
|
||||||
|
for (MotorState &motor : motors())
|
||||||
|
{
|
||||||
|
motor.ctrlTyp = ControlType::FieldOrientedControl;
|
||||||
|
motor.ctrlMod = ControlMode::Speed;
|
||||||
|
motor.pwm = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixCommonParams();
|
||||||
|
|
||||||
|
sendCommands();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
@@ -73,6 +73,14 @@ constexpr Settings::BoardcomputerHardware defaultBoardcomputerHardware {
|
|||||||
.gasMax = DEFAULT_GASMAX,
|
.gasMax = DEFAULT_GASMAX,
|
||||||
.bremsMin = DEFAULT_BREMSMIN,
|
.bremsMin = DEFAULT_BREMSMIN,
|
||||||
.bremsMax = DEFAULT_BREMSMAX,
|
.bremsMax = DEFAULT_BREMSMAX,
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
.gametrakXMin = DEFAULT_GAMETRAKXMIN,
|
||||||
|
.gametrakXMax = DEFAULT_GAMETRAKXMAX,
|
||||||
|
.gametrakYMin = DEFAULT_GAMETRAKYMIN,
|
||||||
|
.gametrakYMax = DEFAULT_GAMETRAKYMAX,
|
||||||
|
.gametrakDistMin = DEFAULT_GAMETRAKDISTMIN,
|
||||||
|
.gametrakDistMax = DEFAULT_GAMETRAKDISTMAX,
|
||||||
|
#endif
|
||||||
.swapScreenBytes = DEFAULT_SWAPSCREENBYTES
|
.swapScreenBytes = DEFAULT_SWAPSCREENBYTES
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -83,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,
|
||||||
@@ -97,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{
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#include "displays/menus/dynamicdebugmenu.h"
|
#include "displays/menus/dynamicdebugmenu.h"
|
||||||
#include "displays/menus/enablemenu.h"
|
#include "displays/menus/enablemenu.h"
|
||||||
#include "displays/menus/feedbackdebugmenu.h"
|
#include "displays/menus/feedbackdebugmenu.h"
|
||||||
|
#include "displays/menus/gametrakmodesettingsmenu.h"
|
||||||
#include "displays/menus/genericwifisettingsmenu.h"
|
#include "displays/menus/genericwifisettingsmenu.h"
|
||||||
#include "displays/menus/graphsmenu.h"
|
#include "displays/menus/graphsmenu.h"
|
||||||
#include "displays/menus/controllerhardwaresettingsmenu.h"
|
#include "displays/menus/controllerhardwaresettingsmenu.h"
|
||||||
@@ -34,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"
|
||||||
@@ -69,6 +71,9 @@ union X {
|
|||||||
EnableMenu enableMenu;
|
EnableMenu enableMenu;
|
||||||
FrontFeedbackDebugMenu frontFeedbackDebugMenu;
|
FrontFeedbackDebugMenu frontFeedbackDebugMenu;
|
||||||
BackFeedbackDebugMenu backFeedbackDebugMenu;
|
BackFeedbackDebugMenu backFeedbackDebugMenu;
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
GametrakModeSettingsMenu gametrakModeSettingsMenu;
|
||||||
|
#endif
|
||||||
GenericWifiSettingsMenu genericWifiSettingsMenu;
|
GenericWifiSettingsMenu genericWifiSettingsMenu;
|
||||||
GraphsMenu graphsMenu;
|
GraphsMenu graphsMenu;
|
||||||
InvertMenu invertMenu;
|
InvertMenu invertMenu;
|
||||||
@@ -99,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;
|
||||||
@@ -152,6 +160,14 @@ union X {
|
|||||||
GasMaxChangeScreen changeGasMax;
|
GasMaxChangeScreen changeGasMax;
|
||||||
BremsMinChangeScreen changeBremsMin;
|
BremsMinChangeScreen changeBremsMin;
|
||||||
BremsMaxChangeScreen changeBremsMax;
|
BremsMaxChangeScreen changeBremsMax;
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
GametrakXMinChangeScreen changeGametrakXMin;
|
||||||
|
GametrakXMaxChangeScreen changeGametrakXMax;
|
||||||
|
GametrakYMinChangeScreen changeGametrakYMin;
|
||||||
|
GametrakYMaxChangeScreen changeGametrakYMax;
|
||||||
|
GametrakDistMinChangeScreen changeGametrakDistMin;
|
||||||
|
GametrakDistMaxChangeScreen changeGametrakDistMax;
|
||||||
|
#endif
|
||||||
|
|
||||||
WifiModeChangeScreen wifiModeChangeScreen;
|
WifiModeChangeScreen wifiModeChangeScreen;
|
||||||
WifiTxPowerChangeScreen wifiTxPowerChangeScreen;
|
WifiTxPowerChangeScreen wifiTxPowerChangeScreen;
|
||||||
@@ -192,6 +208,9 @@ template<> decltype(displays.dynamicDebugMenu) &
|
|||||||
template<> decltype(displays.enableMenu) &getRefByType<decltype(displays.enableMenu)>() { return displays.enableMenu; }
|
template<> decltype(displays.enableMenu) &getRefByType<decltype(displays.enableMenu)>() { return displays.enableMenu; }
|
||||||
template<> decltype(displays.frontFeedbackDebugMenu) &getRefByType<decltype(displays.frontFeedbackDebugMenu)>() { return displays.frontFeedbackDebugMenu; }
|
template<> decltype(displays.frontFeedbackDebugMenu) &getRefByType<decltype(displays.frontFeedbackDebugMenu)>() { return displays.frontFeedbackDebugMenu; }
|
||||||
template<> decltype(displays.backFeedbackDebugMenu) &getRefByType<decltype(displays.backFeedbackDebugMenu)>() { return displays.backFeedbackDebugMenu; }
|
template<> decltype(displays.backFeedbackDebugMenu) &getRefByType<decltype(displays.backFeedbackDebugMenu)>() { return displays.backFeedbackDebugMenu; }
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
template<> decltype(displays.gametrakModeSettingsMenu) &getRefByType<decltype(displays.gametrakModeSettingsMenu)>() { return displays.gametrakModeSettingsMenu; }
|
||||||
|
#endif
|
||||||
template<> decltype(displays.genericWifiSettingsMenu) &getRefByType<decltype(displays.genericWifiSettingsMenu)>() { return displays.genericWifiSettingsMenu; }
|
template<> decltype(displays.genericWifiSettingsMenu) &getRefByType<decltype(displays.genericWifiSettingsMenu)>() { return displays.genericWifiSettingsMenu; }
|
||||||
template<> decltype(displays.graphsMenu) &getRefByType<decltype(displays.graphsMenu)>() { return displays.graphsMenu; }
|
template<> decltype(displays.graphsMenu) &getRefByType<decltype(displays.graphsMenu)>() { return displays.graphsMenu; }
|
||||||
template<> decltype(displays.invertMenu) &getRefByType<decltype(displays.invertMenu)>() { return displays.invertMenu; }
|
template<> decltype(displays.invertMenu) &getRefByType<decltype(displays.invertMenu)>() { return displays.invertMenu; }
|
||||||
@@ -221,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; }
|
||||||
@@ -274,6 +296,14 @@ template<> decltype(displays.changeGasMin) &
|
|||||||
template<> decltype(displays.changeGasMax) &getRefByType<decltype(displays.changeGasMax)>() { return displays.changeGasMax; }
|
template<> decltype(displays.changeGasMax) &getRefByType<decltype(displays.changeGasMax)>() { return displays.changeGasMax; }
|
||||||
template<> decltype(displays.changeBremsMin) &getRefByType<decltype(displays.changeBremsMin)>() { return displays.changeBremsMin; }
|
template<> decltype(displays.changeBremsMin) &getRefByType<decltype(displays.changeBremsMin)>() { return displays.changeBremsMin; }
|
||||||
template<> decltype(displays.changeBremsMax) &getRefByType<decltype(displays.changeBremsMax)>() { return displays.changeBremsMax; }
|
template<> decltype(displays.changeBremsMax) &getRefByType<decltype(displays.changeBremsMax)>() { return displays.changeBremsMax; }
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
template<> decltype(displays.changeGametrakXMin) &getRefByType<decltype(displays.changeGametrakXMin)>() { return displays.changeGametrakXMin; }
|
||||||
|
template<> decltype(displays.changeGametrakXMax) &getRefByType<decltype(displays.changeGametrakXMax)>() { return displays.changeGametrakXMax; }
|
||||||
|
template<> decltype(displays.changeGametrakYMin) &getRefByType<decltype(displays.changeGametrakYMin)>() { return displays.changeGametrakYMin; }
|
||||||
|
template<> decltype(displays.changeGametrakYMax) &getRefByType<decltype(displays.changeGametrakYMax)>() { return displays.changeGametrakYMax; }
|
||||||
|
template<> decltype(displays.changeGametrakDistMin) &getRefByType<decltype(displays.changeGametrakDistMin)>() { return displays.changeGametrakDistMin; }
|
||||||
|
template<> decltype(displays.changeGametrakDistMax) &getRefByType<decltype(displays.changeGametrakDistMax)>() { return displays.changeGametrakDistMax; }
|
||||||
|
#endif
|
||||||
|
|
||||||
template<> decltype(displays.wifiModeChangeScreen) &getRefByType<decltype(displays.wifiModeChangeScreen)>() { return displays.wifiModeChangeScreen; }
|
template<> decltype(displays.wifiModeChangeScreen) &getRefByType<decltype(displays.wifiModeChangeScreen)>() { return displays.wifiModeChangeScreen; }
|
||||||
template<> decltype(displays.wifiTxPowerChangeScreen) &getRefByType<decltype(displays.wifiTxPowerChangeScreen)>() { return displays.wifiTxPowerChangeScreen; }
|
template<> decltype(displays.wifiTxPowerChangeScreen) &getRefByType<decltype(displays.wifiTxPowerChangeScreen)>() { return displays.wifiTxPowerChangeScreen; }
|
||||||
|
@@ -38,6 +38,9 @@ struct Settings
|
|||||||
struct BoardcomputerHardware {
|
struct BoardcomputerHardware {
|
||||||
int16_t sampleCount;
|
int16_t sampleCount;
|
||||||
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
int16_t gametrakXMin, gametrakXMax, gametrakYMin, gametrakYMax, gametrakDistMin, gametrakDistMax;
|
||||||
|
#endif
|
||||||
bool swapScreenBytes;
|
bool swapScreenBytes;
|
||||||
} boardcomputerHardware;
|
} boardcomputerHardware;
|
||||||
|
|
||||||
@@ -105,6 +108,14 @@ void Settings::executeForEverySetting(T &&callable)
|
|||||||
callable("gasMax", boardcomputerHardware.gasMax);
|
callable("gasMax", boardcomputerHardware.gasMax);
|
||||||
callable("bremsMin", boardcomputerHardware.bremsMin);
|
callable("bremsMin", boardcomputerHardware.bremsMin);
|
||||||
callable("bremsMax", boardcomputerHardware.bremsMax);
|
callable("bremsMax", boardcomputerHardware.bremsMax);
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
callable("gametrakXMin", boardcomputerHardware.gametrakXMin);
|
||||||
|
callable("gametrakXMax", boardcomputerHardware.gametrakXMax);
|
||||||
|
callable("gametrakYMin", boardcomputerHardware.gametrakYMin);
|
||||||
|
callable("gametrakYMax", boardcomputerHardware.gametrakYMax);
|
||||||
|
callable("gametrakDistMin", boardcomputerHardware.gametrakDistMin);
|
||||||
|
callable("gametrakDistMax", boardcomputerHardware.gametrakDistMax);
|
||||||
|
#endif
|
||||||
callable("swapScreenBytes", boardcomputerHardware.swapScreenBytes);
|
callable("swapScreenBytes", boardcomputerHardware.swapScreenBytes);
|
||||||
|
|
||||||
callable("default.ctrlTyp", defaultMode.ctrlTyp);
|
callable("default.ctrlTyp", defaultMode.ctrlTyp);
|
||||||
|
@@ -59,6 +59,14 @@ struct GasMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRe
|
|||||||
struct GasMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gasMax; } };
|
struct GasMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gasMax; } };
|
||||||
struct BremsMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMin; } };
|
struct BremsMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMin; } };
|
||||||
struct BremsMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMax; } };
|
struct BremsMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMax; } };
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
struct GametrakXMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakXMin; } };
|
||||||
|
struct GametrakXMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakXMax; } };
|
||||||
|
struct GametrakYMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakYMin; } };
|
||||||
|
struct GametrakYMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakYMax; } };
|
||||||
|
struct GametrakDistMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMin; } };
|
||||||
|
struct GametrakDistMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMax; } };
|
||||||
|
#endif
|
||||||
struct SwapScreenBytesAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.boardcomputerHardware.swapScreenBytes; } };
|
struct SwapScreenBytesAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.boardcomputerHardware.swapScreenBytes; } };
|
||||||
|
|
||||||
struct DefaultModeCtrlTypAccessor : public RefAccessorSaveSettings<ControlType> { ControlType &getRef() const override { return settings.defaultMode.ctrlTyp; } };
|
struct DefaultModeCtrlTypAccessor : public RefAccessorSaveSettings<ControlType> { ControlType &getRef() const override { return settings.defaultMode.ctrlTyp; } };
|
||||||
|
13
src/texts.h
13
src/texts.h
@@ -157,6 +157,9 @@ constexpr char TEXT_ENABLEBACKLEFT[] = "Enable back left";
|
|||||||
constexpr char TEXT_ENABLEBACKRIGHT[] = "Enable back right";
|
constexpr char TEXT_ENABLEBACKRIGHT[] = "Enable back right";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
|
//GametrakModeSettingsMenu
|
||||||
|
constexpr char TEXT_GAMETRAKMODESETTINGS[] = "Gametrak mode settings";
|
||||||
|
|
||||||
//GenericWifiSettingsMenu
|
//GenericWifiSettingsMenu
|
||||||
constexpr char TEXT_GENERICWIFISETTINGS[] = "Generic WiFi settings";
|
constexpr char TEXT_GENERICWIFISETTINGS[] = "Generic WiFi settings";
|
||||||
constexpr char TEXT_WIFICHANGEMODE[] = "Change mode";
|
constexpr char TEXT_WIFICHANGEMODE[] = "Change mode";
|
||||||
@@ -202,6 +205,7 @@ constexpr char TEXT_LARSMMODECHANGEITERATIONS[] = "Change iterations";
|
|||||||
constexpr char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings";
|
constexpr char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings";
|
||||||
constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings";
|
constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings";
|
||||||
//constexpr char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings";
|
//constexpr char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings";
|
||||||
|
//constexpr char TEXT_GAMETRAKMODESETTINGS[] = "Gametrak mode settings";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
//TempomatModeSettingsMenu
|
//TempomatModeSettingsMenu
|
||||||
@@ -223,6 +227,13 @@ 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_SETGAMETRAKXMAX[] = "Set gametrakXMax";
|
||||||
|
constexpr char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin";
|
||||||
|
constexpr char TEXT_SETGAMETRAKYMAX[] = "Set gametrakYMax";
|
||||||
|
constexpr char TEXT_SETGAMETRAKDISTMIN[] = "Set gametrakDistMin";
|
||||||
|
constexpr char TEXT_SETGAMETRAKDISTMAX[] = "Set gametrakDistMax";
|
||||||
constexpr char TEXT_SWAPSCREENBYTES[] = "Swap screen bytes";
|
constexpr char TEXT_SWAPSCREENBYTES[] = "Swap screen bytes";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
@@ -246,7 +257,7 @@ constexpr char TEXT_RACE[] = "Race";
|
|||||||
constexpr char TEXT_DEFAULT[] = "Default";
|
constexpr char TEXT_DEFAULT[] = "Default";
|
||||||
constexpr char TEXT_TEMPOMAT[] = "Tempomat";
|
constexpr char TEXT_TEMPOMAT[] = "Tempomat";
|
||||||
constexpr char TEXT_LARSM[] = "Larsm";
|
constexpr char TEXT_LARSM[] = "Larsm";
|
||||||
constexpr char TEXT_BLUETOOTH[] = "Bluetooth";
|
constexpr char TEXT_GAMETRAK[] = "Gametrak";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
//ChangeValueDisplay<bool>
|
//ChangeValueDisplay<bool>
|
||||||
|
11
src/utils.h
11
src/utils.h
@@ -315,5 +315,16 @@ void readPotis()
|
|||||||
|
|
||||||
raw_brems = sampleMultipleTimes(PINS_BREMS);
|
raw_brems = sampleMultipleTimes(PINS_BREMS);
|
||||||
brems = scaleBetween<float>(raw_brems, settings.boardcomputerHardware.bremsMin, settings.boardcomputerHardware.bremsMax, 0., 1000.);
|
brems = scaleBetween<float>(raw_brems, settings.boardcomputerHardware.bremsMin, settings.boardcomputerHardware.bremsMax, 0., 1000.);
|
||||||
|
|
||||||
|
#ifdef FEATURE_GAMETRAK
|
||||||
|
raw_gametrakX = sampleMultipleTimes(PINS_GAMETRAKX);
|
||||||
|
gametrakX = scaleBetween<float>(raw_gametrakX, settings.boardcomputerHardware.gametrakXMin, settings.boardcomputerHardware.gametrakXMax, 0., 1000.);
|
||||||
|
|
||||||
|
raw_gametrakY = sampleMultipleTimes(PINS_GAMETRAKY);
|
||||||
|
gametrakY = scaleBetween<float>(raw_gametrakY, settings.boardcomputerHardware.gametrakYMin, settings.boardcomputerHardware.gametrakYMax, 0., 1000.);
|
||||||
|
|
||||||
|
raw_gametrakDist = sampleMultipleTimes(PINS_GAMETRAKDIST);
|
||||||
|
gametrakDist = scaleBetween<float>(raw_gametrakDist, settings.boardcomputerHardware.gametrakDistMin, settings.boardcomputerHardware.gametrakDistMax, 0., 1000.);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user