1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef BATTERY_INFO_H 17 #define BATTERY_INFO_H 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif // __cplusplus 22 23 typedef enum { 24 /** 25 * Battery is discharge. 26 */ 27 CHARGE_STATE_NONE, 28 /** 29 * Battery is charging. 30 */ 31 CHARGE_STATE_ENABLE, 32 /** 33 * Battery is not charging. 34 */ 35 CHARGE_STATE_DISABLE, 36 /** 37 * Battery charge full. 38 */ 39 CHARGE_STATE_FULL, 40 /** 41 * The bottom of the enum. 42 */ 43 CHARGE_STATE_BUTT 44 } BatteryChargeState; 45 46 typedef enum { 47 /** 48 * Health Status: unknown. 49 */ 50 HEALTH_STATE_UNKNOWN, 51 /** 52 * Health Status: good. 53 */ 54 HEALTH_STATE_GOOD, 55 /** 56 * Health Status: over heat. 57 */ 58 HEALTH_STATE_OVERHEAT, 59 /** 60 * Health Status: over voltage. 61 */ 62 HEALTH_STATE_OVERVOLTAGE, 63 /** 64 * Health Status: COLD. 65 */ 66 HEALTH_STATE_COLD, 67 /** 68 * Health Status: Dead. 69 */ 70 HEALTH_STATE_DEAD, 71 /** 72 * The bottom of the enum. 73 */ 74 HEALTH_STATE_BUTT 75 } BatteryHealthState; 76 77 typedef enum { 78 /** 79 * Power source is unplugged. 80 */ 81 PLUGGED_TYPE_NONE, 82 /** 83 * Power source is an AC charger. 84 */ 85 PLUGGED_TYPE_AC, 86 /** 87 * Power source is a USB DC charger. 88 */ 89 PLUGGED_TYPE_USB, 90 /** 91 * Power source is wireless charger. 92 */ 93 PLUGGED_TYPE_WIRELESS, 94 /** 95 * The bottom of the enum. 96 */ 97 PLUGGED_TYPE_BUTT 98 } BatteryPluggedType; 99 100 int32_t GetBatSoc(void); 101 BatteryChargeState GetChargingStatus(void); 102 BatteryHealthState GetHealthStatus(void); 103 BatteryPluggedType GetPluggedType(void); 104 int32_t GetBatVoltage(void); 105 char* GetBatTechnology(void); 106 int32_t GetBatTemperature(void); 107 108 #ifdef __cplusplus 109 } 110 #endif // __cplusplus 111 #endif // BATTERY_INFO_H