/*
|
* 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;
|
};
|