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 #include "stats_utils.h"
17
18 #include "stats_hilog_wrapper.h"
19
20 namespace OHOS {
21 namespace PowerMgr {
22 const std::string StatsUtils::CURRENT_INVALID = "invalid";
23 const std::string StatsUtils::CURRENT_BLUETOOTH_ON = "bluetooth_on";
24 const std::string StatsUtils::CURRENT_BLUETOOTH_SCAN = "bluetooth_scan";
25 const std::string StatsUtils::CURRENT_BLUETOOTH_RX = "bluetooth_rx";
26 const std::string StatsUtils::CURRENT_BLUETOOTH_TX = "bluetooth_tx";
27 const std::string StatsUtils::CURRENT_WIFI_ON = "wifi_on";
28 const std::string StatsUtils::CURRENT_WIFI_SCAN = "wifi_scan";
29 const std::string StatsUtils::CURRENT_WIFI_RX = "wifi_rx";
30 const std::string StatsUtils::CURRENT_WIFI_TX = "wifi_tx";
31 const std::string StatsUtils::CURRENT_RADIO_ON = "radio_on";
32 const std::string StatsUtils::CURRENT_RADIO_SCAN = "radio_scan";
33 const std::string StatsUtils::CURRENT_RADIO_ACTIVE = "radio_active";
34 const std::string StatsUtils::CURRENT_RADIO_RX = "radio_rx";
35 const std::string StatsUtils::CURRENT_RADIO_TX = "radio_tx";
36 const std::string StatsUtils::CURRENT_CAMERA_ON = "camera_on";
37 const std::string StatsUtils::CURRENT_FLASHLIGHT_ON = "flashlight_on";
38 const std::string StatsUtils::CURRENT_GPS_ON = "gps_on";
39 const std::string StatsUtils::CURRENT_SENSOR_GRAVITY = "sensor_gravity_on";
40 const std::string StatsUtils::CURRENT_SENSOR_PROXIMITY = "sensor_proximity_on";
41 const std::string StatsUtils::CURRENT_AUDIO_ON = "audio_on";
42 const std::string StatsUtils::CURRENT_SCREEN_ON = "screen_on";
43 const std::string StatsUtils::CURRENT_SCREEN_BRIGHTNESS = "screen_brightness";
44 const std::string StatsUtils::CURRENT_CPU_AWAKE = "cpu_awake";
45 const std::string StatsUtils::CURRENT_CPU_IDLE = "cpu_idle";
46 const std::string StatsUtils::CURRENT_CPU_CLUSTER = "cpu_clusters";
47 const std::string StatsUtils::CURRENT_CPU_SPEED = "cpu_speed_cluster";
48 const std::string StatsUtils::CURRENT_CPU_ACTIVE = "cpu_active";
49 const std::string StatsUtils::CURRENT_CPU_SUSPEND = "cpu_suspend";
50
ConvertTypeForConn(StatsType statsType)51 std::string StatsUtils::ConvertTypeForConn(StatsType statsType)
52 {
53 std::string result = "";
54 switch (statsType) {
55 case STATS_TYPE_BLUETOOTH_ON:
56 result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_ON);
57 break;
58 case STATS_TYPE_BLUETOOTH_SCAN:
59 result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_SCAN);
60 break;
61 case STATS_TYPE_BLUETOOTH_RX:
62 result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_RX);
63 break;
64 case STATS_TYPE_BLUETOOTH_TX:
65 result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_TX);
66 break;
67 case STATS_TYPE_WIFI_ON:
68 result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_ON);
69 break;
70 case STATS_TYPE_WIFI_SCAN:
71 result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_SCAN);
72 break;
73 case STATS_TYPE_WIFI_RX:
74 result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_RX);
75 break;
76 case STATS_TYPE_WIFI_TX:
77 result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_TX);
78 break;
79 case STATS_TYPE_RADIO_ON:
80 result = GET_VARIABLE_NAME(STATS_TYPE_RADIO_ON);
81 break;
82 case STATS_TYPE_RADIO_SCAN:
83 result = GET_VARIABLE_NAME(STATS_TYPE_RADIO_SCAN);
84 break;
85 case STATS_TYPE_PHONE_ACTIVE:
86 result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_ACTIVE);
87 break;
88 case STATS_TYPE_RADIO_RX:
89 result = GET_VARIABLE_NAME(STATS_TYPE_RADIO_RX);
90 break;
91 case STATS_TYPE_RADIO_TX:
92 result = GET_VARIABLE_NAME(STATS_TYPE_RADIO_TX);
93 break;
94 default:
95 break;
96 }
97 STATS_HILOGI(STATS_MODULE_INNERKIT, "Convert to %{public}s", result.c_str());
98 return result;
99 }
100
ConvertTypeForCpu(StatsType statsType)101 std::string StatsUtils::ConvertTypeForCpu(StatsType statsType)
102 {
103 std::string result = "";
104 switch (statsType) {
105 case STATS_TYPE_WAKELOCK_HOLD:
106 result = GET_VARIABLE_NAME(STATS_TYPE_WAKELOCK_HOLD);
107 break;
108 case STATS_TYPE_PHONE_IDLE:
109 result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_IDLE);
110 break;
111 case STATS_TYPE_CPU_CLUSTER:
112 result = GET_VARIABLE_NAME(STATS_TYPE_CPU_CLUSTER);
113 break;
114 case STATS_TYPE_CPU_SPEED:
115 result = GET_VARIABLE_NAME(STATS_TYPE_CPU_SPEED);
116 break;
117 case STATS_TYPE_CPU_ACTIVE:
118 result = GET_VARIABLE_NAME(STATS_TYPE_CPU_ACTIVE);
119 break;
120 case STATS_TYPE_CPU_SUSPEND:
121 result = GET_VARIABLE_NAME(STATS_TYPE_CPU_SUSPEND);
122 break;
123 default:
124 break;
125 }
126 STATS_HILOGI(STATS_MODULE_INNERKIT, "Convert to %{public}s", result.c_str());
127 return result;
128 }
129
ConvertTypeForCommon(StatsType statsType)130 std::string StatsUtils::ConvertTypeForCommon(StatsType statsType)
131 {
132 std::string result = "";
133 switch (statsType) {
134 case STATS_TYPE_CAMERA_ON:
135 result = GET_VARIABLE_NAME(STATS_TYPE_CAMERA_ON);
136 break;
137 case STATS_TYPE_FLASHLIGHT_ON:
138 result = GET_VARIABLE_NAME(STATS_TYPE_FLASHLIGHT_ON);
139 break;
140 case STATS_TYPE_GPS_ON:
141 result = GET_VARIABLE_NAME(STATS_TYPE_GPS_ON);
142 break;
143 case STATS_TYPE_SENSOR_GRAVITY_ON:
144 result = GET_VARIABLE_NAME(STATS_TYPE_SENSOR_GRAVITY_ON);
145 break;
146 case STATS_TYPE_SENSOR_PROXIMITY_ON:
147 result = GET_VARIABLE_NAME(STATS_TYPE_SENSOR_PROXIMITY_ON);
148 break;
149 case STATS_TYPE_AUDIO_ON:
150 result = GET_VARIABLE_NAME(STATS_TYPE_AUDIO_ON);
151 break;
152 case STATS_TYPE_SCREEN_ON:
153 result = GET_VARIABLE_NAME(STATS_TYPE_SCREEN_ON);
154 break;
155 case STATS_TYPE_SCREEN_BRIGHTNESS:
156 result = GET_VARIABLE_NAME(STATS_TYPE_SCREEN_BRIGHTNESS);
157 break;
158 default:
159 break;
160 }
161 STATS_HILOGI(STATS_MODULE_INNERKIT, "Convert to %{public}s", result.c_str());
162 return result;
163 }
164
ConvertTypeForDebug(StatsType statsType)165 std::string StatsUtils::ConvertTypeForDebug(StatsType statsType)
166 {
167 std::string result = "";
168 switch (statsType) {
169 case STATS_TYPE_BATTERY:
170 result = GET_VARIABLE_NAME(STATS_TYPE_BATTERY);
171 break;
172 case STATS_TYPE_WORKSCHEDULER:
173 result = GET_VARIABLE_NAME(STATS_TYPE_WORKSCHEDULER);
174 break;
175 case STATS_TYPE_THERMAL:
176 result = GET_VARIABLE_NAME(STATS_TYPE_THERMAL);
177 break;
178 default:
179 break;
180 }
181 STATS_HILOGI(STATS_MODULE_INNERKIT, "Convert to %{public}s", result.c_str());
182 return result;
183 }
184
ConvertStatsType(StatsType statsType)185 std::string StatsUtils::ConvertStatsType(StatsType statsType)
186 {
187 std::string result = "";
188 switch (statsType) {
189 case STATS_TYPE_BLUETOOTH_ON:
190 case STATS_TYPE_BLUETOOTH_SCAN:
191 case STATS_TYPE_BLUETOOTH_RX:
192 case STATS_TYPE_BLUETOOTH_TX:
193 case STATS_TYPE_WIFI_ON:
194 case STATS_TYPE_WIFI_SCAN:
195 case STATS_TYPE_WIFI_RX:
196 case STATS_TYPE_WIFI_TX:
197 case STATS_TYPE_RADIO_ON:
198 case STATS_TYPE_RADIO_SCAN:
199 case STATS_TYPE_PHONE_ACTIVE:
200 case STATS_TYPE_RADIO_RX:
201 case STATS_TYPE_RADIO_TX:
202 result = ConvertTypeForConn(statsType);
203 break;
204 case STATS_TYPE_CAMERA_ON:
205 case STATS_TYPE_FLASHLIGHT_ON:
206 case STATS_TYPE_GPS_ON:
207 case STATS_TYPE_SENSOR_GRAVITY_ON:
208 case STATS_TYPE_SENSOR_PROXIMITY_ON:
209 case STATS_TYPE_AUDIO_ON:
210 case STATS_TYPE_SCREEN_ON:
211 case STATS_TYPE_SCREEN_BRIGHTNESS:
212 result = ConvertTypeForCommon(statsType);
213 break;
214 case STATS_TYPE_WAKELOCK_HOLD:
215 case STATS_TYPE_PHONE_IDLE:
216 case STATS_TYPE_CPU_CLUSTER:
217 case STATS_TYPE_CPU_SPEED:
218 case STATS_TYPE_CPU_ACTIVE:
219 case STATS_TYPE_CPU_SUSPEND:
220 result = ConvertTypeForCommon(statsType);
221 break;
222 case STATS_TYPE_BATTERY:
223 case STATS_TYPE_WORKSCHEDULER:
224 case STATS_TYPE_THERMAL:
225 result = ConvertTypeForDebug(statsType);
226 break;
227 default:
228 STATS_HILOGE(STATS_MODULE_INNERKIT, "Convert failed due to illegal stats data type, return empty string");
229 break;
230 }
231 return result;
232 }
233 } // namespace PowerMgr
234 } // namespace OHOS