smaller updates

This commit is contained in:
2021-08-21 19:32:44 +02:00
parent e9d75b973b
commit d350eddad8
9 changed files with 20 additions and 59 deletions

View File

@ -19,7 +19,6 @@ set(headers
actions/rebootaction.h
actions/savesettingsaction.h
actions/tempomatmodeapplycurrentpeedaction.h
actions/toggleboolaction.h
actions/wifiscanaction.h
actions/switchprofileaction.h
actions/updateswapfrontbackaction.h

View File

@ -10,6 +10,7 @@
#include "displays/menus/tempomatmodesettingsmenu.h"
#include "displays/menus/larsmmodesettingsmenu.h"
#include "displays/menus/gametrakmodesettingsmenu.h"
#include "screenmanager.h"
using namespace espgui;

View File

@ -1,17 +0,0 @@
#pragma once
#include "actioninterface.h"
#include "accessorinterface.h"
using namespace espgui;
namespace {
class ToggleBoolAction : public virtual ActionInterface, public virtual AccessorInterface<bool>
{
public:
void triggered() override
{
setValue(!getValue());
}
};
}

View File

@ -1,12 +1,15 @@
#pragma once
// Arduino includes
#include <Arduino.h>
// local includes
#include "display.h"
#include "actions/switchscreenaction.h"
#include "globals.h"
#include "bmsutils.h"
#include "widgets/label.h"
#include "screenmanager.h"
namespace {
class MainMenu;

View File

@ -89,8 +89,6 @@ BluetoothSerial bluetoothSerial;
ModeInterface *lastMode{};
ModeInterface *currentMode{};
std::unique_ptr<Display> currentDisplay;
#ifdef FEATURE_LEDBACKLIGHT
constexpr const bool ledBacklightInverted =
#ifdef LEDBACKLIGHT_INVERTED

View File

@ -21,7 +21,16 @@ void updateLedStrip()
{
EVERY_N_MILLISECONDS( 20 ) { gHue++; }
if (brems && *brems > 50.f)
float avgPwm{};
for (const Controller &controller : controllers)
{
avgPwm +=
controller.command.left.pwm * (controller.invertLeft ? -1 : 1) +
controller.command.right.pwm * (controller.invertRight ? -1 : 1);
}
avgPwm /= 4;
if (avgPwm < -50.f)
{
auto color = avgSpeedKmh < -0.1f ? CRGB{255, 255, 255} : CRGB{255, 0, 0};
constexpr auto kleinerOffset = 4;

View File

@ -1,49 +1,20 @@
#pragma once
// system includes
#include <optional>
// local includes
#include "globals.h"
#include "utils.h"
#include "widgets/label.h"
#include "icons/logo.h"
#include "screenmanager.h"
using namespace espgui;
namespace {
Label bootLabel{32, 250};
void deconstructScreen()
{
if (currentDisplay)
{
currentDisplay->stop();
//currentDisplay->~Display();
currentDisplay = nullptr;
}
}
template<typename T, typename... Args>
void switchScreenImpl(Args&&... args)
{
deconstructScreen();
std::unique_ptr<T> ptr = std::make_unique<T>(std::forward<Args>(args)...);
currentDisplay = std::move(ptr);
currentDisplay->start();
currentDisplay->initScreen();
currentDisplay->update();
currentDisplay->redraw();
}
std::function<void()> changeScreenCallback;
template<typename T, typename... Args>
void switchScreen(Args&&... args)
{
if (currentDisplay)
changeScreenCallback = [&args...](){ switchScreenImpl<T>(std::forward<Args>(args)...); };
else
switchScreenImpl<T>(std::forward<Args>(args)...);
}
void initScreen()
{
tft.init();

View File

@ -218,9 +218,6 @@ void sendCommands()
#endif
}
template<typename T, typename... Args>
void switchScreen(Args&&... args);
#ifdef FEATURE_SERIAL
void updateSwapFrontBack()
{