diff options
author | Stephane Lee <stayfan@google.com> | 2020-12-16 20:01:32 -0800 |
---|---|---|
committer | Stephane Lee <stayfan@google.com> | 2020-12-18 03:22:48 +0000 |
commit | 703d7ff76ffa0f26bb00deaf9dd290fc65bbe9f9 (patch) | |
tree | a316927e3fd2a3fd3a9ddf758ff19f4af21f2d79 /health | |
parent | 3bf6cfbf722f19e80d3585caad10cd9ec29262b4 (diff) | |
download | pixel-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.cpp | 9 | ||||
-rw-r--r-- | health/include/pixelhealth/BatteryDefender.h | 2 | ||||
-rw-r--r-- | health/test/TestBatteryDefender.cpp | 11 |
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) { |