From 71a4601aa71905dec53ee1840a8e83d97f443906 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 25 May 2020 21:14:59 +0200 Subject: [PATCH] Added gametrak driving mode --- platformio.ini | 1 + src/displays/menus/selectmodemenu.h | 7 ++++++ src/modes/gametrakmode.h | 37 +++++++++++++++++++++++++++++ src/texts.h | 2 +- 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/modes/gametrakmode.h diff --git a/platformio.ini b/platformio.ini index 4d9ebfe..ecaa4ca 100644 --- a/platformio.ini +++ b/platformio.ini @@ -85,6 +85,7 @@ build_flags = -DDEFAULT_BREMSMIN=1300 -DDEFAULT_BREMSMAX=4000 -DFEATURE_BMS + -DFEATURE_GAMETRAK [env:feedc0de_usb] platform = ${common_env_data.platform} diff --git a/src/displays/menus/selectmodemenu.h b/src/displays/menus/selectmodemenu.h index 81a5f48..13f544f 100644 --- a/src/displays/menus/selectmodemenu.h +++ b/src/displays/menus/selectmodemenu.h @@ -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; using SetTempomatModeAction = SetterAction; using SetLarsmModeAction = SetterAction; +#ifdef FEATURE_GAMETRAK +using SetGametrakModeAction = SetterAction; +#endif class SelectModeMenu : public MenuDisplay, @@ -36,6 +40,9 @@ class SelectModeMenu : makeComponent, MultiAction>>, makeComponent, MultiAction>>, makeComponent, MultiAction>>, +#ifdef FEATURE_GAMETRAK + makeComponent, MultiAction>>, +#endif makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::back>> > { diff --git a/src/modes/gametrakmode.h b/src/modes/gametrakmode.h new file mode 100644 index 0000000..475e611 --- /dev/null +++ b/src/modes/gametrakmode.h @@ -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 +} diff --git a/src/texts.h b/src/texts.h index 2165973..37590e3 100644 --- a/src/texts.h +++ b/src/texts.h @@ -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