1c5e268c6Sopenharmony_ci/*
2c5e268c6Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3c5e268c6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c5e268c6Sopenharmony_ci * you may not use this file except in compliance with the License.
5c5e268c6Sopenharmony_ci * You may obtain a copy of the License at
6c5e268c6Sopenharmony_ci *
7c5e268c6Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8c5e268c6Sopenharmony_ci *
9c5e268c6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c5e268c6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c5e268c6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c5e268c6Sopenharmony_ci * See the License for the specific language governing permissions and
13c5e268c6Sopenharmony_ci * limitations under the License.
14c5e268c6Sopenharmony_ci */
15c5e268c6Sopenharmony_ci
16c5e268c6Sopenharmony_ci/**
17c5e268c6Sopenharmony_ci * @addtogroup battery
18c5e268c6Sopenharmony_ci * @{
19c5e268c6Sopenharmony_ci *
20c5e268c6Sopenharmony_ci * @brief Provides APIs for obtaining and subscribing to battery information.
21c5e268c6Sopenharmony_ci * 
22c5e268c6Sopenharmony_ci * After obtaining an object or proxy of this module, the battery service can invoke related APIs to obtain and
23c5e268c6Sopenharmony_ci * subscribe to battery information.
24c5e268c6Sopenharmony_ci *
25c5e268c6Sopenharmony_ci * @since 3.1
26c5e268c6Sopenharmony_ci * @version 1.0
27c5e268c6Sopenharmony_ci */
28c5e268c6Sopenharmony_ci
29c5e268c6Sopenharmony_ci/**
30c5e268c6Sopenharmony_ci * @file IBatteryInterface.idl
31c5e268c6Sopenharmony_ci *
32c5e268c6Sopenharmony_ci * @brief Provides APIs for obtaining and subscribing to battery information.
33c5e268c6Sopenharmony_ci *
34c5e268c6Sopenharmony_ci * After obtaining an object or proxy of this module, the battery service can invoke related APIs to obtain and
35c5e268c6Sopenharmony_ci * subscribe to battery information.
36c5e268c6Sopenharmony_ci *
37c5e268c6Sopenharmony_ci * @since 3.1
38c5e268c6Sopenharmony_ci * @version 1.0
39c5e268c6Sopenharmony_ci */
40c5e268c6Sopenharmony_cipackage ohos.hdi.battery.v1_0;
41c5e268c6Sopenharmony_ci
42c5e268c6Sopenharmony_ciimport ohos.hdi.battery.v1_0.Types;
43c5e268c6Sopenharmony_ciimport ohos.hdi.battery.v1_0.IBatteryCallback;
44c5e268c6Sopenharmony_ci
45c5e268c6Sopenharmony_ci/**
46c5e268c6Sopenharmony_ci * @brief Represents APIs for obtaining and subscribing to battery information.
47c5e268c6Sopenharmony_ci *
48c5e268c6Sopenharmony_ci * 
49c5e268c6Sopenharmony_ci *
50c5e268c6Sopenharmony_ci * @since 3.1
51c5e268c6Sopenharmony_ci */
52c5e268c6Sopenharmony_ciinterface IBatteryInterface {
53c5e268c6Sopenharmony_ci    /**
54c5e268c6Sopenharmony_ci     * @brief Registers the callback of battery information.
55c5e268c6Sopenharmony_ci     *
56c5e268c6Sopenharmony_ci     * @param event Callback to register.
57c5e268c6Sopenharmony_ci     *
58c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
59c5e268c6Sopenharmony_ci     *
60c5e268c6Sopenharmony_ci     * @since 3.1
61c5e268c6Sopenharmony_ci     */
62c5e268c6Sopenharmony_ci    Register([in] IBatteryCallback event);
63c5e268c6Sopenharmony_ci
64c5e268c6Sopenharmony_ci    /**
65c5e268c6Sopenharmony_ci     * @brief Unregisters the callback of battery information.
66c5e268c6Sopenharmony_ci     *
67c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
68c5e268c6Sopenharmony_ci     *
69c5e268c6Sopenharmony_ci     * @since 3.1
70c5e268c6Sopenharmony_ci     */
71c5e268c6Sopenharmony_ci    UnRegister();
72c5e268c6Sopenharmony_ci
73c5e268c6Sopenharmony_ci    /**
74c5e268c6Sopenharmony_ci     * @brief Sets the path of the battery information node.
75c5e268c6Sopenharmony_ci     *
76c5e268c6Sopenharmony_ci     * @param path Path of the battery information node.
77c5e268c6Sopenharmony_ci     *
78c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
79c5e268c6Sopenharmony_ci     *
80c5e268c6Sopenharmony_ci     * @since 3.1
81c5e268c6Sopenharmony_ci     */
82c5e268c6Sopenharmony_ci    ChangePath([in] String path);
83c5e268c6Sopenharmony_ci
84c5e268c6Sopenharmony_ci    /**
85c5e268c6Sopenharmony_ci     * @brief Obtains the battery percentage.
86c5e268c6Sopenharmony_ci     *
87c5e268c6Sopenharmony_ci     * @param capacity Battery percentage.
88c5e268c6Sopenharmony_ci     *
89c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
90c5e268c6Sopenharmony_ci     *
91c5e268c6Sopenharmony_ci     * @since 3.1
92c5e268c6Sopenharmony_ci     */
93c5e268c6Sopenharmony_ci    GetCapacity([out] int capacity);
94c5e268c6Sopenharmony_ci
95c5e268c6Sopenharmony_ci    /**
96c5e268c6Sopenharmony_ci     * @brief Obtains the battery voltage.
97c5e268c6Sopenharmony_ci     *
98c5e268c6Sopenharmony_ci     * @param voltage Battery voltage, in microvolts.
99c5e268c6Sopenharmony_ci     *
100c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
101c5e268c6Sopenharmony_ci     *
102c5e268c6Sopenharmony_ci     * @since 3.1
103c5e268c6Sopenharmony_ci     */
104c5e268c6Sopenharmony_ci    GetVoltage([out] int voltage);
105c5e268c6Sopenharmony_ci
106c5e268c6Sopenharmony_ci    /**
107c5e268c6Sopenharmony_ci     * @brief Obtains the battery temperature during charging. The unit is 0.1°C.
108c5e268c6Sopenharmony_ci     *
109c5e268c6Sopenharmony_ci     * @param temperature Battery temperature.
110c5e268c6Sopenharmony_ci     *
111c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
112c5e268c6Sopenharmony_ci     *
113c5e268c6Sopenharmony_ci     * @since 3.1
114c5e268c6Sopenharmony_ci     */
115c5e268c6Sopenharmony_ci    GetTemperature([out] int temperature);
116c5e268c6Sopenharmony_ci
117c5e268c6Sopenharmony_ci    /**
118c5e268c6Sopenharmony_ci     * @brief Obtains the battery health status.
119c5e268c6Sopenharmony_ci     *
120c5e268c6Sopenharmony_ci     * @param healthState Battery health status.
121c5e268c6Sopenharmony_ci     *
122c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
123c5e268c6Sopenharmony_ci     * @see BatteryHealthState
124c5e268c6Sopenharmony_ci     *
125c5e268c6Sopenharmony_ci     * @since 3.1
126c5e268c6Sopenharmony_ci     */
127c5e268c6Sopenharmony_ci    GetHealthState([out] enum BatteryHealthState healthState);
128c5e268c6Sopenharmony_ci
129c5e268c6Sopenharmony_ci    /**
130c5e268c6Sopenharmony_ci     * @brief Obtains the type of the charging device.
131c5e268c6Sopenharmony_ci     *
132c5e268c6Sopenharmony_ci     * @param pluggedType Type of the charging device.
133c5e268c6Sopenharmony_ci     *
134c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
135c5e268c6Sopenharmony_ci     * @see BatteryPluggedType
136c5e268c6Sopenharmony_ci     *
137c5e268c6Sopenharmony_ci     * @since 3.1
138c5e268c6Sopenharmony_ci     */
139c5e268c6Sopenharmony_ci    GetPluggedType([out] enum BatteryPluggedType pluggedType);
140c5e268c6Sopenharmony_ci
141c5e268c6Sopenharmony_ci    /**
142c5e268c6Sopenharmony_ci     * @brief Obtains the charging status.
143c5e268c6Sopenharmony_ci     *
144c5e268c6Sopenharmony_ci     * @param chargeState Battery charging status.
145c5e268c6Sopenharmony_ci     *
146c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
147c5e268c6Sopenharmony_ci     * @see BatteryChargeState
148c5e268c6Sopenharmony_ci     *
149c5e268c6Sopenharmony_ci     * @since 3.1
150c5e268c6Sopenharmony_ci     */
151c5e268c6Sopenharmony_ci    GetChargeState([out] enum BatteryChargeState chargeState);
152c5e268c6Sopenharmony_ci
153c5e268c6Sopenharmony_ci    /**
154c5e268c6Sopenharmony_ci     * @brief Checks whether the battery is supported or present.
155c5e268c6Sopenharmony_ci     *
156c5e268c6Sopenharmony_ci     * @param present Whether battery is supported or present. The value **true** indicates that the battery is
157c5e268c6Sopenharmony_ci     * supported or present, and the value **false** indicates the opposite.
158c5e268c6Sopenharmony_ci     *
159c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
160c5e268c6Sopenharmony_ci     *
161c5e268c6Sopenharmony_ci     * @since 3.1
162c5e268c6Sopenharmony_ci     */
163c5e268c6Sopenharmony_ci    GetPresent([out] boolean present);
164c5e268c6Sopenharmony_ci
165c5e268c6Sopenharmony_ci    /**
166c5e268c6Sopenharmony_ci     * @brief Obtains the battery technology of the current device.
167c5e268c6Sopenharmony_ci     *
168c5e268c6Sopenharmony_ci     * @param technology Battery technology of the current device.
169c5e268c6Sopenharmony_ci     *
170c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
171c5e268c6Sopenharmony_ci     *
172c5e268c6Sopenharmony_ci     * @since 3.1
173c5e268c6Sopenharmony_ci     */
174c5e268c6Sopenharmony_ci    GetTechnology([out] String technology);
175c5e268c6Sopenharmony_ci
176c5e268c6Sopenharmony_ci    /**
177c5e268c6Sopenharmony_ci     * @brief Obtains the total battery capacity.
178c5e268c6Sopenharmony_ci     *
179c5e268c6Sopenharmony_ci     * @param totalEnergy Total battery capacity, in mA.
180c5e268c6Sopenharmony_ci     *
181c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
182c5e268c6Sopenharmony_ci     *
183c5e268c6Sopenharmony_ci     * @since 3.1
184c5e268c6Sopenharmony_ci     */
185c5e268c6Sopenharmony_ci    GetTotalEnergy([out] int totalEnergy);
186c5e268c6Sopenharmony_ci
187c5e268c6Sopenharmony_ci    /**
188c5e268c6Sopenharmony_ci     * @brief Obtains the average battery current.
189c5e268c6Sopenharmony_ci     *
190c5e268c6Sopenharmony_ci     * @param totalEnergy Average battery current, in mA.
191c5e268c6Sopenharmony_ci     *
192c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
193c5e268c6Sopenharmony_ci     *
194c5e268c6Sopenharmony_ci     * @since 3.1
195c5e268c6Sopenharmony_ci     */
196c5e268c6Sopenharmony_ci    GetCurrentAverage([out] int curAverage);
197c5e268c6Sopenharmony_ci
198c5e268c6Sopenharmony_ci    /**
199c5e268c6Sopenharmony_ci     * @brief Obtains the battery current.
200c5e268c6Sopenharmony_ci     *
201c5e268c6Sopenharmony_ci     * @param curNow Battery current, in mA.
202c5e268c6Sopenharmony_ci     *
203c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
204c5e268c6Sopenharmony_ci     *
205c5e268c6Sopenharmony_ci     * @since 3.1
206c5e268c6Sopenharmony_ci     */
207c5e268c6Sopenharmony_ci    GetCurrentNow([out] int curNow);
208c5e268c6Sopenharmony_ci
209c5e268c6Sopenharmony_ci    /**
210c5e268c6Sopenharmony_ci     * @brief Obtains the remaining battery capacity.
211c5e268c6Sopenharmony_ci     *
212c5e268c6Sopenharmony_ci     * @param remainEnergy Remaining battery capacity, in mA.
213c5e268c6Sopenharmony_ci     *
214c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
215c5e268c6Sopenharmony_ci     *
216c5e268c6Sopenharmony_ci     * @since 3.1
217c5e268c6Sopenharmony_ci     */
218c5e268c6Sopenharmony_ci    GetRemainEnergy([out] int remainEnergy);
219c5e268c6Sopenharmony_ci
220c5e268c6Sopenharmony_ci    /**
221c5e268c6Sopenharmony_ci     * @brief Obtains all battery information.
222c5e268c6Sopenharmony_ci     *
223c5e268c6Sopenharmony_ci     * @param info Battery information.
224c5e268c6Sopenharmony_ci     *
225c5e268c6Sopenharmony_ci     * @return Returns <b>HDF_SUCCESS</b> if the operation is successful.
226c5e268c6Sopenharmony_ci     * @see BatteryInfo
227c5e268c6Sopenharmony_ci     *
228c5e268c6Sopenharmony_ci     * @since 3.1
229c5e268c6Sopenharmony_ci     */
230c5e268c6Sopenharmony_ci    GetBatteryInfo([out] struct BatteryInfo info);
231c5e268c6Sopenharmony_ci}
232c5e268c6Sopenharmony_ci/** @} */
233