• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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