using different HAS_BQ27220 for renderbatteryindicator

This commit is contained in:
pelgraine
2026-02-15 19:30:12 +11:00
parent b2967fc1a7
commit e056ea3c2c

View File

@@ -116,9 +116,13 @@ class HomeScreen : public UIScreen {
AdvertPath recent[UI_RECENT_LIST_SIZE];
void renderBatteryIndicator(DisplayDriver& display, uint16_t batteryMilliVolts) {
// Use voltage-based estimation to match BLE app readings
void renderBatteryIndicator(DisplayDriver& display, uint16_t batteryMilliVolts, int* outIconX = nullptr) {
uint8_t batteryPercentage = 0;
#if HAS_BQ27220
// Use fuel gauge SOC directly — accurate across the full discharge curve
batteryPercentage = board.getBatteryPercent();
#else
// Fallback: voltage-based linear estimation for boards without fuel gauge
if (batteryMilliVolts > 0) {
const int minMilliVolts = 3000;
const int maxMilliVolts = 4200;
@@ -127,6 +131,7 @@ void renderBatteryIndicator(DisplayDriver& display, uint16_t batteryMilliVolts)
if (pct > 100) pct = 100;
batteryPercentage = (uint8_t)pct;
}
#endif
display.setColor(DisplayDriver::GREEN);