summaryrefslogtreecommitdiff
path: root/health
diff options
context:
space:
mode:
authorStephane Lee <stayfan@google.com>2020-12-16 20:01:32 -0800
committerStephane Lee <stayfan@google.com>2020-12-18 03:22:48 +0000
commit703d7ff76ffa0f26bb00deaf9dd290fc65bbe9f9 (patch)
treea316927e3fd2a3fd3a9ddf758ff19f4af21f2d79 /health
parent3bf6cfbf722f19e80d3585caad10cd9ec29262b4 (diff)
downloadpixel-703d7ff76ffa0f26bb00deaf9dd290fc65bbe9f9.tar.gz
BatteryDefender: Add trigger SOC to Google HAL control
Test: atest HealthTestCases Bug: 173080734 Change-Id: I8f9c30e73f0535509f67d0f9a4e0054e30056031 (cherry picked from commit 89c0fe1d0035ad11eba31bde36151f123ba386b1)
Diffstat (limited to 'health')
-rw-r--r--health/BatteryDefender.cpp9
-rw-r--r--health/include/pixelhealth/BatteryDefender.h2
-rw-r--r--health/test/TestBatteryDefender.cpp11
3 files changed, 18 insertions, 4 deletions
diff --git a/health/BatteryDefender.cpp b/health/BatteryDefender.cpp
index 37d24e50..5873567d 100644
--- a/health/BatteryDefender.cpp
+++ b/health/BatteryDefender.cpp
@@ -213,12 +213,15 @@ void BatteryDefender::stateMachine_runAction(const state_E state,
clearStateData();
break;
- case STATE_CONNECTED:
+ case STATE_CONNECTED: {
addTimeToChargeTimers();
- if (props->batteryLevel == kChargeHighCapacityLevel) {
+
+ const int triggerLevel = android::base::GetIntProperty(
+ kPropBatteryDefenderCtrlTriggerSOC, kChargeHighCapacityLevel, 0, 100);
+ if (props->batteryLevel >= triggerLevel) {
mHasReachedHighCapacityLevel = true;
}
- break;
+ } break;
case STATE_ACTIVE:
addTimeToChargeTimers();
diff --git a/health/include/pixelhealth/BatteryDefender.h b/health/include/pixelhealth/BatteryDefender.h
index d6ad0ccb..bf3c4929 100644
--- a/health/include/pixelhealth/BatteryDefender.h
+++ b/health/include/pixelhealth/BatteryDefender.h
@@ -99,6 +99,8 @@ class BatteryDefender {
"vendor.battery.defender.ctrl.recharge_soc_start";
const char *const kPropBatteryDefenderCtrlStopSOC =
"vendor.battery.defender.ctrl.recharge_soc_stop";
+ const char *const kPropBatteryDefenderCtrlTriggerSOC =
+ "vendor.battery.defender.ctrl.trigger_soc";
// Default thresholds
const bool kDefaultEnable = true;
diff --git a/health/test/TestBatteryDefender.cpp b/health/test/TestBatteryDefender.cpp
index 18949823..f050cccb 100644
--- a/health/test/TestBatteryDefender.cpp
+++ b/health/test/TestBatteryDefender.cpp
@@ -150,6 +150,7 @@ const char *kPropBatteryDefenderCtrlActivateTime = "vendor.battery.defender.ctrl
const char *kPropBatteryDefenderCtrlResumeTime = "vendor.battery.defender.ctrl.resume_time";
const char *kPropBatteryDefenderCtrlStartSOC = "vendor.battery.defender.ctrl.recharge_soc_start";
const char *kPropBatteryDefenderCtrlStopSOC = "vendor.battery.defender.ctrl.recharge_soc_stop";
+const char *kPropBatteryDefenderCtrlTriggerSOC = "vendor.battery.defender.ctrl.trigger_soc";
static void enableDefender(void) {
ON_CALL(*mock, GetIntProperty(kPropChargeLevelVendorStart, _, _, _)).WillByDefault(Return(0));
@@ -182,6 +183,9 @@ static void defaultThresholds(void) {
.WillByDefault(Return(70));
ON_CALL(*mock, GetIntProperty(kPropBatteryDefenderCtrlStopSOC, _, _, _))
.WillByDefault(Return(80));
+
+ ON_CALL(*mock, GetIntProperty(kPropBatteryDefenderCtrlTriggerSOC, _, _, _))
+ .WillByDefault(Return(100));
}
static void capacityReached(void) {
@@ -262,7 +266,7 @@ TEST_F(BatteryDefenderTest, InitConnectedCapacityReached) {
battDefender.update(&props);
testvar_systemTimeSecs += MIN_TIME_BETWEEN_FILE_UPDATES;
- time_expected = DEFAULT_TIME_TO_ACTIVATE_SECONDS - 1 + MIN_TIME_BETWEEN_FILE_UPDATES;
+ time_expected += MIN_TIME_BETWEEN_FILE_UPDATES;
EXPECT_CALL(*mock, WriteStringToFile(std::to_string(time_expected),
kPathPersistChargerPresentTime, _));
EXPECT_CALL(*mock, SetProperty(kPropBatteryDefenderState, "ACTIVE"));
@@ -287,6 +291,11 @@ TEST_F(BatteryDefenderTest, InitConnected) {
testvar_systemTimeSecs += DEFAULT_TIME_TO_ACTIVATE_SECONDS + 1;
EXPECT_CALL(*mock, SetProperty(kPropBatteryDefenderState, "CONNECTED"));
battDefender.update(&props);
+
+ // Would be active if mHasReachedHighCapacityLevel was true
+ testvar_systemTimeSecs += DEFAULT_TIME_TO_ACTIVATE_SECONDS + 1;
+ EXPECT_CALL(*mock, SetProperty(kPropBatteryDefenderState, "CONNECTED"));
+ battDefender.update(&props);
}
TEST_F(BatteryDefenderTest, TriggerTime) {