Added option to set display byte swapping
This commit is contained in:
@@ -55,6 +55,7 @@ build_flags =
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DSPI_READ_FREQUENCY=20000000
|
||||
-DSPI_TOUCH_FREQUENCY=2500000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
-DPINS_RX1=4
|
||||
-DPINS_TX1=5
|
||||
-DPINS_RX2=25
|
||||
@@ -132,6 +133,7 @@ build_flags =
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DSPI_READ_FREQUENCY=20000000
|
||||
-DSPI_TOUCH_FREQUENCY=2500000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
-DPINS_RX1=18
|
||||
-DPINS_TX1=19
|
||||
-DPINS_RX2=23
|
||||
@@ -182,6 +184,7 @@ build_flags =
|
||||
-DTOUCH_CS=22
|
||||
-DSPI_FREQUENCY=20000000
|
||||
-DSPI_TOUCH_FREQUENCY=2500000
|
||||
-DDEFAULT_SWAPSCREENBYTES=false
|
||||
; TODO: actually assign pins
|
||||
-DPINS_RX1=22
|
||||
-DPINS_TX1=25
|
||||
|
@@ -14,7 +14,7 @@
|
||||
|
||||
namespace {
|
||||
class StatusDisplay;
|
||||
class PotiSettingsMenu;
|
||||
class BoardcomputerHardwareSettingsMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -102,6 +102,6 @@ void CalibrateDisplay::triggered()
|
||||
if (m_bootup)
|
||||
switchScreen<StatusDisplay>();
|
||||
else
|
||||
switchScreen<PotiSettingsMenu>();
|
||||
switchScreen<BoardcomputerHardwareSettingsMenu>();
|
||||
}
|
||||
}
|
||||
|
@@ -6,14 +6,16 @@
|
||||
#include "changevaluedisplay.h"
|
||||
#include "actions/dummyaction.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "icons/back.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "texts.h"
|
||||
#include "settingsaccessors.h"
|
||||
|
||||
namespace {
|
||||
class PotiSettingsMenu;
|
||||
class BoardcomputerHardwareSettingsMenu;
|
||||
class CalibrateDisplay;
|
||||
class HardwareSettingsMenu;
|
||||
class SettingsMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -26,15 +28,15 @@ public:
|
||||
String text() const override { return String{"brems: "} + raw_brems + ": " + brems; }
|
||||
};
|
||||
|
||||
using SampleCountChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETSAMPLECOUNT>, SampleCountAccessor, SwitchScreenAction<PotiSettingsMenu>>;
|
||||
using GasMinChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETGASMIN>, GasMinAccessor, SwitchScreenAction<PotiSettingsMenu>>;
|
||||
using GasMaxChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETGASMAX>, GasMaxAccessor, SwitchScreenAction<PotiSettingsMenu>>;
|
||||
using BremsMinChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETBREMSMIN>, BremsMinAccessor, SwitchScreenAction<PotiSettingsMenu>>;
|
||||
using BremsMaxChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETBREMSMAX>, BremsMaxAccessor, SwitchScreenAction<PotiSettingsMenu>>;
|
||||
using SampleCountChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETSAMPLECOUNT>, SampleCountAccessor, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>;
|
||||
using GasMinChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETGASMIN>, GasMinAccessor, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>;
|
||||
using GasMaxChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETGASMAX>, GasMaxAccessor, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>;
|
||||
using BremsMinChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETBREMSMIN>, BremsMinAccessor, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>;
|
||||
using BremsMaxChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_SETBREMSMAX>, BremsMaxAccessor, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>;
|
||||
|
||||
class PotiSettingsMenu :
|
||||
class BoardcomputerHardwareSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_POTISETTINGS>,
|
||||
public StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>,
|
||||
public StaticMenuDefinition<
|
||||
makeComponent<MenuItem, GasText, DisabledColor, StaticFont<2>, DummyAction>,
|
||||
makeComponent<MenuItem, BremsText, DisabledColor, StaticFont<2>, DummyAction>,
|
||||
@@ -44,7 +46,8 @@ class PotiSettingsMenu :
|
||||
makeComponent<MenuItem, StaticText<TEXT_SETGASMAX>, SwitchScreenAction<GasMaxChangeScreen>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_SETBREMSMIN>, SwitchScreenAction<BremsMinChangeScreen>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_SETBREMSMAX>, SwitchScreenAction<BremsMaxChangeScreen>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<HardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
makeComponent<MenuItem, StaticText<TEXT_SWAPSCREENBYTES>, ToggleBoolAction, CheckboxIcon, SwapScreenBytesAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
>
|
||||
{};
|
||||
}
|
@@ -15,25 +15,24 @@
|
||||
#include "settingsaccessors.h"
|
||||
|
||||
namespace {
|
||||
class HardwareSettingsMenu;
|
||||
class PotiSettingsMenu;
|
||||
class ControllerHardwareSettingsMenu;
|
||||
class BoardcomputerHardwareSettingsMenu;
|
||||
class EnableMenu;
|
||||
class InvertMenu;
|
||||
class SettingsMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
using WheelDiameterMmChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_WHEELDIAMETERMM>, WheelDiameterMmAccessor, SwitchScreenAction<HardwareSettingsMenu>>;
|
||||
using WheelDiameterInchChangeScreen = makeComponent<ChangeValueDisplay<float>, StaticText<TEXT_WHEELDIAMETERINCH>, WheelDiameterInchAccessor, RatioNumberStep<float, std::ratio<1,10>>, SwitchScreenAction<HardwareSettingsMenu>>;
|
||||
using NumMagnetPolesChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_NUMMAGNETPOLES>, NumMagnetPolesAccessor, SwitchScreenAction<HardwareSettingsMenu>>;
|
||||
using WheelDiameterMmChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_WHEELDIAMETERMM>, WheelDiameterMmAccessor, SwitchScreenAction<ControllerHardwareSettingsMenu>>;
|
||||
using WheelDiameterInchChangeScreen = makeComponent<ChangeValueDisplay<float>, StaticText<TEXT_WHEELDIAMETERINCH>, WheelDiameterInchAccessor, RatioNumberStep<float, std::ratio<1,10>>, SwitchScreenAction<ControllerHardwareSettingsMenu>>;
|
||||
using NumMagnetPolesChangeScreen = makeComponent<ChangeValueDisplay<int16_t>, StaticText<TEXT_NUMMAGNETPOLES>, NumMagnetPolesAccessor, SwitchScreenAction<ControllerHardwareSettingsMenu>>;
|
||||
|
||||
class HardwareSettingsMenu :
|
||||
class ControllerHardwareSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_HARDWARESETTINGS>,
|
||||
public StaticText<TEXT_CONTROLLERHARDWARESETTINGS>,
|
||||
public StaticMenuDefinition<
|
||||
makeComponent<MenuItem, StaticText<TEXT_SETENABLED>, SwitchScreenAction<EnableMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_SETINVERTED>, SwitchScreenAction<InvertMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_POTISETTINGS>, SwitchScreenAction<PotiSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_WHEELDIAMETERMM>, SwitchScreenAction<WheelDiameterMmChangeScreen>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_WHEELDIAMETERINCH>, SwitchScreenAction<WheelDiameterInchChangeScreen>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_NUMMAGNETPOLES>, SwitchScreenAction<NumMagnetPolesChangeScreen>>,
|
@@ -12,7 +12,7 @@
|
||||
#include "settingsaccessors.h"
|
||||
|
||||
namespace {
|
||||
class HardwareSettingsMenu;
|
||||
class ControllerHardwareSettingsMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -24,7 +24,7 @@ class EnableMenu :
|
||||
makeComponent<MenuItem, StaticText<TEXT_ENABLEFRONTRIGHT>, ToggleBoolAction, CheckboxIcon, FrontRightEnabledAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_ENABLEBACKLEFT>, ToggleBoolAction, CheckboxIcon, BackLeftEnabledAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_ENABLEBACKRIGHT>, ToggleBoolAction, CheckboxIcon, BackRightEnabledAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<HardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
>
|
||||
{};
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@
|
||||
#include "settingsaccessors.h"
|
||||
|
||||
namespace {
|
||||
class HardwareSettingsMenu;
|
||||
class ControllerHardwareSettingsMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -24,7 +24,7 @@ class InvertMenu :
|
||||
makeComponent<MenuItem, StaticText<TEXT_INVERTFRONTRIGHT>, ToggleBoolAction, CheckboxIcon, FrontRightInvertedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_INVERTBACKLEFT>, ToggleBoolAction, CheckboxIcon, BackLeftInvertedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_INVERTBACKRIGHT>, ToggleBoolAction, CheckboxIcon, BackRightInvertedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<HardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
>
|
||||
{};
|
||||
}
|
||||
|
@@ -23,26 +23,26 @@ class ApplyPresetAction : public virtual ActionInterface {public: void triggered
|
||||
template<const Settings::Limits *preset>
|
||||
class ApplyLimitsPresetAction : public virtual ActionInterface {public: void triggered() override { settings.limits = *preset; saveSettings(); } };
|
||||
|
||||
template<const Settings::Hardware::Poti *preset>
|
||||
class ApplyPotiPresetAction : public virtual ActionInterface {public: void triggered() override { settings.hardware.poti = *preset; saveSettings(); } };
|
||||
template<const Settings::ControllerHardware *preset>
|
||||
class ApplyControllerHardwarePresetAction : public virtual ActionInterface {public: void triggered() override { settings.controllerHardware = *preset; saveSettings(); } };
|
||||
|
||||
template<const Settings::Hardware *preset>
|
||||
class ApplyHardwarePresetAction : public virtual ActionInterface {public: void triggered() override { settings.hardware = *preset; saveSettings(); } };
|
||||
template<const Settings::BoardcomputerHardware *preset>
|
||||
class ApplyBoardcomputerHardwarePresetAction : public virtual ActionInterface {public: void triggered() override { settings.boardcomputerHardware = *preset; saveSettings(); } };
|
||||
|
||||
class PresetsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_PRESETS>,
|
||||
public StaticMenuDefinition<
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTEVERYTHING>, ApplyPresetAction<&presets::defaultSettings>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTLIMITS>, ApplyLimitsPresetAction<&presets::defaultLimits>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_KIDSLIMITS>, ApplyLimitsPresetAction<&presets::kidsLimits>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTPOTI>, ApplyPotiPresetAction<&presets::defaultPoti>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTHARDWARE>, ApplyHardwarePresetAction<&presets::defaultHardware>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_STREET>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_SIDEWALK>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_POLICE>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_RACE>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTEVERYTHING>, ApplyPresetAction<&presets::defaultSettings>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTLIMITS>, ApplyLimitsPresetAction<&presets::defaultLimits>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_KIDSLIMITS>, ApplyLimitsPresetAction<&presets::kidsLimits>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTCONTROLLERHARDWARE>, ApplyControllerHardwarePresetAction<&presets::defaultControllerHardware>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTBOARDCOMPUTERHARDWARE>, ApplyBoardcomputerHardwarePresetAction<&presets::defaultBoardcomputerHardware>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_STREET>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_SIDEWALK>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_POLICE>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_RACE>, DisabledColor, DummyAction>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
>
|
||||
{};
|
||||
}
|
||||
|
@@ -23,7 +23,8 @@ class LimitsSettingsMenu;
|
||||
class WifiSettingsMenu;
|
||||
class BluetoothSettingsMenu;
|
||||
class ModesSettingsMenu;
|
||||
class HardwareSettingsMenu;
|
||||
class ControllerHardwareSettingsMenu;
|
||||
class BoardcomputerHardwareSettingsMenu;
|
||||
class BuzzerMenu;
|
||||
class AboutMenu;
|
||||
class MainMenu;
|
||||
@@ -37,17 +38,18 @@ class SettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_SETTINGS>,
|
||||
public StaticMenuDefinition<
|
||||
makeComponent<MenuItem, StaticText<TEXT_LIMITSSETTINGS>, SwitchScreenAction<LimitsSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_WIFISETTINGS>, SwitchScreenAction<WifiSettingsMenu>, StaticMenuItemIcon<&icons::wifi>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BLUETOOTHSETTINGS>, SwitchScreenAction<BluetoothSettingsMenu>, StaticMenuItemIcon<&icons::bluetooth>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_HARDWARESETTINGS>, SwitchScreenAction<HardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, ToggleBoolAction, CheckboxIcon, AutoConnectBmsAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BUZZER>, SwitchScreenAction<BuzzerMenu>, StaticMenuItemIcon<&icons::buzzer>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_FRONTLED>, ToggleBoolAction, CheckboxIcon, FrontLedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACKLED>, ToggleBoolAction, CheckboxIcon, BackLedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_ABOUT>, SwitchScreenAction<AboutMenu>, StaticMenuItemIcon<&icons::info>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
makeComponent<MenuItem, StaticText<TEXT_LIMITSSETTINGS>, SwitchScreenAction<LimitsSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_WIFISETTINGS>, SwitchScreenAction<WifiSettingsMenu>, StaticMenuItemIcon<&icons::wifi>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BLUETOOTHSETTINGS>, SwitchScreenAction<BluetoothSettingsMenu>, StaticMenuItemIcon<&icons::bluetooth>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::hardware>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, ToggleBoolAction, CheckboxIcon, AutoConnectBmsAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BUZZER>, SwitchScreenAction<BuzzerMenu>, StaticMenuItemIcon<&icons::buzzer>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_FRONTLED>, ToggleBoolAction, CheckboxIcon, FrontLedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACKLED>, ToggleBoolAction, CheckboxIcon, BackLedAccessor>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_ABOUT>, SwitchScreenAction<AboutMenu>, StaticMenuItemIcon<&icons::info>>,
|
||||
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&icons::back>>
|
||||
>
|
||||
{};
|
||||
}
|
||||
|
@@ -224,9 +224,9 @@ void StatusDisplay::BoardStatus::drawWarning()
|
||||
tft.drawString("No data!", 60, m_y+50, 4);
|
||||
tft.setTextColor(TFT_WHITE, TFT_BLACK);
|
||||
|
||||
tft.setSwapBytes(true);
|
||||
tft.setSwapBytes(!settings.boardcomputerHardware.swapScreenBytes);
|
||||
tft.pushImage(10, m_y+40, icons::alert.WIDTH, icons::alert.HEIGHT, icons::alert.buffer);
|
||||
tft.setSwapBytes(false);
|
||||
tft.setSwapBytes(settings.boardcomputerHardware.swapScreenBytes);
|
||||
}
|
||||
|
||||
void StatusDisplay::BoardStatus::MotorStatus::start()
|
||||
|
@@ -23,8 +23,8 @@ float avgSpeed, avgSpeedKmh, sumCurrent, sumAbsoluteCurrent;
|
||||
Settings settings;
|
||||
SettingsSaver settingsSaver;
|
||||
|
||||
Controller front{Serial1, settings.hardware.enableFrontLeft, settings.hardware.enableFrontRight, settings.hardware.invertFrontLeft, settings.hardware.invertFrontRight};
|
||||
Controller back{Serial2, settings.hardware.enableBackLeft, settings.hardware.enableBackRight, settings.hardware.invertBackLeft, settings.hardware.invertBackRight};
|
||||
Controller front{Serial1, settings.controllerHardware.enableFrontLeft, settings.controllerHardware.enableFrontRight, settings.controllerHardware.invertFrontLeft, settings.controllerHardware.invertFrontRight};
|
||||
Controller back{Serial2, settings.controllerHardware.enableBackLeft, settings.controllerHardware.enableBackRight, settings.controllerHardware.invertBackLeft, settings.controllerHardware.invertBackRight};
|
||||
|
||||
struct {
|
||||
unsigned long lastTime = millis();
|
||||
|
@@ -191,9 +191,9 @@ void MenuDisplay::redraw()
|
||||
auto icon = item.icon();
|
||||
if (icon)
|
||||
{
|
||||
tft.setSwapBytes(true);
|
||||
tft.setSwapBytes(!settings.boardcomputerHardware.swapScreenBytes);
|
||||
tft.pushImage(6, labelsIter->y()+1, icon->WIDTH, icon->HEIGHT, icon->buffer);
|
||||
tft.setSwapBytes(false);
|
||||
tft.setSwapBytes(settings.boardcomputerHardware.swapScreenBytes);
|
||||
}
|
||||
*iconsIter = icon;
|
||||
}
|
||||
|
@@ -18,15 +18,7 @@ constexpr Settings::Limits kidsLimits {
|
||||
.phaseAdvMax = 20
|
||||
};
|
||||
|
||||
constexpr Settings::Hardware::Poti defaultPoti {
|
||||
.sampleCount = 100,
|
||||
.gasMin = DEFAULT_GASMIN,
|
||||
.gasMax = DEFAULT_GASMAX,
|
||||
.bremsMin = DEFAULT_BREMSMIN,
|
||||
.bremsMax = DEFAULT_BREMSMAX
|
||||
};
|
||||
|
||||
constexpr Settings::Hardware defaultHardware {
|
||||
constexpr Settings::ControllerHardware defaultControllerHardware {
|
||||
.enableFrontLeft = true,
|
||||
.enableFrontRight = true,
|
||||
.enableBackLeft = true,
|
||||
@@ -37,13 +29,20 @@ constexpr Settings::Hardware defaultHardware {
|
||||
.invertBackLeft = false,
|
||||
.invertBackRight = true,
|
||||
|
||||
.poti = defaultPoti,
|
||||
|
||||
.wheelDiameter = 165,
|
||||
.numMagnetPoles = 15,
|
||||
.swapFrontBack = false
|
||||
};
|
||||
|
||||
constexpr Settings::BoardcomputerHardware defaultBoardcomputerHardware {
|
||||
.sampleCount = 100,
|
||||
.gasMin = DEFAULT_GASMIN,
|
||||
.gasMax = DEFAULT_GASMAX,
|
||||
.bremsMin = DEFAULT_BREMSMIN,
|
||||
.bremsMax = DEFAULT_BREMSMAX,
|
||||
.swapScreenBytes = DEFAULT_SWAPSCREENBYTES
|
||||
};
|
||||
|
||||
constexpr Settings::DefaultMode defaultDefaultMode {
|
||||
.ctrlTyp = ControlType::FieldOrientedControl,
|
||||
.ctrlMod = ControlMode::Torque,
|
||||
@@ -76,7 +75,8 @@ constexpr Settings defaultSettings{
|
||||
.reverseBeepDuration0 = 500,
|
||||
.reverseBeepDuration1 = 500,
|
||||
.limits = defaultLimits,
|
||||
.hardware = defaultHardware,
|
||||
.controllerHardware = defaultControllerHardware,
|
||||
.boardcomputerHardware = defaultBoardcomputerHardware,
|
||||
.defaultMode = defaultDefaultMode,
|
||||
.tempomatMode = defaultTempomatMode,
|
||||
.larsmMode = defaultLarsmMode
|
||||
|
@@ -14,7 +14,7 @@
|
||||
#include "displays/menus/feedbackdebugmenu.h"
|
||||
#include "displays/menus/genericwifisettingsmenu.h"
|
||||
#include "displays/menus/graphsmenu.h"
|
||||
#include "displays/menus/hardwaresettingsmenu.h"
|
||||
#include "displays/menus/controllerhardwaresettingsmenu.h"
|
||||
#include "displays/menus/invertmenu.h"
|
||||
#include "displays/menus/larsmmodesettingsmenu.h"
|
||||
#include "displays/menus/limitssettingsmenu.h"
|
||||
@@ -24,7 +24,7 @@
|
||||
#include "displays/menus/motorfeedbackdebugmenu.h"
|
||||
#include "displays/menus/motorstatedebugmenu.h"
|
||||
#include "displays/menus/presetsmenu.h"
|
||||
#include "displays/menus/potisettingsmenu.h"
|
||||
#include "displays/menus/boardcomputerhardwaresettingsmenu.h"
|
||||
#include "displays/menus/selectmodemenu.h"
|
||||
#include "displays/menus/settingsmenu.h"
|
||||
#include "displays/menus/stationwifisettingsmenu.h"
|
||||
@@ -59,6 +59,7 @@ union X {
|
||||
BuzzerMenu buzzerMenu;
|
||||
FrontCommandDebugMenu frontCommandDebugMenu;
|
||||
BackCommandDebugMenu backCommandDebugMenu;
|
||||
ControllerHardwareSettingsMenu controllerHardwareSettingsMenu;
|
||||
DebugMenu debugMenu;
|
||||
DefaultModeSettingsMenu defaultModeSettingsMenu;
|
||||
DemosMenu demosMenu;
|
||||
@@ -68,7 +69,6 @@ union X {
|
||||
BackFeedbackDebugMenu backFeedbackDebugMenu;
|
||||
GenericWifiSettingsMenu genericWifiSettingsMenu;
|
||||
GraphsMenu graphsMenu;
|
||||
HardwareSettingsMenu hardwareSettingsMenu;
|
||||
InvertMenu invertMenu;
|
||||
LarsmModeSettingsMenu larsmModeSettingsMenu;
|
||||
LimitsSettingsMenu limitsSettingsMenu;
|
||||
@@ -83,7 +83,7 @@ union X {
|
||||
FrontRightMotorFeedbackDebugMenu frontRightMotorFeedbackDebugMenu;
|
||||
BackLeftMotorFeedbackDebugMenu backLeftMotorFeedbackDebugMenu;
|
||||
BackRightMotorFeedbackDebugMenu backRightMotorFeedbackDebugMenu;
|
||||
PotiSettingsMenu potiSettingsMenu;
|
||||
BoardcomputerHardwareSettingsMenu boardcomputerHardwareSettingsMenu;
|
||||
PresetsMenu presetsMenu;
|
||||
SelectModeMenu selectModeMenu;
|
||||
SettingsMenu settingsMenu;
|
||||
@@ -171,6 +171,8 @@ template<> decltype(displays.accessPointWifiSettingsMenu) &
|
||||
template<> decltype(displays.bluetoothSettingsMenu) &getRefByType<decltype(displays.bluetoothSettingsMenu)>() { return displays.bluetoothSettingsMenu; }
|
||||
template<> decltype(displays.bmsMenu) &getRefByType<decltype(displays.bmsMenu)>() { return displays.bmsMenu; }
|
||||
template<> decltype(displays.buzzerMenu) &getRefByType<decltype(displays.buzzerMenu)>() { return displays.buzzerMenu; }
|
||||
template<> decltype(displays.boardcomputerHardwareSettingsMenu) &getRefByType<decltype(displays.boardcomputerHardwareSettingsMenu)>() { return displays.boardcomputerHardwareSettingsMenu; }
|
||||
template<> decltype(displays.controllerHardwareSettingsMenu) &getRefByType<decltype(displays.controllerHardwareSettingsMenu)>() { return displays.controllerHardwareSettingsMenu; }
|
||||
template<> decltype(displays.frontCommandDebugMenu) &getRefByType<decltype(displays.frontCommandDebugMenu)>() { return displays.frontCommandDebugMenu; }
|
||||
template<> decltype(displays.backCommandDebugMenu) &getRefByType<decltype(displays.backCommandDebugMenu)>() { return displays.backCommandDebugMenu; }
|
||||
template<> decltype(displays.debugMenu) &getRefByType<decltype(displays.debugMenu)>() { return displays.debugMenu; }
|
||||
@@ -182,7 +184,6 @@ template<> decltype(displays.frontFeedbackDebugMenu) &
|
||||
template<> decltype(displays.backFeedbackDebugMenu) &getRefByType<decltype(displays.backFeedbackDebugMenu)>() { return displays.backFeedbackDebugMenu; }
|
||||
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.hardwareSettingsMenu) &getRefByType<decltype(displays.hardwareSettingsMenu)>() { return displays.hardwareSettingsMenu; }
|
||||
template<> decltype(displays.invertMenu) &getRefByType<decltype(displays.invertMenu)>() { return displays.invertMenu; }
|
||||
template<> decltype(displays.larsmModeSettingsMenu) &getRefByType<decltype(displays.larsmModeSettingsMenu)>() { return displays.larsmModeSettingsMenu; }
|
||||
template<> decltype(displays.limitsSettingsMenu) &getRefByType<decltype(displays.limitsSettingsMenu)>() { return displays.limitsSettingsMenu; }
|
||||
@@ -197,7 +198,6 @@ template<> decltype(displays.frontLeftMotorFeedbackDebugMenu) &
|
||||
template<> decltype(displays.frontRightMotorFeedbackDebugMenu) &getRefByType<decltype(displays.frontRightMotorFeedbackDebugMenu)>() { return displays.frontRightMotorFeedbackDebugMenu; }
|
||||
template<> decltype(displays.backLeftMotorFeedbackDebugMenu) &getRefByType<decltype(displays.backLeftMotorFeedbackDebugMenu)>() { return displays.backLeftMotorFeedbackDebugMenu; }
|
||||
template<> decltype(displays.backRightMotorFeedbackDebugMenu) &getRefByType<decltype(displays.backRightMotorFeedbackDebugMenu)>() { return displays.backRightMotorFeedbackDebugMenu; }
|
||||
template<> decltype(displays.potiSettingsMenu) &getRefByType<decltype(displays.potiSettingsMenu)>() { return displays.potiSettingsMenu; }
|
||||
template<> decltype(displays.presetsMenu) &getRefByType<decltype(displays.presetsMenu)>() { return displays.presetsMenu; }
|
||||
template<> decltype(displays.selectModeMenu) &getRefByType<decltype(displays.selectModeMenu)>() { return displays.selectModeMenu; }
|
||||
template<> decltype(displays.settingsMenu) &getRefByType<decltype(displays.settingsMenu)>() { return displays.settingsMenu; }
|
||||
@@ -372,6 +372,9 @@ void updateDisplay()
|
||||
void redrawDisplay()
|
||||
{
|
||||
if (currentDisplay)
|
||||
{
|
||||
tft.setSwapBytes(settings.boardcomputerHardware.swapScreenBytes);
|
||||
currentDisplay->redraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -24,19 +24,20 @@ struct Settings
|
||||
int16_t phaseAdvMax; // [deg] Maximum Phase Advance angle (only for SIN). Higher angle results in higher maximum speed.
|
||||
} limits;
|
||||
|
||||
struct Hardware {
|
||||
struct ControllerHardware {
|
||||
bool enableFrontLeft, enableFrontRight, enableBackLeft, enableBackRight;
|
||||
bool invertFrontLeft, invertFrontRight, invertBackLeft, invertBackRight;
|
||||
|
||||
struct Poti {
|
||||
int16_t sampleCount;
|
||||
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
||||
} poti;
|
||||
|
||||
int16_t wheelDiameter; // in mm
|
||||
int16_t numMagnetPoles; // virtual RPM per one real RPM
|
||||
bool swapFrontBack;
|
||||
} hardware;
|
||||
} controllerHardware;
|
||||
|
||||
struct BoardcomputerHardware {
|
||||
int16_t sampleCount;
|
||||
int16_t gasMin, gasMax, bremsMin, bremsMax;
|
||||
bool swapScreenBytes;
|
||||
} boardcomputerHardware;
|
||||
|
||||
struct DefaultMode {
|
||||
ControlType ctrlTyp;
|
||||
@@ -83,23 +84,24 @@ void Settings::executeForEverySetting(T &&callable)
|
||||
callable("fieldWeakMax", limits.fieldWeakMax);
|
||||
callable("phaseAdvMax", limits.phaseAdvMax);
|
||||
|
||||
callable("enableFrontLeft", hardware.enableFrontLeft);
|
||||
callable("enableFrontRigh", hardware.enableFrontRight);
|
||||
callable("enableBackLeft", hardware.enableBackLeft);
|
||||
callable("enableBackRight", hardware.enableBackRight);
|
||||
callable("enableFrontLeft", controllerHardware.enableFrontLeft);
|
||||
callable("enableFrontRigh", controllerHardware.enableFrontRight);
|
||||
callable("enableBackLeft", controllerHardware.enableBackLeft);
|
||||
callable("enableBackRight", controllerHardware.enableBackRight);
|
||||
|
||||
callable("invertFrontLeft", hardware.invertFrontLeft);
|
||||
callable("invertFrontRigh", hardware.invertFrontRight);
|
||||
callable("invertBackLeft", hardware.invertBackLeft);
|
||||
callable("invertBackRight", hardware.invertBackRight);
|
||||
callable("invertFrontLeft", controllerHardware.invertFrontLeft);
|
||||
callable("invertFrontRigh", controllerHardware.invertFrontRight);
|
||||
callable("invertBackLeft", controllerHardware.invertBackLeft);
|
||||
callable("invertBackRight", controllerHardware.invertBackRight);
|
||||
|
||||
callable("sampleCount", hardware.poti.sampleCount);
|
||||
callable("gasMin", hardware.poti.gasMin);
|
||||
callable("gasMax", hardware.poti.gasMax);
|
||||
callable("bremsMin", hardware.poti.bremsMin);
|
||||
callable("bremsMax", hardware.poti.bremsMax);
|
||||
callable("swapFrontBack", controllerHardware.swapFrontBack);
|
||||
|
||||
callable("swapFrontBack", hardware.swapFrontBack);
|
||||
callable("sampleCount", boardcomputerHardware.sampleCount);
|
||||
callable("gasMin", boardcomputerHardware.gasMin);
|
||||
callable("gasMax", boardcomputerHardware.gasMax);
|
||||
callable("bremsMin", boardcomputerHardware.bremsMin);
|
||||
callable("bremsMax", boardcomputerHardware.bremsMax);
|
||||
callable("swapScreenBytes", boardcomputerHardware.swapScreenBytes);
|
||||
|
||||
callable("default.ctrlTyp", defaultMode.ctrlTyp);
|
||||
callable("default.ctrlMod", defaultMode.ctrlMod);
|
||||
|
@@ -30,34 +30,35 @@ struct NMotMaxRpmAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &g
|
||||
struct FieldWeakMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.fieldWeakMax; } };
|
||||
struct PhaseAdvMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.limits.phaseAdvMax; } };
|
||||
|
||||
struct FrontLeftEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.enableFrontLeft; } };
|
||||
struct FrontRightEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.enableFrontRight; } };
|
||||
struct BackLeftEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.enableBackLeft; } };
|
||||
struct BackRightEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.enableBackRight; } };
|
||||
struct FrontLeftEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableFrontLeft; } };
|
||||
struct FrontRightEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableFrontRight; } };
|
||||
struct BackLeftEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableBackLeft; } };
|
||||
struct BackRightEnabledAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.enableBackRight; } };
|
||||
|
||||
struct FrontLeftInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.invertFrontLeft; } };
|
||||
struct FrontRightInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.invertFrontRight; } };
|
||||
struct BackLeftInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.invertBackLeft; } };
|
||||
struct BackRightInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hardware.invertBackRight; } };
|
||||
struct FrontLeftInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertFrontLeft; } };
|
||||
struct FrontRightInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertFrontRight; } };
|
||||
struct BackLeftInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertBackLeft; } };
|
||||
struct BackRightInvertedAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.controllerHardware.invertBackRight; } };
|
||||
|
||||
struct SampleCountAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.poti.sampleCount; } };
|
||||
struct GasMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.poti.gasMin; } };
|
||||
struct GasMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.poti.gasMax; } };
|
||||
struct BremsMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.poti.bremsMin; } };
|
||||
struct BremsMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.poti.bremsMax; } };
|
||||
|
||||
struct WheelDiameterMmAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.wheelDiameter; } };
|
||||
struct WheelDiameterMmAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.controllerHardware.wheelDiameter; } };
|
||||
struct WheelDiameterInchAccessor : public virtual AccessorInterface<float>
|
||||
{
|
||||
float getValue() const override { return convertToInch(settings.hardware.wheelDiameter); }
|
||||
void setValue(float value) override { settings.hardware.wheelDiameter = convertFromInch(value); saveSettings(); }
|
||||
float getValue() const override { return convertToInch(settings.controllerHardware.wheelDiameter); }
|
||||
void setValue(float value) override { settings.controllerHardware.wheelDiameter = convertFromInch(value); saveSettings(); }
|
||||
};
|
||||
struct NumMagnetPolesAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hardware.numMagnetPoles; } };
|
||||
struct NumMagnetPolesAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.controllerHardware.numMagnetPoles; } };
|
||||
struct SwapFrontBackAccessor : public RefAccessorSaveSettings<bool> {
|
||||
bool &getRef() const override { return settings.hardware.swapFrontBack; }
|
||||
bool &getRef() const override { return settings.controllerHardware.swapFrontBack; }
|
||||
void setValue(bool value) override { RefAccessorSaveSettings<bool>::setValue(value); updateSwapFrontBack(); };
|
||||
};
|
||||
|
||||
struct SampleCountAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.sampleCount; } };
|
||||
struct GasMinAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.gasMin; } };
|
||||
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 BremsMaxAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMax; } };
|
||||
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 DefaultModeCtrlModAccessor : public RefAccessorSaveSettings<ControlMode> { ControlMode &getRef() const override { return settings.defaultMode.ctrlMod; } };
|
||||
struct DefaultModeEnableSmoothingAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableSmoothing; } };
|
||||
|
18
src/texts.h
18
src/texts.h
@@ -66,7 +66,8 @@ constexpr char TEXT_LIMITSSETTINGS[] = "Limits settings";
|
||||
constexpr char TEXT_WIFISETTINGS[] = "WiFi settings";
|
||||
//constexpr char TEXT_BLUETOOTHSETTINGS[] = "Bluetooth settings";
|
||||
constexpr char TEXT_MODESSETTINGS[] = "Modes settings";
|
||||
constexpr char TEXT_HARDWARESETTINGS[] = "Hardware settings";
|
||||
constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings";
|
||||
constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings";
|
||||
constexpr char TEXT_AUTOCONNECTBMS[] = "Auto connect BMS";
|
||||
constexpr char TEXT_BUZZER[] = "Buzzer";
|
||||
constexpr char TEXT_FRONTLED[] = "Front LED";
|
||||
@@ -74,14 +75,13 @@ constexpr char TEXT_BACKLED[] = "Back LED";
|
||||
//constexpr char TEXT_ABOUT[] = "About";
|
||||
//constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
//HardwareSettings
|
||||
//constexpr char TEXT_HARDWARESETTINGS[] = "Hardware settings";
|
||||
//ControllerHardwareSettings
|
||||
//constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings";
|
||||
constexpr char TEXT_WHEELDIAMETERMM[] = "Wheel diameter (mm)";
|
||||
constexpr char TEXT_WHEELDIAMETERINCH[] = "Wheel diameter (inch)";
|
||||
constexpr char TEXT_NUMMAGNETPOLES[] = "Num magnet poles";
|
||||
constexpr char TEXT_SETENABLED[] = "Set enabled";
|
||||
constexpr char TEXT_SETINVERTED[] = "Set inverted";
|
||||
constexpr char TEXT_POTISETTINGS[] = "Poti settings";
|
||||
constexpr char TEXT_SWAPFRONTBACK[] = "Swap front/back";
|
||||
//constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
@@ -215,14 +215,15 @@ constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings";
|
||||
//constexpr char TEXT_GENERICWIFISETTINGS[] = "Generic WiFi settings";
|
||||
//constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
//PotiSettingsMenu
|
||||
//constexpr char TEXT_POTISETTINGS[] = "Poti settings";
|
||||
//BoardcomputerHardwareSettingsMenu
|
||||
//constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings";
|
||||
constexpr char TEXT_CALIBRATE[] = "Calibrate";
|
||||
constexpr char TEXT_SETSAMPLECOUNT[] = "Set sampleCount";
|
||||
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_CALIBRATE[] = "Calibrate";
|
||||
constexpr char TEXT_SWAPSCREENBYTES[] = "Swap screen bytes";
|
||||
//constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
//PresetsMenu
|
||||
@@ -231,7 +232,8 @@ constexpr char TEXT_DEFAULTEVERYTHING[] = "Default everything";
|
||||
constexpr char TEXT_DEFAULTLIMITS[] = "Default limits";
|
||||
constexpr char TEXT_KIDSLIMITS[] = "Kids limits";
|
||||
constexpr char TEXT_DEFAULTPOTI[] = "Default poti";
|
||||
constexpr char TEXT_DEFAULTHARDWARE[] = "Default hardware";
|
||||
constexpr char TEXT_DEFAULTCONTROLLERHARDWARE[] = "Default controller H/W";
|
||||
constexpr char TEXT_DEFAULTBOARDCOMPUTERHARDWARE[] = "Default boardcomputer H/W";
|
||||
constexpr char TEXT_STREET[] = "Street";
|
||||
constexpr char TEXT_SIDEWALK[] = "Sidewalk";
|
||||
constexpr char TEXT_POLICE[] = "Police";
|
||||
|
32
src/utils.h
32
src/utils.h
@@ -30,12 +30,12 @@ T scaleBetween(T x, T in_min, T in_max, T out_min, T out_max) {
|
||||
|
||||
float convertToKmh(float val)
|
||||
{
|
||||
return val /* / settings.hardware.numMagnetPoles */ / 60.f * settings.hardware.wheelDiameter / 1000.f * 3.14159265359f * 3.6f;
|
||||
return val /* / settings.controllerHardware.numMagnetPoles */ / 60.f * settings.controllerHardware.wheelDiameter / 1000.f * 3.14159265359f * 3.6f;
|
||||
}
|
||||
|
||||
float convertFromKmh(float val)
|
||||
{
|
||||
return val /* * settings.hardware.numMagnetPoles */ * 60.f / settings.hardware.wheelDiameter * 1000.f / 3.14159265359f / 3.6f;
|
||||
return val /* * settings.controllerHardware.numMagnetPoles */ * 60.f / settings.controllerHardware.wheelDiameter * 1000.f / 3.14159265359f / 3.6f;
|
||||
}
|
||||
|
||||
float convertToInch(float val)
|
||||
@@ -220,18 +220,18 @@ void fixCommonParams()
|
||||
currentlyReverseBeeping = false;
|
||||
}
|
||||
|
||||
front.command.left.enable = settings.hardware.enableFrontLeft;
|
||||
front.command.right.enable = settings.hardware.enableFrontRight;
|
||||
back.command.left.enable = settings.hardware.enableBackLeft;
|
||||
back.command.right.enable = settings.hardware.enableBackRight;
|
||||
front.command.left.enable = settings.controllerHardware.enableFrontLeft;
|
||||
front.command.right.enable = settings.controllerHardware.enableFrontRight;
|
||||
back.command.left.enable = settings.controllerHardware.enableBackLeft;
|
||||
back.command.right.enable = settings.controllerHardware.enableBackRight;
|
||||
|
||||
if (settings.hardware.invertFrontLeft)
|
||||
if (settings.controllerHardware.invertFrontLeft)
|
||||
front.command.left.pwm = -front.command.left.pwm;
|
||||
if (settings.hardware.invertFrontRight)
|
||||
if (settings.controllerHardware.invertFrontRight)
|
||||
front.command.right.pwm = -front.command.right.pwm;
|
||||
if (settings.hardware.invertBackLeft)
|
||||
if (settings.controllerHardware.invertBackLeft)
|
||||
back.command.left.pwm = -back.command.left.pwm;
|
||||
if (settings.hardware.invertBackRight)
|
||||
if (settings.controllerHardware.invertBackRight)
|
||||
back.command.right.pwm = -back.command.right.pwm;
|
||||
}
|
||||
|
||||
@@ -250,8 +250,8 @@ void switchScreen(Args&&... args);
|
||||
|
||||
void updateSwapFrontBack()
|
||||
{
|
||||
front.serial = settings.hardware.swapFrontBack ? Serial2 : Serial1;
|
||||
back.serial = settings.hardware.swapFrontBack ? Serial1 : Serial2;
|
||||
front.serial = settings.controllerHardware.swapFrontBack ? Serial2 : Serial1;
|
||||
back.serial = settings.controllerHardware.swapFrontBack ? Serial1 : Serial2;
|
||||
}
|
||||
|
||||
void loadSettings()
|
||||
@@ -305,15 +305,15 @@ void readPotis()
|
||||
const auto sampleMultipleTimes = [](int pin){
|
||||
analogRead(pin);
|
||||
double sum{};
|
||||
for (int i = 0; i < settings.hardware.poti.sampleCount; i++)
|
||||
for (int i = 0; i < settings.boardcomputerHardware.sampleCount; i++)
|
||||
sum += analogRead(pin);
|
||||
return sum/settings.hardware.poti.sampleCount;
|
||||
return sum/settings.boardcomputerHardware.sampleCount;
|
||||
};
|
||||
|
||||
raw_gas = sampleMultipleTimes(PINS_GAS);
|
||||
gas = scaleBetween<float>(raw_gas, settings.hardware.poti.gasMin, settings.hardware.poti.gasMax, 0., 1000.);
|
||||
gas = scaleBetween<float>(raw_gas, settings.boardcomputerHardware.gasMin, settings.boardcomputerHardware.gasMax, 0., 1000.);
|
||||
|
||||
raw_brems = sampleMultipleTimes(PINS_BREMS);
|
||||
brems = scaleBetween<float>(raw_brems, settings.hardware.poti.bremsMin, settings.hardware.poti.bremsMax, 0., 1000.);
|
||||
brems = scaleBetween<float>(raw_brems, settings.boardcomputerHardware.bremsMin, settings.boardcomputerHardware.bremsMax, 0., 1000.);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user