1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport @1.0::BatteryStatus; 20*4d7e907cSAndroid Build Coastguard Worker 21*4d7e907cSAndroid Build Coastguard Workerimport IHealthInfoCallback; 22*4d7e907cSAndroid Build Coastguard Worker 23*4d7e907cSAndroid Build Coastguard Worker/** 24*4d7e907cSAndroid Build Coastguard Worker * IHealth manages health info and posts events on registered callbacks. 25*4d7e907cSAndroid Build Coastguard Worker */ 26*4d7e907cSAndroid Build Coastguard Workerinterface IHealth { 27*4d7e907cSAndroid Build Coastguard Worker 28*4d7e907cSAndroid Build Coastguard Worker /** 29*4d7e907cSAndroid Build Coastguard Worker * Register a callback for any health info events. 30*4d7e907cSAndroid Build Coastguard Worker * 31*4d7e907cSAndroid Build Coastguard Worker * Registering a new callback must not unregister the old one; the old 32*4d7e907cSAndroid Build Coastguard Worker * callback remains registered until one of the following happens: 33*4d7e907cSAndroid Build Coastguard Worker * - A client explicitly calls {@link unregisterCallback} to unregister it. 34*4d7e907cSAndroid Build Coastguard Worker * - The client process that hosts the callback dies. 35*4d7e907cSAndroid Build Coastguard Worker * 36*4d7e907cSAndroid Build Coastguard Worker * @param callback the callback to register. 37*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 38*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 39*4d7e907cSAndroid Build Coastguard Worker */ 40*4d7e907cSAndroid Build Coastguard Worker registerCallback(IHealthInfoCallback callback) generates (Result result); 41*4d7e907cSAndroid Build Coastguard Worker 42*4d7e907cSAndroid Build Coastguard Worker /** 43*4d7e907cSAndroid Build Coastguard Worker * Explicitly unregister a callback that is previously registered through 44*4d7e907cSAndroid Build Coastguard Worker * {@link registerCallback}. 45*4d7e907cSAndroid Build Coastguard Worker * 46*4d7e907cSAndroid Build Coastguard Worker * @param callback the callback to unregister 47*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 48*4d7e907cSAndroid Build Coastguard Worker * NOT_FOUND if callback is not registered previously, 49*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 50*4d7e907cSAndroid Build Coastguard Worker */ 51*4d7e907cSAndroid Build Coastguard Worker unregisterCallback(IHealthInfoCallback callback) generates (Result result); 52*4d7e907cSAndroid Build Coastguard Worker 53*4d7e907cSAndroid Build Coastguard Worker /** 54*4d7e907cSAndroid Build Coastguard Worker * Schedule update. 55*4d7e907cSAndroid Build Coastguard Worker * 56*4d7e907cSAndroid Build Coastguard Worker * When update() is called, the service must notify all registered callbacks 57*4d7e907cSAndroid Build Coastguard Worker * with the most recent health info. 58*4d7e907cSAndroid Build Coastguard Worker * 59*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 60*4d7e907cSAndroid Build Coastguard Worker * CALLBACK_DIED if any registered callback is dead, 61*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 62*4d7e907cSAndroid Build Coastguard Worker */ 63*4d7e907cSAndroid Build Coastguard Worker update() generates (Result result); 64*4d7e907cSAndroid Build Coastguard Worker 65*4d7e907cSAndroid Build Coastguard Worker /** 66*4d7e907cSAndroid Build Coastguard Worker * Get battery capacity in microampere-hours(µAh). 67*4d7e907cSAndroid Build Coastguard Worker * 68*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 69*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported 70*4d7e907cSAndroid Build Coastguard Worker * (e.g. the file that stores this property does not exist), 71*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 72*4d7e907cSAndroid Build Coastguard Worker * @return value battery capacity, or 0 if not successful. 73*4d7e907cSAndroid Build Coastguard Worker */ 74*4d7e907cSAndroid Build Coastguard Worker getChargeCounter() generates (Result result, int32_t value); 75*4d7e907cSAndroid Build Coastguard Worker 76*4d7e907cSAndroid Build Coastguard Worker /** 77*4d7e907cSAndroid Build Coastguard Worker * Get instantaneous battery current in microamperes(µA). 78*4d7e907cSAndroid Build Coastguard Worker * 79*4d7e907cSAndroid Build Coastguard Worker * Positive values indicate net current entering the battery from a charge 80*4d7e907cSAndroid Build Coastguard Worker * source, negative values indicate net current discharging from the 81*4d7e907cSAndroid Build Coastguard Worker * battery. 82*4d7e907cSAndroid Build Coastguard Worker * 83*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 84*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported 85*4d7e907cSAndroid Build Coastguard Worker * (e.g. the file that stores this property does not exist), 86*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 87*4d7e907cSAndroid Build Coastguard Worker * @return value instantaneous battery current, or 0 if not 88*4d7e907cSAndroid Build Coastguard Worker * successful. 89*4d7e907cSAndroid Build Coastguard Worker */ 90*4d7e907cSAndroid Build Coastguard Worker getCurrentNow() generates (Result result, int32_t value); 91*4d7e907cSAndroid Build Coastguard Worker 92*4d7e907cSAndroid Build Coastguard Worker /** 93*4d7e907cSAndroid Build Coastguard Worker * Get average battery current in microamperes(µA). 94*4d7e907cSAndroid Build Coastguard Worker * 95*4d7e907cSAndroid Build Coastguard Worker * Positive values indicate net current entering the battery from a charge 96*4d7e907cSAndroid Build Coastguard Worker * source, negative values indicate net current discharging from the 97*4d7e907cSAndroid Build Coastguard Worker * battery. The time period over which the average is computed may depend on 98*4d7e907cSAndroid Build Coastguard Worker * the fuel gauge hardware and its configuration. 99*4d7e907cSAndroid Build Coastguard Worker * 100*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 101*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported 102*4d7e907cSAndroid Build Coastguard Worker * (e.g. the file that stores this property does not exist), 103*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 104*4d7e907cSAndroid Build Coastguard Worker * @return value average battery current, or 0 if not successful. 105*4d7e907cSAndroid Build Coastguard Worker */ 106*4d7e907cSAndroid Build Coastguard Worker getCurrentAverage() generates (Result result, int32_t value); 107*4d7e907cSAndroid Build Coastguard Worker 108*4d7e907cSAndroid Build Coastguard Worker /** 109*4d7e907cSAndroid Build Coastguard Worker * Get remaining battery capacity percentage of total capacity 110*4d7e907cSAndroid Build Coastguard Worker * (with no fractional part). 111*4d7e907cSAndroid Build Coastguard Worker * 112*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 113*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported 114*4d7e907cSAndroid Build Coastguard Worker * (e.g. the file that stores this property does not exist), 115*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 116*4d7e907cSAndroid Build Coastguard Worker * @return value remaining battery capacity, or 0 if not successful. 117*4d7e907cSAndroid Build Coastguard Worker */ 118*4d7e907cSAndroid Build Coastguard Worker getCapacity() generates (Result result, int32_t value); 119*4d7e907cSAndroid Build Coastguard Worker 120*4d7e907cSAndroid Build Coastguard Worker /** 121*4d7e907cSAndroid Build Coastguard Worker * Get battery remaining energy in nanowatt-hours. 122*4d7e907cSAndroid Build Coastguard Worker * 123*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 124*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported, 125*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 126*4d7e907cSAndroid Build Coastguard Worker * @return value remaining energy, or 0 if not successful. 127*4d7e907cSAndroid Build Coastguard Worker */ 128*4d7e907cSAndroid Build Coastguard Worker getEnergyCounter() generates (Result result, int64_t value); 129*4d7e907cSAndroid Build Coastguard Worker 130*4d7e907cSAndroid Build Coastguard Worker /** 131*4d7e907cSAndroid Build Coastguard Worker * Get battery charge status. 132*4d7e907cSAndroid Build Coastguard Worker * 133*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 134*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported 135*4d7e907cSAndroid Build Coastguard Worker * (e.g. the file that stores this property does not exist), 136*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN other errors. 137*4d7e907cSAndroid Build Coastguard Worker * @return value charge status, or UNKNOWN if not successful. 138*4d7e907cSAndroid Build Coastguard Worker */ 139*4d7e907cSAndroid Build Coastguard Worker getChargeStatus() generates (Result result, BatteryStatus value); 140*4d7e907cSAndroid Build Coastguard Worker 141*4d7e907cSAndroid Build Coastguard Worker /** 142*4d7e907cSAndroid Build Coastguard Worker * Get storage info. 143*4d7e907cSAndroid Build Coastguard Worker * 144*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 145*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported, 146*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN other errors. 147*4d7e907cSAndroid Build Coastguard Worker * @return value vector of StorageInfo structs, to be ignored if result is not 148*4d7e907cSAndroid Build Coastguard Worker * SUCCESS. 149*4d7e907cSAndroid Build Coastguard Worker */ 150*4d7e907cSAndroid Build Coastguard Worker getStorageInfo() generates (Result result, vec<StorageInfo> value); 151*4d7e907cSAndroid Build Coastguard Worker 152*4d7e907cSAndroid Build Coastguard Worker /** 153*4d7e907cSAndroid Build Coastguard Worker * Gets disk statistics (number of reads/writes processed, number of I/O 154*4d7e907cSAndroid Build Coastguard Worker * operations in flight etc). 155*4d7e907cSAndroid Build Coastguard Worker * 156*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 157*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this property is not supported, 158*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN other errors. 159*4d7e907cSAndroid Build Coastguard Worker * @return value vector of disk statistics, to be ignored if result is not SUCCESS. 160*4d7e907cSAndroid Build Coastguard Worker * The mapping is index 0->sda, 1->sdb and so on. 161*4d7e907cSAndroid Build Coastguard Worker */ 162*4d7e907cSAndroid Build Coastguard Worker getDiskStats() generates (Result result, vec<DiskStats> value); 163*4d7e907cSAndroid Build Coastguard Worker 164*4d7e907cSAndroid Build Coastguard Worker /** 165*4d7e907cSAndroid Build Coastguard Worker * Get Health Information. 166*4d7e907cSAndroid Build Coastguard Worker * 167*4d7e907cSAndroid Build Coastguard Worker * @return result SUCCESS if successful, 168*4d7e907cSAndroid Build Coastguard Worker * NOT_SUPPORTED if this API is not supported, 169*4d7e907cSAndroid Build Coastguard Worker * UNKNOWN for other errors. 170*4d7e907cSAndroid Build Coastguard Worker * @return value Health information, to be ignored if result is not 171*4d7e907cSAndroid Build Coastguard Worker * SUCCESS. 172*4d7e907cSAndroid Build Coastguard Worker */ 173*4d7e907cSAndroid Build Coastguard Worker getHealthInfo() generates (Result result, @2.0::HealthInfo value); 174*4d7e907cSAndroid Build Coastguard Worker}; 175