1/*
2 * Copyright (c) 2021-2022 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_log.h"
19
20namespace OHOS {
21namespace PowerMgr {
22std::string StatsUtils::ConvertTypeForConn(StatsType statsType)
23{
24    std::string result = "";
25    switch (statsType) {
26        case STATS_TYPE_BLUETOOTH_BR_ON:
27            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BR_ON);
28            break;
29        case STATS_TYPE_BLUETOOTH_BR_SCAN:
30            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BR_SCAN);
31            break;
32        case STATS_TYPE_BLUETOOTH_BLE_ON:
33            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BLE_ON);
34            break;
35        case STATS_TYPE_BLUETOOTH_BLE_SCAN:
36            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BLE_SCAN);
37            break;
38        case STATS_TYPE_WIFI_ON:
39            result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_ON);
40            break;
41        case STATS_TYPE_WIFI_SCAN:
42            result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_SCAN);
43            break;
44        case STATS_TYPE_PHONE_ACTIVE:
45            result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_ACTIVE);
46            break;
47        case STATS_TYPE_PHONE_DATA:
48            result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_DATA);
49            break;
50        default:
51            break;
52    }
53    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
54    return result;
55}
56
57std::string StatsUtils::ConvertTypeForCpu(StatsType statsType)
58{
59    std::string result = "";
60    switch (statsType) {
61        case STATS_TYPE_WAKELOCK_HOLD:
62            result = GET_VARIABLE_NAME(STATS_TYPE_WAKELOCK_HOLD);
63            break;
64        case STATS_TYPE_PHONE_IDLE:
65            result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_IDLE);
66            break;
67        case STATS_TYPE_CPU_CLUSTER:
68            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_CLUSTER);
69            break;
70        case STATS_TYPE_CPU_SPEED:
71            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_SPEED);
72            break;
73        case STATS_TYPE_CPU_ACTIVE:
74            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_ACTIVE);
75            break;
76        case STATS_TYPE_CPU_SUSPEND:
77            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_SUSPEND);
78            break;
79        default:
80            break;
81    }
82    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
83    return result;
84}
85
86std::string StatsUtils::ConvertTypeForCommon(StatsType statsType)
87{
88    std::string result = "";
89    switch (statsType) {
90        case STATS_TYPE_CAMERA_ON:
91            result = GET_VARIABLE_NAME(STATS_TYPE_CAMERA_ON);
92            break;
93        case STATS_TYPE_CAMERA_FLASHLIGHT_ON:
94            result = GET_VARIABLE_NAME(STATS_TYPE_CAMERA_FLASHLIGHT_ON);
95            break;
96        case STATS_TYPE_FLASHLIGHT_ON:
97            result = GET_VARIABLE_NAME(STATS_TYPE_FLASHLIGHT_ON);
98            break;
99        case STATS_TYPE_GNSS_ON:
100            result = GET_VARIABLE_NAME(STATS_TYPE_GNSS_ON);
101            break;
102        case STATS_TYPE_SENSOR_GRAVITY_ON:
103            result = GET_VARIABLE_NAME(STATS_TYPE_SENSOR_GRAVITY_ON);
104            break;
105        case STATS_TYPE_SENSOR_PROXIMITY_ON:
106            result = GET_VARIABLE_NAME(STATS_TYPE_SENSOR_PROXIMITY_ON);
107            break;
108        case STATS_TYPE_AUDIO_ON:
109            result = GET_VARIABLE_NAME(STATS_TYPE_AUDIO_ON);
110            break;
111        case STATS_TYPE_SCREEN_ON:
112            result = GET_VARIABLE_NAME(STATS_TYPE_SCREEN_ON);
113            break;
114        case STATS_TYPE_SCREEN_BRIGHTNESS:
115            result = GET_VARIABLE_NAME(STATS_TYPE_SCREEN_BRIGHTNESS);
116            break;
117        case STATS_TYPE_ALARM:
118            result = GET_VARIABLE_NAME(STATS_TYPE_ALARM);
119            break;
120        default:
121            break;
122    }
123    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
124    return result;
125}
126
127std::string StatsUtils::ConvertTypeForDebug(StatsType statsType)
128{
129    std::string result = "";
130    switch (statsType) {
131        case STATS_TYPE_BATTERY:
132            result = GET_VARIABLE_NAME(STATS_TYPE_BATTERY);
133            break;
134        case STATS_TYPE_WORKSCHEDULER:
135            result = GET_VARIABLE_NAME(STATS_TYPE_WORKSCHEDULER);
136            break;
137        case STATS_TYPE_THERMAL:
138            result = GET_VARIABLE_NAME(STATS_TYPE_THERMAL);
139            break;
140        case STATS_TYPE_DISTRIBUTEDSCHEDULER:
141            result = GET_VARIABLE_NAME(STATS_TYPE_DISTRIBUTEDSCHEDULER);
142            break;
143        default:
144            break;
145    }
146    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
147    return result;
148}
149
150std::string StatsUtils::ConvertStatsType(StatsType statsType)
151{
152    std::string result = "";
153    switch (statsType) {
154        case STATS_TYPE_BLUETOOTH_BR_ON:
155        case STATS_TYPE_BLUETOOTH_BR_SCAN:
156        case STATS_TYPE_BLUETOOTH_BLE_ON:
157        case STATS_TYPE_BLUETOOTH_BLE_SCAN:
158        case STATS_TYPE_WIFI_ON:
159        case STATS_TYPE_WIFI_SCAN:
160        case STATS_TYPE_PHONE_ACTIVE:
161        case STATS_TYPE_PHONE_DATA:
162            result = ConvertTypeForConn(statsType);
163            break;
164        case STATS_TYPE_CAMERA_ON:
165        case STATS_TYPE_CAMERA_FLASHLIGHT_ON:
166        case STATS_TYPE_FLASHLIGHT_ON:
167        case STATS_TYPE_GNSS_ON:
168        case STATS_TYPE_SENSOR_GRAVITY_ON:
169        case STATS_TYPE_SENSOR_PROXIMITY_ON:
170        case STATS_TYPE_AUDIO_ON:
171        case STATS_TYPE_SCREEN_ON:
172        case STATS_TYPE_SCREEN_BRIGHTNESS:
173        case STATS_TYPE_ALARM:
174            result = ConvertTypeForCommon(statsType);
175            break;
176        case STATS_TYPE_WAKELOCK_HOLD:
177        case STATS_TYPE_PHONE_IDLE:
178        case STATS_TYPE_CPU_CLUSTER:
179        case STATS_TYPE_CPU_SPEED:
180        case STATS_TYPE_CPU_ACTIVE:
181        case STATS_TYPE_CPU_SUSPEND:
182            result = ConvertTypeForCpu(statsType);
183            break;
184        case STATS_TYPE_BATTERY:
185        case STATS_TYPE_WORKSCHEDULER:
186        case STATS_TYPE_THERMAL:
187        case STATS_TYPE_DISTRIBUTEDSCHEDULER:
188            result = ConvertTypeForDebug(statsType);
189            break;
190        default:
191            break;
192    }
193    return result;
194}
195} // namespace PowerMgr
196} // namespace OHOS