blob: 9d2d5d85950c20247825598aa2e3244837c1b08c [file] [log] [blame]
Siddharth Rayb50a6842017-12-14 15:15:28 -08001/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package android.os.connectivity;
17
18import android.os.BatteryStats;
19import android.os.Parcel;
20import android.os.Parcelable;
21
22import java.util.Arrays;
23
24/**
25 * API for Wifi power stats
26 *
27 * @hide
28 */
29public final class WifiBatteryStats implements Parcelable {
30
31 private long mLoggingDurationMs;
32 private long mKernelActiveTimeMs;
33 private long mNumPacketsTx;
34 private long mNumBytesTx;
35 private long mNumPacketsRx;
36 private long mNumBytesRx;
37 private long mSleepTimeMs;
38 private long mScanTimeMs;
39 private long mIdleTimeMs;
40 private long mRxTimeMs;
41 private long mTxTimeMs;
42 private long mEnergyConsumedMaMs;
43 private long mNumAppScanRequest;
44 private long[] mTimeInStateMs;
45 private long[] mTimeInSupplicantStateMs;
46 private long[] mTimeInRxSignalStrengthLevelMs;
Blake Kragtencb308d92019-01-28 10:54:13 -080047 private long mMonitoredRailChargeConsumedMaMs;
Siddharth Rayb50a6842017-12-14 15:15:28 -080048
Jeff Sharkey9e8f83d2019-02-28 12:06:45 -070049 public static final @android.annotation.NonNull Parcelable.Creator<WifiBatteryStats> CREATOR = new
Siddharth Rayb50a6842017-12-14 15:15:28 -080050 Parcelable.Creator<WifiBatteryStats>() {
51 public WifiBatteryStats createFromParcel(Parcel in) {
52 return new WifiBatteryStats(in);
53 }
54
55 public WifiBatteryStats[] newArray(int size) {
56 return new WifiBatteryStats[size];
57 }
58 };
59
60 public WifiBatteryStats() {
61 initialize();
62 }
63
64 public void writeToParcel(Parcel out, int flags) {
65 out.writeLong(mLoggingDurationMs);
66 out.writeLong(mKernelActiveTimeMs);
67 out.writeLong(mNumPacketsTx);
68 out.writeLong(mNumBytesTx);
69 out.writeLong(mNumPacketsRx);
70 out.writeLong(mNumBytesRx);
71 out.writeLong(mSleepTimeMs);
72 out.writeLong(mScanTimeMs);
73 out.writeLong(mIdleTimeMs);
74 out.writeLong(mRxTimeMs);
75 out.writeLong(mTxTimeMs);
76 out.writeLong(mEnergyConsumedMaMs);
77 out.writeLong(mNumAppScanRequest);
78 out.writeLongArray(mTimeInStateMs);
79 out.writeLongArray(mTimeInRxSignalStrengthLevelMs);
80 out.writeLongArray(mTimeInSupplicantStateMs);
Blake Kragtencb308d92019-01-28 10:54:13 -080081 out.writeLong(mMonitoredRailChargeConsumedMaMs);
Siddharth Rayb50a6842017-12-14 15:15:28 -080082 }
83
84 public void readFromParcel(Parcel in) {
85 mLoggingDurationMs = in.readLong();
86 mKernelActiveTimeMs = in.readLong();
87 mNumPacketsTx = in.readLong();
88 mNumBytesTx = in.readLong();
89 mNumPacketsRx = in.readLong();
90 mNumBytesRx = in.readLong();
91 mSleepTimeMs = in.readLong();
92 mScanTimeMs = in.readLong();
93 mIdleTimeMs = in.readLong();
94 mRxTimeMs = in.readLong();
95 mTxTimeMs = in.readLong();
96 mEnergyConsumedMaMs = in.readLong();
97 mNumAppScanRequest = in.readLong();
98 in.readLongArray(mTimeInStateMs);
99 in.readLongArray(mTimeInRxSignalStrengthLevelMs);
100 in.readLongArray(mTimeInSupplicantStateMs);
Blake Kragtencb308d92019-01-28 10:54:13 -0800101 mMonitoredRailChargeConsumedMaMs = in.readLong();
Siddharth Rayb50a6842017-12-14 15:15:28 -0800102 }
103
104 public long getLoggingDurationMs() {
105 return mLoggingDurationMs;
106 }
107
108 public long getKernelActiveTimeMs() {
109 return mKernelActiveTimeMs;
110 }
111
112 public long getNumPacketsTx() {
113 return mNumPacketsTx;
114 }
115
116 public long getNumBytesTx() {
117 return mNumBytesTx;
118 }
119
120 public long getNumPacketsRx() {
121 return mNumPacketsRx;
122 }
123
124 public long getNumBytesRx() {
125 return mNumBytesRx;
126 }
127
128 public long getSleepTimeMs() {
129 return mSleepTimeMs;
130 }
131
132 public long getScanTimeMs() {
133 return mScanTimeMs;
134 }
135
136 public long getIdleTimeMs() {
137 return mIdleTimeMs;
138 }
139
140 public long getRxTimeMs() {
141 return mRxTimeMs;
142 }
143
144 public long getTxTimeMs() {
145 return mTxTimeMs;
146 }
147
148 public long getEnergyConsumedMaMs() {
149 return mEnergyConsumedMaMs;
150 }
151
152 public long getNumAppScanRequest() {
153 return mNumAppScanRequest;
154 }
155
156 public long[] getTimeInStateMs() {
157 return mTimeInStateMs;
158 }
159
160 public long[] getTimeInRxSignalStrengthLevelMs() {
161 return mTimeInRxSignalStrengthLevelMs;
162 }
163
164 public long[] getTimeInSupplicantStateMs() {
165 return mTimeInSupplicantStateMs;
166 }
167
Blake Kragtencb308d92019-01-28 10:54:13 -0800168 public long getMonitoredRailChargeConsumedMaMs() {
169 return mMonitoredRailChargeConsumedMaMs;
170 }
171
Siddharth Rayb50a6842017-12-14 15:15:28 -0800172 public void setLoggingDurationMs(long t) {
173 mLoggingDurationMs = t;
174 return;
175 }
176
177 public void setKernelActiveTimeMs(long t) {
178 mKernelActiveTimeMs = t;
179 return;
180 }
181
182 public void setNumPacketsTx(long n) {
183 mNumPacketsTx = n;
184 return;
185 }
186
187 public void setNumBytesTx(long b) {
188 mNumBytesTx = b;
189 return;
190 }
191
192 public void setNumPacketsRx(long n) {
193 mNumPacketsRx = n;
194 return;
195 }
196
197 public void setNumBytesRx(long b) {
198 mNumBytesRx = b;
199 return;
200 }
201
202 public void setSleepTimeMs(long t) {
203 mSleepTimeMs = t;
204 return;
205 }
206
207 public void setScanTimeMs(long t) {
208 mScanTimeMs = t;
209 return;
210 }
211
212 public void setIdleTimeMs(long t) {
213 mIdleTimeMs = t;
214 return;
215 }
216
217 public void setRxTimeMs(long t) {
218 mRxTimeMs = t;
219 return;
220 }
221
222 public void setTxTimeMs(long t) {
223 mTxTimeMs = t;
224 return;
225 }
226
227 public void setEnergyConsumedMaMs(long e) {
228 mEnergyConsumedMaMs = e;
229 return;
230 }
231
232 public void setNumAppScanRequest(long n) {
233 mNumAppScanRequest = n;
234 return;
235 }
236
237 public void setTimeInStateMs(long[] t) {
238 mTimeInStateMs = Arrays.copyOfRange(t, 0,
239 Math.min(t.length, BatteryStats.NUM_WIFI_STATES));
240 return;
241 }
242
243 public void setTimeInRxSignalStrengthLevelMs(long[] t) {
244 mTimeInRxSignalStrengthLevelMs = Arrays.copyOfRange(t, 0,
245 Math.min(t.length, BatteryStats.NUM_WIFI_SIGNAL_STRENGTH_BINS));
246 return;
247 }
248
249 public void setTimeInSupplicantStateMs(long[] t) {
250 mTimeInSupplicantStateMs = Arrays.copyOfRange(
251 t, 0, Math.min(t.length, BatteryStats.NUM_WIFI_SUPPL_STATES));
252 return;
253 }
254
Blake Kragtencb308d92019-01-28 10:54:13 -0800255 public void setMonitoredRailChargeConsumedMaMs(long monitoredRailEnergyConsumedMaMs) {
256 mMonitoredRailChargeConsumedMaMs = monitoredRailEnergyConsumedMaMs;
257 return;
258 }
259
Siddharth Rayb50a6842017-12-14 15:15:28 -0800260 public int describeContents() {
261 return 0;
262 }
263
264 private WifiBatteryStats(Parcel in) {
265 initialize();
266 readFromParcel(in);
267 }
268
269 private void initialize() {
270 mLoggingDurationMs = 0;
271 mKernelActiveTimeMs = 0;
272 mNumPacketsTx = 0;
273 mNumBytesTx = 0;
274 mNumPacketsRx = 0;
275 mNumBytesRx = 0;
276 mSleepTimeMs = 0;
277 mScanTimeMs = 0;
278 mIdleTimeMs = 0;
279 mRxTimeMs = 0;
280 mTxTimeMs = 0;
281 mEnergyConsumedMaMs = 0;
282 mNumAppScanRequest = 0;
283 mTimeInStateMs = new long[BatteryStats.NUM_WIFI_STATES];
284 Arrays.fill(mTimeInStateMs, 0);
285 mTimeInRxSignalStrengthLevelMs = new long[BatteryStats.NUM_WIFI_SIGNAL_STRENGTH_BINS];
286 Arrays.fill(mTimeInRxSignalStrengthLevelMs, 0);
287 mTimeInSupplicantStateMs = new long[BatteryStats.NUM_WIFI_SUPPL_STATES];
288 Arrays.fill(mTimeInSupplicantStateMs, 0);
Blake Kragtencb308d92019-01-28 10:54:13 -0800289 mMonitoredRailChargeConsumedMaMs = 0;
Siddharth Rayb50a6842017-12-14 15:15:28 -0800290 return;
291 }
292}