Fixed metersdisplay, implemented speed display

This commit is contained in:
CommanderRedYT
2022-06-16 15:11:23 +02:00
parent d829c0d5cb
commit 56d0cb2ab0
5 changed files with 40 additions and 6 deletions

View File

@ -7,8 +7,8 @@
// local includes
#include "battery.h"
#include "displays/menus/mainmenu.h"
#include "displays/metersdisplay.h"
#include "displays/speedinfodisplay.h"
#include "displays/statusdisplay.h"
// display with big battery and ten bars (0-100%)
@ -68,7 +68,7 @@ void BatteryInfoDisplay::buttonPressed(espgui::Button button)
espgui::pushScreen<MainMenu>();
break;
case Button::Up:
espgui::switchScreen<StatusDisplay>();
espgui::switchScreen<MetersDisplay>();
break;
case Button::Down:
espgui::switchScreen<SpeedInfoDisplay>();

View File

@ -5,10 +5,11 @@
#include <fmt/core.h>
// local includes
#include "globals.h"
#include "utils.h"
#include "displays/batteryinfodisplay.h"
#include "displays/menus/mainmenu.h"
#include "displays/statusdisplay.h"
#include "globals.h"
#include "utils.h"
using namespace espgui;
@ -61,9 +62,11 @@ void MetersDisplay::buttonPressed(espgui::Button button)
pushScreen<MainMenu>();
break;
case Button::Up:
case Button::Down:
switchScreen<StatusDisplay>();
break;
case Button::Down:
switchScreen<BatteryInfoDisplay>();
break;
default:;
}
}

View File

@ -1,6 +1,7 @@
#include "speedinfodisplay.h"
// 3rdparty lib includes
#include <fmt/core.h>
#include <screenmanager.h>
// local includes
@ -11,11 +12,30 @@
void SpeedInfoDisplay::initScreen()
{
Base::initScreen();
m_labelSpeed.start();
m_dischargingBar.start();
m_chargingBar.start();
}
void SpeedInfoDisplay::redraw()
{
using namespace espgui;
Base::redraw();
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setTextFont(4);
tft.setTextSize(3);
m_labelSpeed.redraw(fmt::format(avgSpeedKmh < 10 ? "{:.3f}" : "{:.1f}", avgSpeedKmh));
tft.setTextSize(1);
m_dischargingBar.redraw(sumCurrent<0.f?(-sumCurrent):0.f);
m_chargingBar.redraw(sumCurrent>0.f?sumCurrent:0.f);
}
void SpeedInfoDisplay::buttonPressed(espgui::Button button)

View File

@ -1,5 +1,11 @@
#pragma once
// 3rdparty lib includes
#include <tftinstance.h>
#include <widgets/label.h>
#include <widgets/progressbar.h>
#include <widgets/reverseprogressbar.h>
// local includes
#include "bobbydisplay.h"
@ -12,4 +18,9 @@ public:
void redraw() override;
void buttonPressed(espgui::Button button) override;
private:
espgui::Label m_labelSpeed{28, 70};
espgui::ReverseProgressBar m_dischargingBar{10, 155, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_GREEN};
espgui::ProgressBar m_chargingBar{espgui::tft.width()/2, 155, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_RED};
};

View File

@ -245,7 +245,7 @@ void StatusDisplay::buttonPressed(espgui::Button button)
case Button::Down:
if (simplified)
return;
switchScreen<BatteryInfoDisplay>();
switchScreen<MetersDisplay>();
break;
default:;
}