Skip to content

Commit

Permalink
Merge "Add new fastbootd battery-soc variable" into main
Browse files Browse the repository at this point in the history
  • Loading branch information
Harry Pan authored and Gerrit Code Review committed Oct 11, 2023
2 parents dd3d34f + 7fa8dd6 commit 0694987
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions fastboot/constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
#define FB_VAR_VARIANT "variant"
#define FB_VAR_OFF_MODE_CHARGE_STATE "off-mode-charge"
#define FB_VAR_BATTERY_VOLTAGE "battery-voltage"
#define FB_VAR_BATTERY_SOC "battery-soc"
#define FB_VAR_BATTERY_SOC_OK "battery-soc-ok"
#define FB_VAR_SUPER_PARTITION_NAME "super-partition-name"
#define FB_VAR_SNAPSHOT_UPDATE_STATUS "snapshot-update-status"
Expand Down
1 change: 1 addition & 0 deletions fastboot/device/commands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ const std::unordered_map<std::string, VariableHandlers> kVariableMap = {
{FB_VAR_IS_FORCE_DEBUGGABLE, {GetIsForceDebuggable, nullptr}},
{FB_VAR_OFF_MODE_CHARGE_STATE, {GetOffModeChargeState, nullptr}},
{FB_VAR_BATTERY_VOLTAGE, {GetBatteryVoltage, nullptr}},
{FB_VAR_BATTERY_SOC, {GetBatterySoC, nullptr}},
{FB_VAR_BATTERY_SOC_OK, {GetBatterySoCOk, nullptr}},
{FB_VAR_HW_REVISION, {GetHardwareRevision, nullptr}},
{FB_VAR_SUPER_PARTITION_NAME, {GetSuperPartitionName, nullptr}},
Expand Down
26 changes: 26 additions & 0 deletions fastboot/device/variables.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,21 @@ bool GetBatteryVoltageHelper(FastbootDevice* device, int32_t* battery_voltage) {
return true;
}

bool GetBatterySoCHelper(FastbootDevice* device, int32_t* battery_soc) {
using aidl::android::hardware::health::HealthInfo;

auto health_hal = device->health_hal();
if (!health_hal) {
return false;
}

HealthInfo health_info;
auto res = health_hal->getHealthInfo(&health_info);
if (!res.isOk()) return false;
*battery_soc = health_info.batteryLevel;
return true;
}

bool GetBatterySoCOk(FastbootDevice* device, const std::vector<std::string>& /* args */,
std::string* message) {
int32_t battery_voltage = 0;
Expand Down Expand Up @@ -185,6 +200,17 @@ bool GetBatteryVoltage(FastbootDevice* device, const std::vector<std::string>& /
return false;
}

bool GetBatterySoC(FastbootDevice* device, const std::vector<std::string>& /* args */,
std::string* message) {
int32_t battery_soc = 0;
if (GetBatterySoCHelper(device, &battery_soc)) {
*message = std::to_string(battery_soc);
return true;
}
*message = "Unable to get battery soc";
return false;
}

bool GetCurrentSlot(FastbootDevice* device, const std::vector<std::string>& /* args */,
std::string* message) {
std::string suffix = device->GetCurrentSlot();
Expand Down
2 changes: 2 additions & 0 deletions fastboot/device/variables.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ bool GetOffModeChargeState(FastbootDevice* device, const std::vector<std::string
std::string* message);
bool GetBatteryVoltage(FastbootDevice* device, const std::vector<std::string>& args,
std::string* message);
bool GetBatterySoC(FastbootDevice* device, const std::vector<std::string>& args,
std::string* message);
bool GetBatterySoCOk(FastbootDevice* device, const std::vector<std::string>& args,
std::string* message);
bool GetSuperPartitionName(FastbootDevice* device, const std::vector<std::string>& args,
Expand Down

0 comments on commit 0694987

Please sign in to comment.