diff --git a/main/battery.h b/main/battery.h index aa2694c..07ca95e 100644 --- a/main/battery.h +++ b/main/battery.h @@ -19,7 +19,7 @@ namespace { float getBatteryPercentage(float batVoltage, BatteryCellType cellType) { - float percentage = 0; + float percentage = 12.34; switch (cellType) { case BatteryCellType::_22P: break; @@ -33,6 +33,11 @@ float getBatteryPercentage(float batVoltage, BatteryCellType cellType) return percentage; } +float getRemainingWattHours() +{ + return 42.69; +} + std::string getBatteryPercentageString() { float avgVoltage = 0; @@ -46,8 +51,19 @@ std::string getBatteryPercentageString() return output; } +std::string getBatteryRemainingWattHoursString() +{ + return fmt::format("{:.1f} Wh", getRemainingWattHours()); +} + std::string getBatteryCellTypeString() { return fmt::format("Cells: {}", toString(BatteryCellType(settings.battery.cellType))); } + +std::string getRemainingRangeString() +{ + return fmt::format("{:.1f} km", getRemainingWattHours() / settings.battery.watthoursPerKilometer); +} + } // namespace diff --git a/main/displays/statusdisplay.h b/main/displays/statusdisplay.h index 533e5f0..e788984 100644 --- a/main/displays/statusdisplay.h +++ b/main/displays/statusdisplay.h @@ -96,6 +96,8 @@ private: ProgressBar m_progressBarBrems{150, 15, 90, 15, 0, 1000}; Label m_batterypercent{0, 30}; + Label m_watthoursleft{110, 30}; + Label m_kilometersleft{175, 30}; BoardStatus m_frontStatus{45}; BoardStatus m_backStatus{145}; @@ -130,6 +132,8 @@ void StatusDisplay::initScreen() m_progressBarBrems.start(); m_batterypercent.start(); + m_watthoursleft.start(); + m_kilometersleft.start(); m_frontStatus.start(); m_backStatus.start(); @@ -167,6 +171,8 @@ void StatusDisplay::redraw() m_progressBarBrems.redraw(brems ? *brems : 0); m_batterypercent.redraw(getBatteryPercentageString()); + m_watthoursleft.redraw(getBatteryRemainingWattHoursString()); + m_kilometersleft.redraw(getRemainingRangeString()); m_frontStatus.redraw(controllers.front); m_backStatus.redraw(controllers.back);