| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.health@1.0; |
| |
| /** |
| * Possible return values for optional HAL method(s) like |
| * IHealth::energyCounter() |
| */ |
| enum Result : int32_t { |
| SUCCESS, |
| NOT_SUPPORTED, |
| UNKNOWN, |
| }; |
| |
| /** |
| * Possible values for Battery Status. |
| * Note: These are currently in sync with BatteryManager and must not |
| * be extended / altered. |
| */ |
| @export(name="", value_prefix="BATTERY_STATUS_") |
| enum BatteryStatus : int32_t { |
| UNKNOWN = 1, |
| CHARGING = 2, |
| DISCHARGING = 3, |
| /** |
| * Battery is *not* charging - special case when charger is present |
| * but battery isn't charging |
| */ |
| NOT_CHARGING = 4, |
| FULL = 5, |
| }; |
| |
| /** |
| * Possible values for Battery Health. |
| * Note: These are currently in sync with BatteryManager and must not |
| * be extended / altered. |
| */ |
| @export(name="", value_prefix="BATTERY_HEALTH_") |
| enum BatteryHealth : int32_t { |
| UNKNOWN = 1, |
| GOOD = 2, |
| OVERHEAT = 3, |
| DEAD = 4, |
| OVER_VOLTAGE = 5, |
| /** |
| * Battery experienced an unknown/unspecifid failure. |
| */ |
| UNSPECIFIED_FAILURE = 6, |
| COLD = 7, |
| }; |
| |
| struct HealthConfig { |
| |
| /** |
| * periodicChoresIntervalFast is used while the device is not in |
| * suspend, or in suspend and connected to a charger (to watch for battery |
| * overheat due to charging) |
| */ |
| int32_t periodicChoresIntervalFast; |
| |
| /** |
| * periodicChoresIntervalSlow is used when the device is in suspend and |
| * not connected to a charger (to watch for a battery drained to zero |
| * remaining capacity). |
| */ |
| int32_t periodicChoresIntervalSlow; |
| |
| /** |
| * power_supply sysfs attribute file paths. Set these to specific paths |
| * to use for the associated battery parameters. Clients must search |
| * for appropriate power_supply attribute files to use, for any paths |
| * left empty after the HAL is initialized. |
| */ |
| |
| /** |
| * batteryStatusPath - file path to read battery charging status. |
| * (POWER_SUPPLY_PROP_STATUS) |
| */ |
| string batteryStatusPath; |
| |
| |
| /** |
| * batteryHealthPath - file path to read battery health. |
| * (POWER_SUPPLY_PROP_HEALTH) |
| */ |
| string batteryHealthPath; |
| |
| /** |
| * batteryPresentPath - file path to read battery present status. |
| * (POWER_SUPPLY_PROP_PRESENT) |
| */ |
| string batteryPresentPath; |
| |
| |
| /** |
| * batteryCapacityPath - file path to read remaining battery capacity. |
| * (POWER_SUPPLY_PROP_CAPACITY) |
| */ |
| string batteryCapacityPath; |
| |
| /** |
| * batteryVoltagePath - file path to read battery voltage. |
| * (POWER_SUPPLY_PROP_VOLTAGE_NOW) |
| */ |
| string batteryVoltagePath; |
| |
| /** |
| * batteryTemperaturePath - file path to read battery temperature in tenths |
| * of degree celcius. (POWER_SUPPLY_PROP_TEMP) |
| */ |
| string batteryTemperaturePath; |
| |
| /** |
| * batteryTechnologyPath - file path to read battery technology. |
| * (POWER_SUPPLY_PROP_TECHNOLOGY) |
| */ |
| string batteryTechnologyPath; |
| |
| /** |
| * batteryCurrentNowPath - file path to read battery instantaneous current. |
| * (POWER_SUPPLY_PROP_CURRENT_NOW) |
| */ |
| string batteryCurrentNowPath; |
| |
| /** |
| * batteryCurrentAvgPath - file path to read battery average current. |
| * (POWER_SUPPLY_PROP_CURRENT_AVG) |
| */ |
| string batteryCurrentAvgPath; |
| |
| /** |
| * batteryChargeCounterPath - file path to read battery accumulated charge. |
| * (POWER_SUPPLY_PROP_CHARGE_COUNTER) |
| */ |
| string batteryChargeCounterPath; |
| |
| /** |
| * batteryFullChargerPath - file path to read battery charge value when it |
| * is considered to be full. (POWER_SUPPLY_PROP_CHARGE_FULL) |
| */ |
| string batteryFullChargePath; |
| |
| /** |
| * batteryCycleCountPath - file path to read battery charge cycle count. |
| * (POWER_SUPPLY_PROP_CYCLE_COUNT) |
| */ |
| string batteryCycleCountPath; |
| }; |
| |
| /** |
| * The parameter to healthd mainloop update calls |
| */ |
| struct HealthInfo { |
| /** AC charger state - 'true' if online */ |
| bool chargerAcOnline; |
| |
| /** USB charger state - 'true' if online */ |
| bool chargerUsbOnline; |
| |
| /** Wireless charger state - 'true' if online */ |
| bool chargerWirelessOnline; |
| |
| /** Maximum charging current supported by charger in uA */ |
| int32_t maxChargingCurrent; |
| |
| /** Maximum charging voltage supported by charger in uV */ |
| int32_t maxChargingVoltage; |
| |
| BatteryStatus batteryStatus; |
| |
| BatteryHealth batteryHealth; |
| |
| /** 'true' if battery is present */ |
| bool batteryPresent; |
| |
| /** Remaining battery capacity in percent */ |
| int32_t batteryLevel; |
| |
| /** |
| * Instantaneous battery voltage in millivolts (mV). |
| * |
| * Historically, the unit of this field is microvolts (uV), but all |
| * clients and implementations uses millivolts in practice, making it |
| * the de-facto standard. |
| */ |
| int32_t batteryVoltage; |
| |
| /** Instantaneous battery temperature in tenths of degree celcius */ |
| int32_t batteryTemperature; |
| |
| /** Instantaneous battery current in uA */ |
| int32_t batteryCurrent; |
| |
| /** Battery charge cycle count */ |
| int32_t batteryCycleCount; |
| |
| /** Battery charge value when it is considered to be "full" in uA-h */ |
| int32_t batteryFullCharge; |
| |
| /** Instantaneous battery capacity in uA-h */ |
| int32_t batteryChargeCounter; |
| |
| /** Battery technology, e.g. "Li-ion, Li-Poly" etc. */ |
| string batteryTechnology; |
| }; |