| /* |
| * Copyright (C) 2017 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@2.0; |
| |
| import @1.0::BatteryStatus; |
| |
| import IHealthInfoCallback; |
| |
| /** |
| * IHealth manages health info and posts events on registered callbacks. |
| */ |
| interface IHealth { |
| |
| /** |
| * Register a callback for any health info events. |
| * |
| * Registering a new callback must not unregister the old one; the old |
| * callback remains registered until one of the following happens: |
| * - A client explicitly calls {@link unregisterCallback} to unregister it. |
| * - The client process that hosts the callback dies. |
| * |
| * @param callback the callback to register. |
| * @return result SUCCESS if successful, |
| * UNKNOWN for other errors. |
| */ |
| registerCallback(IHealthInfoCallback callback) generates (Result result); |
| |
| /** |
| * Explicitly unregister a callback that is previously registered through |
| * {@link registerCallback}. |
| * |
| * @param callback the callback to unregister |
| * @return result SUCCESS if successful, |
| * NOT_FOUND if callback is not registered previously, |
| * UNKNOWN for other errors. |
| */ |
| unregisterCallback(IHealthInfoCallback callback) generates (Result result); |
| |
| /** |
| * Schedule update. |
| * |
| * When update() is called, the service must notify all registered callbacks |
| * with the most recent health info. |
| * |
| * @return result SUCCESS if successful, |
| * CALLBACK_DIED if any registered callback is dead, |
| * UNKNOWN for other errors. |
| */ |
| update() generates (Result result); |
| |
| /** |
| * Get battery capacity in microampere-hours(µAh). |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported |
| * (e.g. the file that stores this property does not exist), |
| * UNKNOWN for other errors. |
| * @return value battery capacity, or 0 if not successful. |
| */ |
| getChargeCounter() generates (Result result, int32_t value); |
| |
| /** |
| * Get instantaneous battery current in microamperes(µA). |
| * |
| * Positive values indicate net current entering the battery from a charge |
| * source, negative values indicate net current discharging from the |
| * battery. |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported |
| * (e.g. the file that stores this property does not exist), |
| * UNKNOWN for other errors. |
| * @return value instantaneous battery current, or 0 if not |
| * successful. |
| */ |
| getCurrentNow() generates (Result result, int32_t value); |
| |
| /** |
| * Get average battery current in microamperes(µA). |
| * |
| * Positive values indicate net current entering the battery from a charge |
| * source, negative values indicate net current discharging from the |
| * battery. The time period over which the average is computed may depend on |
| * the fuel gauge hardware and its configuration. |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported |
| * (e.g. the file that stores this property does not exist), |
| * UNKNOWN for other errors. |
| * @return value average battery current, or 0 if not successful. |
| */ |
| getCurrentAverage() generates (Result result, int32_t value); |
| |
| /** |
| * Get remaining battery capacity percentage of total capacity |
| * (with no fractional part). |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported |
| * (e.g. the file that stores this property does not exist), |
| * UNKNOWN for other errors. |
| * @return value remaining battery capacity, or 0 if not successful. |
| */ |
| getCapacity() generates (Result result, int32_t value); |
| |
| /** |
| * Get battery remaining energy in nanowatt-hours. |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported, |
| * UNKNOWN for other errors. |
| * @return value remaining energy, or 0 if not successful. |
| */ |
| getEnergyCounter() generates (Result result, int64_t value); |
| |
| /** |
| * Get battery charge status. |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported |
| * (e.g. the file that stores this property does not exist), |
| * UNKNOWN other errors. |
| * @return value charge status, or UNKNOWN if not successful. |
| */ |
| getChargeStatus() generates (Result result, BatteryStatus value); |
| |
| /** |
| * Get storage info. |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported, |
| * UNKNOWN other errors. |
| * @return value vector of StorageInfo structs, to be ignored if result is not |
| * SUCCESS. |
| */ |
| getStorageInfo() generates (Result result, vec<StorageInfo> value); |
| |
| /** |
| * Gets disk statistics (number of reads/writes processed, number of I/O |
| * operations in flight etc). |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this property is not supported, |
| * UNKNOWN other errors. |
| * @return value vector of disk statistics, to be ignored if result is not SUCCESS. |
| * The mapping is index 0->sda, 1->sdb and so on. |
| */ |
| getDiskStats() generates (Result result, vec<DiskStats> value); |
| |
| /** |
| * Get Health Information. |
| * |
| * @return result SUCCESS if successful, |
| * NOT_SUPPORTED if this API is not supported, |
| * UNKNOWN for other errors. |
| * @return value Health information, to be ignored if result is not |
| * SUCCESS. |
| */ |
| getHealthInfo() generates (Result result, @2.0::HealthInfo value); |
| }; |