1d590543dSopenharmony_ci/*
2d590543dSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3d590543dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4d590543dSopenharmony_ci * you may not use this file except in compliance with the License.
5d590543dSopenharmony_ci * You may obtain a copy of the License at
6d590543dSopenharmony_ci *
7d590543dSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8d590543dSopenharmony_ci *
9d590543dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10d590543dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11d590543dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12d590543dSopenharmony_ci * See the License for the specific language governing permissions and
13d590543dSopenharmony_ci * limitations under the License.
14d590543dSopenharmony_ci */
15d590543dSopenharmony_ci
16d590543dSopenharmony_ci#include "stats_utils.h"
17d590543dSopenharmony_ci
18d590543dSopenharmony_ci#include "stats_log.h"
19d590543dSopenharmony_ci
20d590543dSopenharmony_cinamespace OHOS {
21d590543dSopenharmony_cinamespace PowerMgr {
22d590543dSopenharmony_cistd::string StatsUtils::ConvertTypeForConn(StatsType statsType)
23d590543dSopenharmony_ci{
24d590543dSopenharmony_ci    std::string result = "";
25d590543dSopenharmony_ci    switch (statsType) {
26d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BR_ON:
27d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BR_ON);
28d590543dSopenharmony_ci            break;
29d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BR_SCAN:
30d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BR_SCAN);
31d590543dSopenharmony_ci            break;
32d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BLE_ON:
33d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BLE_ON);
34d590543dSopenharmony_ci            break;
35d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BLE_SCAN:
36d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BLE_SCAN);
37d590543dSopenharmony_ci            break;
38d590543dSopenharmony_ci        case STATS_TYPE_WIFI_ON:
39d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_ON);
40d590543dSopenharmony_ci            break;
41d590543dSopenharmony_ci        case STATS_TYPE_WIFI_SCAN:
42d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_WIFI_SCAN);
43d590543dSopenharmony_ci            break;
44d590543dSopenharmony_ci        case STATS_TYPE_PHONE_ACTIVE:
45d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_ACTIVE);
46d590543dSopenharmony_ci            break;
47d590543dSopenharmony_ci        case STATS_TYPE_PHONE_DATA:
48d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_DATA);
49d590543dSopenharmony_ci            break;
50d590543dSopenharmony_ci        default:
51d590543dSopenharmony_ci            break;
52d590543dSopenharmony_ci    }
53d590543dSopenharmony_ci    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
54d590543dSopenharmony_ci    return result;
55d590543dSopenharmony_ci}
56d590543dSopenharmony_ci
57d590543dSopenharmony_cistd::string StatsUtils::ConvertTypeForCpu(StatsType statsType)
58d590543dSopenharmony_ci{
59d590543dSopenharmony_ci    std::string result = "";
60d590543dSopenharmony_ci    switch (statsType) {
61d590543dSopenharmony_ci        case STATS_TYPE_WAKELOCK_HOLD:
62d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_WAKELOCK_HOLD);
63d590543dSopenharmony_ci            break;
64d590543dSopenharmony_ci        case STATS_TYPE_PHONE_IDLE:
65d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_PHONE_IDLE);
66d590543dSopenharmony_ci            break;
67d590543dSopenharmony_ci        case STATS_TYPE_CPU_CLUSTER:
68d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_CLUSTER);
69d590543dSopenharmony_ci            break;
70d590543dSopenharmony_ci        case STATS_TYPE_CPU_SPEED:
71d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_SPEED);
72d590543dSopenharmony_ci            break;
73d590543dSopenharmony_ci        case STATS_TYPE_CPU_ACTIVE:
74d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_ACTIVE);
75d590543dSopenharmony_ci            break;
76d590543dSopenharmony_ci        case STATS_TYPE_CPU_SUSPEND:
77d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_CPU_SUSPEND);
78d590543dSopenharmony_ci            break;
79d590543dSopenharmony_ci        default:
80d590543dSopenharmony_ci            break;
81d590543dSopenharmony_ci    }
82d590543dSopenharmony_ci    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
83d590543dSopenharmony_ci    return result;
84d590543dSopenharmony_ci}
85d590543dSopenharmony_ci
86d590543dSopenharmony_cistd::string StatsUtils::ConvertTypeForCommon(StatsType statsType)
87d590543dSopenharmony_ci{
88d590543dSopenharmony_ci    std::string result = "";
89d590543dSopenharmony_ci    switch (statsType) {
90d590543dSopenharmony_ci        case STATS_TYPE_CAMERA_ON:
91d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_CAMERA_ON);
92d590543dSopenharmony_ci            break;
93d590543dSopenharmony_ci        case STATS_TYPE_CAMERA_FLASHLIGHT_ON:
94d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_CAMERA_FLASHLIGHT_ON);
95d590543dSopenharmony_ci            break;
96d590543dSopenharmony_ci        case STATS_TYPE_FLASHLIGHT_ON:
97d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_FLASHLIGHT_ON);
98d590543dSopenharmony_ci            break;
99d590543dSopenharmony_ci        case STATS_TYPE_GNSS_ON:
100d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_GNSS_ON);
101d590543dSopenharmony_ci            break;
102d590543dSopenharmony_ci        case STATS_TYPE_SENSOR_GRAVITY_ON:
103d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_SENSOR_GRAVITY_ON);
104d590543dSopenharmony_ci            break;
105d590543dSopenharmony_ci        case STATS_TYPE_SENSOR_PROXIMITY_ON:
106d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_SENSOR_PROXIMITY_ON);
107d590543dSopenharmony_ci            break;
108d590543dSopenharmony_ci        case STATS_TYPE_AUDIO_ON:
109d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_AUDIO_ON);
110d590543dSopenharmony_ci            break;
111d590543dSopenharmony_ci        case STATS_TYPE_SCREEN_ON:
112d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_SCREEN_ON);
113d590543dSopenharmony_ci            break;
114d590543dSopenharmony_ci        case STATS_TYPE_SCREEN_BRIGHTNESS:
115d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_SCREEN_BRIGHTNESS);
116d590543dSopenharmony_ci            break;
117d590543dSopenharmony_ci        case STATS_TYPE_ALARM:
118d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_ALARM);
119d590543dSopenharmony_ci            break;
120d590543dSopenharmony_ci        default:
121d590543dSopenharmony_ci            break;
122d590543dSopenharmony_ci    }
123d590543dSopenharmony_ci    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
124d590543dSopenharmony_ci    return result;
125d590543dSopenharmony_ci}
126d590543dSopenharmony_ci
127d590543dSopenharmony_cistd::string StatsUtils::ConvertTypeForDebug(StatsType statsType)
128d590543dSopenharmony_ci{
129d590543dSopenharmony_ci    std::string result = "";
130d590543dSopenharmony_ci    switch (statsType) {
131d590543dSopenharmony_ci        case STATS_TYPE_BATTERY:
132d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_BATTERY);
133d590543dSopenharmony_ci            break;
134d590543dSopenharmony_ci        case STATS_TYPE_WORKSCHEDULER:
135d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_WORKSCHEDULER);
136d590543dSopenharmony_ci            break;
137d590543dSopenharmony_ci        case STATS_TYPE_THERMAL:
138d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_THERMAL);
139d590543dSopenharmony_ci            break;
140d590543dSopenharmony_ci        case STATS_TYPE_DISTRIBUTEDSCHEDULER:
141d590543dSopenharmony_ci            result = GET_VARIABLE_NAME(STATS_TYPE_DISTRIBUTEDSCHEDULER);
142d590543dSopenharmony_ci            break;
143d590543dSopenharmony_ci        default:
144d590543dSopenharmony_ci            break;
145d590543dSopenharmony_ci    }
146d590543dSopenharmony_ci    STATS_HILOGD(COMP_UTILS, "Convert to %{public}s", result.c_str());
147d590543dSopenharmony_ci    return result;
148d590543dSopenharmony_ci}
149d590543dSopenharmony_ci
150d590543dSopenharmony_cistd::string StatsUtils::ConvertStatsType(StatsType statsType)
151d590543dSopenharmony_ci{
152d590543dSopenharmony_ci    std::string result = "";
153d590543dSopenharmony_ci    switch (statsType) {
154d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BR_ON:
155d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BR_SCAN:
156d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BLE_ON:
157d590543dSopenharmony_ci        case STATS_TYPE_BLUETOOTH_BLE_SCAN:
158d590543dSopenharmony_ci        case STATS_TYPE_WIFI_ON:
159d590543dSopenharmony_ci        case STATS_TYPE_WIFI_SCAN:
160d590543dSopenharmony_ci        case STATS_TYPE_PHONE_ACTIVE:
161d590543dSopenharmony_ci        case STATS_TYPE_PHONE_DATA:
162d590543dSopenharmony_ci            result = ConvertTypeForConn(statsType);
163d590543dSopenharmony_ci            break;
164d590543dSopenharmony_ci        case STATS_TYPE_CAMERA_ON:
165d590543dSopenharmony_ci        case STATS_TYPE_CAMERA_FLASHLIGHT_ON:
166d590543dSopenharmony_ci        case STATS_TYPE_FLASHLIGHT_ON:
167d590543dSopenharmony_ci        case STATS_TYPE_GNSS_ON:
168d590543dSopenharmony_ci        case STATS_TYPE_SENSOR_GRAVITY_ON:
169d590543dSopenharmony_ci        case STATS_TYPE_SENSOR_PROXIMITY_ON:
170d590543dSopenharmony_ci        case STATS_TYPE_AUDIO_ON:
171d590543dSopenharmony_ci        case STATS_TYPE_SCREEN_ON:
172d590543dSopenharmony_ci        case STATS_TYPE_SCREEN_BRIGHTNESS:
173d590543dSopenharmony_ci        case STATS_TYPE_ALARM:
174d590543dSopenharmony_ci            result = ConvertTypeForCommon(statsType);
175d590543dSopenharmony_ci            break;
176d590543dSopenharmony_ci        case STATS_TYPE_WAKELOCK_HOLD:
177d590543dSopenharmony_ci        case STATS_TYPE_PHONE_IDLE:
178d590543dSopenharmony_ci        case STATS_TYPE_CPU_CLUSTER:
179d590543dSopenharmony_ci        case STATS_TYPE_CPU_SPEED:
180d590543dSopenharmony_ci        case STATS_TYPE_CPU_ACTIVE:
181d590543dSopenharmony_ci        case STATS_TYPE_CPU_SUSPEND:
182d590543dSopenharmony_ci            result = ConvertTypeForCpu(statsType);
183d590543dSopenharmony_ci            break;
184d590543dSopenharmony_ci        case STATS_TYPE_BATTERY:
185d590543dSopenharmony_ci        case STATS_TYPE_WORKSCHEDULER:
186d590543dSopenharmony_ci        case STATS_TYPE_THERMAL:
187d590543dSopenharmony_ci        case STATS_TYPE_DISTRIBUTEDSCHEDULER:
188d590543dSopenharmony_ci            result = ConvertTypeForDebug(statsType);
189d590543dSopenharmony_ci            break;
190d590543dSopenharmony_ci        default:
191d590543dSopenharmony_ci            break;
192d590543dSopenharmony_ci    }
193d590543dSopenharmony_ci    return result;
194d590543dSopenharmony_ci}
195d590543dSopenharmony_ci} // namespace PowerMgr
196d590543dSopenharmony_ci} // namespace OHOS