improve steedinfodisplay
This commit is contained in:
committed by
CommanderRedYT
parent
756c8bde94
commit
647365c5fc
@ -8,6 +8,7 @@
|
||||
#include "displays/batteryinfodisplay.h"
|
||||
#include "displays/menus/mainmenu.h"
|
||||
#include "displays/statusdisplay.h"
|
||||
#include "drivingstatistics.h"
|
||||
|
||||
void SpeedInfoDisplay::initScreen()
|
||||
{
|
||||
@ -28,14 +29,38 @@ void SpeedInfoDisplay::redraw()
|
||||
tft.setTextColor(TFT_WHITE, TFT_BLACK);
|
||||
tft.setTextFont(4);
|
||||
|
||||
tft.setTextSize(3);
|
||||
tft.setTextSize(4);
|
||||
|
||||
m_labelSpeed.redraw(fmt::format(avgSpeedKmh < 10 ? "{:.3f}" : "{:.1f}", avgSpeedKmh));
|
||||
m_labelSpeed.redraw(fmt::format(
|
||||
std::abs(avgSpeedKmh) < 10 ? "{:.2f}" :
|
||||
(std::abs(avgSpeedKmh) < 100 ? "{:.1f}" : "{:.0f}"),
|
||||
avgSpeedKmh));
|
||||
|
||||
tft.setTextSize(1);
|
||||
m_batteryPercentLabel.redraw(getBatteryPercentageString());
|
||||
|
||||
if (const auto avgVoltage = controllers.getAvgVoltage(); avgVoltage) {
|
||||
auto watt = sumCurrent * *avgVoltage;
|
||||
auto wh_per_km = std::abs(avgSpeedKmh) > 0.1 ? watt / std::abs(avgSpeedKmh) : 0;
|
||||
|
||||
m_voltageLabel.redraw(fmt::format("{:.1f} V", avgVoltage.value()));
|
||||
m_currentConsumptionLabel.redraw(fmt::format("{:.1f} Wh/km", wh_per_km));
|
||||
} else {
|
||||
m_voltageLabel.redraw("No voltage");
|
||||
m_currentConsumptionLabel.redraw("No comsumption");
|
||||
}
|
||||
|
||||
m_distanceLabel.redraw(fmt::format(
|
||||
drivingStatistics.meters_driven > 1000 ? "{:.3f} km" :
|
||||
(drivingStatistics.meters_driven > 100 ? "{:.1f} m" : "{:.2f} m"),
|
||||
drivingStatistics.meters_driven > 1000 ?
|
||||
drivingStatistics.meters_driven / 1000 :
|
||||
drivingStatistics.meters_driven));
|
||||
|
||||
tft.setTextSize(1);
|
||||
|
||||
m_dischargingBar.redraw(sumCurrent<0.f?(-sumCurrent):0.f);
|
||||
m_chargingBar.redraw(sumCurrent>0.f?sumCurrent:0.f);
|
||||
m_dischargingBar.redraw(sumCurrent < 0.f ? (-sumCurrent) : 0.f);
|
||||
m_chargingBar.redraw(sumCurrent > 0.f ? sumCurrent : 0.f);
|
||||
}
|
||||
|
||||
void SpeedInfoDisplay::buttonPressed(espgui::Button button)
|
||||
|
@ -19,8 +19,13 @@ public:
|
||||
|
||||
void buttonPressed(espgui::Button button) override;
|
||||
private:
|
||||
espgui::Label m_labelSpeed{28, 70};
|
||||
espgui::Label m_labelSpeed{5, 5};
|
||||
|
||||
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};
|
||||
espgui::ReverseProgressBar m_dischargingBar{10, 110, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_GREEN};
|
||||
espgui::ProgressBar m_chargingBar{espgui::tft.width()/2, 110, espgui::tft.width()/2 - 10, 25, 0, 40, TFT_RED};
|
||||
|
||||
espgui::Label m_batteryPercentLabel{5, 150};
|
||||
espgui::Label m_voltageLabel{5, 190};
|
||||
espgui::Label m_distanceLabel{5, 230};
|
||||
espgui::Label m_currentConsumptionLabel{5, 270};
|
||||
};
|
||||
|
Reference in New Issue
Block a user