Added basic battery graph display

This commit is contained in:
CommanderRedYT
2022-02-27 23:42:55 +01:00
parent 689d7221a1
commit 11a461bfdd
4 changed files with 62 additions and 1 deletions

View File

@ -42,8 +42,8 @@ set(headers
bobbycheckbox.h
bobbyerrorhandler.h
bobbyquickactions.h
bobbytypesafeenum.h
bobbyschedulertask.h
bobbytypesafeenum.h
buildserver.h
can.h
changevaluedisplay_bluetoothmode.h
@ -59,6 +59,7 @@ set(headers
debugcolorhelpers.h
debuginputhandler.h
debugtexthelpers.h
displays/batterygraphdisplay.h
displays/bmsdisplay.h
displays/bobbychangevaluedisplay.h
displays/bobbydisplay.h
@ -294,6 +295,7 @@ set(sources
debugcolorhelpers.cpp
debuginputhandler.cpp
debugtexthelpers.cpp
displays/batterygraphdisplay.cpp
displays/bmsdisplay.cpp
displays/bobbychangevaluedisplay.cpp
displays/bobbydisplay.cpp

View File

@ -0,0 +1,38 @@
#include "batterygraphdisplay.h"
// 3rdparty lib includes
#include <screenmanager.h>
// local includes
#include "displays/menus/batterymenu.h"
namespace {
constexpr char TEXT_BATTERY_GRAPH[] = "Battery Level";
} // namespace
void BatteryGraphDisplay::initScreen() {
Base::initScreen();
}
std::string BatteryGraphDisplay::text() const {
return TEXT_BATTERY_GRAPH;
}
void BatteryGraphDisplay::redraw() {
Base::redraw();
}
void BatteryGraphDisplay::buttonPressed(espgui::Button button)
{
Base::buttonPressed(button);
switch (button)
{
using espgui::Button;
case Button::Left:
case Button::Right:
espgui::switchScreen<BatteryMenu>();
break;
default:;
}
}

View File

@ -0,0 +1,17 @@
#pragma once
// 3rdparty lib includes
// local includes
#include "bobbydisplaywithtitle.h"
class BatteryGraphDisplay : public BobbyDisplayWithTitle {
using Base = BobbyDisplayWithTitle;
public:
std::string text() const override;
void initScreen() override;
void redraw() override;
void buttonPressed(espgui::Button button) override;
};

View File

@ -14,8 +14,10 @@
// Local includes
#include "accessors/settingsaccessors.h"
#include "battery.h"
#include "displays/batterygraphdisplay.h"
#include "displays/bobbychangevaluedisplay.h"
#include "displays/calibratevoltagedisplay.h"
#include "icons/graph.h"
#include "icons/settings.h"
#include "mainmenu.h"
#include "typesafeenumchangemenu.h"
@ -26,6 +28,7 @@ constexpr char TEXT_BATTERY[] = "Battery";
constexpr char TEXT_CELL_SERIES[] = "Cells (Series)";
constexpr char TEXT_CELL_PARALLEL[] = "Cells (Parallel)";
constexpr char TEXT_SELECT_CELL_TYPE[] = "Select Cell Type";
constexpr char TEXT_SHOW_BATTERY_GRAPH[] = "Battery Graph";
constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages";
constexpr char TEXT_BATTERY_WHKM[] = "Wh per km";
constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration";
@ -78,6 +81,7 @@ BatteryMenu::BatteryMenu()
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CELL_PARALLEL, BatteryParallelCellsAccessor>, SwitchScreenAction<BatteryCellParallelChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_BATTERY_WHKM, BatteryWHperKMAccessor>, SwitchScreenAction<BatteryWHperKMChangeScreen>>>();
constructMenuItem<SwitchScreenTypeSafeChangeMenuItem<BatteryCellType, BatteryMenu, TEXT_SELECT_CELL_TYPE>>(&configs.battery.cellType);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SHOW_BATTERY_GRAPH>, SwitchScreenAction<BatteryGraphDisplay>, StaticMenuItemIcon<&bobbyicons::graph>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WhStatisticsText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_CALIBRATE>, SwitchScreenAction<CalibrateVoltageDisplay>, StaticMenuItemIcon<&bobbyicons::settings>>>();