BatteryMonitor: Add helper of logValues()

... that logs values for an arbitrary health info and
health config.

This allows health 2.1 HAL implementation to log the
updated health info struct, which is not stored in
BatteryMonitor.

Test: healthd kernel log has correct values
Bug: 179326883
Change-Id: I394ef3f317229f94f4db82de5635d9380c183394
This commit is contained in:
Yifan Hong 2021-02-08 15:14:48 -08:00
parent d42b34cb65
commit 605e7d20ee
2 changed files with 12 additions and 4 deletions

View File

@ -349,9 +349,14 @@ void BatteryMonitor::updateValues(void) {
}
void BatteryMonitor::logValues(void) {
logValues(*mHealthInfo, *mHealthdConfig);
}
void BatteryMonitor::logValues(const android::hardware::health::V2_1::HealthInfo& health_info,
const struct healthd_config& healthd_config) {
char dmesgline[256];
size_t len;
const HealthInfo_1_0& props = mHealthInfo->legacy.legacy;
const HealthInfo_1_0& props = health_info.legacy.legacy;
if (props.batteryPresent) {
snprintf(dmesgline, sizeof(dmesgline), "battery l=%d v=%d t=%s%d.%d h=%d st=%d",
props.batteryLevel, props.batteryVoltage, props.batteryTemperature < 0 ? "-" : "",
@ -359,17 +364,17 @@ void BatteryMonitor::logValues(void) {
props.batteryHealth, props.batteryStatus);
len = strlen(dmesgline);
if (!mHealthdConfig->batteryCurrentNowPath.isEmpty()) {
if (!healthd_config.batteryCurrentNowPath.isEmpty()) {
len += snprintf(dmesgline + len, sizeof(dmesgline) - len, " c=%d",
props.batteryCurrent);
}
if (!mHealthdConfig->batteryFullChargePath.isEmpty()) {
if (!healthd_config.batteryFullChargePath.isEmpty()) {
len += snprintf(dmesgline + len, sizeof(dmesgline) - len, " fc=%d",
props.batteryFullCharge);
}
if (!mHealthdConfig->batteryCycleCountPath.isEmpty()) {
if (!healthd_config.batteryCycleCountPath.isEmpty()) {
len += snprintf(dmesgline + len, sizeof(dmesgline) - len, " cc=%d",
props.batteryCycleCount);
}

View File

@ -66,6 +66,9 @@ class BatteryMonitor {
void logValues(void);
bool isChargerOnline();
static void logValues(const android::hardware::health::V2_1::HealthInfo& health_info,
const struct healthd_config& healthd_config);
private:
struct healthd_config *mHealthdConfig;
Vector<String8> mChargerNames;