Added gametrak driving mode

This commit is contained in:
2020-05-25 21:14:59 +02:00
parent f2b169c8d2
commit 71a4601aa7
4 changed files with 46 additions and 1 deletions

View File

@@ -85,6 +85,7 @@ build_flags =
-DDEFAULT_BREMSMIN=1300
-DDEFAULT_BREMSMAX=4000
-DFEATURE_BMS
-DFEATURE_GAMETRAK
[env:feedc0de_usb]
platform = ${common_env_data.platform}

View File

@@ -12,6 +12,7 @@
#include "modes/defaultmode.h"
#include "modes/tempomatmode.h"
#include "modes/larsmmode.h"
#include "modes/gametrakmode.h"
namespace {
class MainMenu;
@@ -27,6 +28,9 @@ public:
using SetDefaultModeAction = SetterAction<ModeInterface*, currentMode, DefaultMode*, &modes::defaultMode>;
using SetTempomatModeAction = SetterAction<ModeInterface*, currentMode, TempomatMode*, &modes::tempomatMode>;
using SetLarsmModeAction = SetterAction<ModeInterface*, currentMode, LarsmMode*, &modes::larsmMode>;
#ifdef FEATURE_GAMETRAK
using SetGametrakModeAction = SetterAction<ModeInterface*, currentMode, GametrakMode*, &modes::gametrakMode>;
#endif
class SelectModeMenu :
public MenuDisplay,
@@ -36,6 +40,9 @@ class SelectModeMenu :
makeComponent<MenuItem, StaticText<TEXT_DEFAULT>, MultiAction<SetDefaultModeAction, SwitchScreenAction<MainMenu>>>,
makeComponent<MenuItem, StaticText<TEXT_TEMPOMAT>, MultiAction<SetTempomatModeAction, 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>>
>
{

37
src/modes/gametrakmode.h Normal file
View 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
}

View File

@@ -246,7 +246,7 @@ constexpr char TEXT_RACE[] = "Race";
constexpr char TEXT_DEFAULT[] = "Default";
constexpr char TEXT_TEMPOMAT[] = "Tempomat";
constexpr char TEXT_LARSM[] = "Larsm";
constexpr char TEXT_BLUETOOTH[] = "Bluetooth";
constexpr char TEXT_GAMETRAK[] = "Gametrak";
//constexpr char TEXT_BACK[] = "Back";
//ChangeValueDisplay<bool>