1 /*
2 * Copyright (C) 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 "wifi_hisysevent.h"
17 #include "hisysevent.h"
18 #include "wifi_logger.h"
19 #include "json/json.h"
20
21 namespace OHOS {
22 namespace Wifi {
23 DEFINE_WIFILOG_LABEL("WifiHiSysEvent");
24
25 template<typename... Types>
WriteEvent(const std::string & eventType,Types...args)26 static void WriteEvent(const std::string& eventType, Types... args)
27 {
28 int ret = HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::COMMUNICATION, eventType,
29 HiviewDFX::HiSysEvent::EventType::STATISTIC, args...);
30 if (ret != 0) {
31 WIFI_LOGE("Write event fail: %{public}s", eventType.c_str());
32 }
33 }
34
35 template<typename... Type>
WriteEventBehavior(const std::string & eventType,Type...args)36 static void WriteEventBehavior(const std::string& eventType, Type... args)
37 {
38 int ret = HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::COMMUNICATION, eventType,
39 HiviewDFX::HiSysEvent::EventType::BEHAVIOR, args...);
40 if (ret != 0) {
41 WIFI_LOGE("Write event fail: %{public}s", eventType.c_str());
42 }
43 }
44
WriteWifiStateHiSysEvent(const std::string & serviceType,WifiOperType operType)45 void WriteWifiStateHiSysEvent(const std::string& serviceType, WifiOperType operType)
46 {
47 WriteEvent("WIFI_STATE", "TYPE", serviceType, "OPER_TYPE", static_cast<int>(operType));
48 }
49
WriteWifiApStateHiSysEvent(int32_t state)50 void WriteWifiApStateHiSysEvent(int32_t state)
51 {
52 WriteEventBehavior("WIFI_AP_STATE", "STATE", state);
53 }
54
WriteWifiP2pStateHiSysEvent(const std::string & inter,int32_t type,int32_t state)55 void WriteWifiP2pStateHiSysEvent(const std::string& inter, int32_t type, int32_t state)
56 {
57 WriteEventBehavior("WIFI_P2P_STATE", "INTERFACE", inter, "P2PTYPE", type, "STATE", state);
58 }
59
WriteWifiConnectionHiSysEvent(const WifiConnectionType & type,const std::string & pkgName)60 void WriteWifiConnectionHiSysEvent(const WifiConnectionType& type, const std::string& pkgName)
61 {
62 WriteEvent("WIFI_CONNECTION", "TYPE", static_cast<int>(type), "PACKAGE_NAME", pkgName);
63 }
64
WriteWifiScanHiSysEvent(const int result,const std::string & pkgName)65 void WriteWifiScanHiSysEvent(const int result, const std::string& pkgName)
66 {
67 WriteEvent("WIFI_SCAN", "EXECUTE_RESULT", result, "PACKAGE_NAME", pkgName);
68 }
69
WriteWifiEventReceivedHiSysEvent(const std::string & eventType,int value)70 void WriteWifiEventReceivedHiSysEvent(const std::string& eventType, int value)
71 {
72 WriteEvent("WIFI_EVENT_RECEIVED", "EVENT_TYPE", eventType, "VALUE", value);
73 }
74
WriteWifiBandHiSysEvent(int band)75 void WriteWifiBandHiSysEvent(int band)
76 {
77 WriteEvent("WIFI_BAND", "BAND", band);
78 }
79
WriteWifiSignalHiSysEvent(int direction,int txPackets,int rxPackets)80 void WriteWifiSignalHiSysEvent(int direction, int txPackets, int rxPackets)
81 {
82 WriteEvent("WIFI_SIGNAL", "DIRECTION", direction, "TXPACKETS", txPackets, "RXPACKETS", rxPackets);
83 }
84
WriteWifiOperateStateHiSysEvent(int operateType,int operateState)85 void WriteWifiOperateStateHiSysEvent(int operateType, int operateState)
86 {
87 Json::Value root;
88 Json::FastWriter writer;
89 root["OPERATE_TYPE"] = operateType;
90 root["OPERATE_STATE"] = operateState;
91 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_OPERATE_STATE", "EVENT_VALUE", writer.write(root));
92 }
93
WriteWifiAbnormalDisconnectHiSysEvent(int errorCode)94 void WriteWifiAbnormalDisconnectHiSysEvent(int errorCode)
95 {
96 Json::Value root;
97 Json::FastWriter writer;
98 root["ERROR_CODE"] = errorCode;
99 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_ABNORMAL_DISCONNECT", "EVENT_VALUE", writer.write(root));
100 }
101
WriteWifiConnectionInfoHiSysEvent(int networkId)102 void WriteWifiConnectionInfoHiSysEvent(int networkId)
103 {
104 Json::Value root;
105 Json::FastWriter writer;
106 root["NETWORK_ID"] = networkId;
107 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_CONNECTION_INFO", "EVENT_VALUE", writer.write(root));
108 }
109
WriteWifiOpenAndCloseFailedHiSysEvent(int operateType,std::string failReason,int apState)110 void WriteWifiOpenAndCloseFailedHiSysEvent(int operateType, std::string failReason, int apState)
111 {
112 Json::Value root;
113 Json::FastWriter writer;
114 root["OPERATE_TYPE"] = operateType;
115 root["FAIL_REASON"] = failReason;
116 root["AP_STATE"] = apState;
117 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_OPEN_AND_CLOSE_FAILED", "EVENT_VALUE", writer.write(root));
118 }
119
WriteSoftApOpenAndCloseFailedEvent(int operateType,std::string failReason)120 void WriteSoftApOpenAndCloseFailedEvent(int operateType, std::string failReason)
121 {
122 WIFI_LOGE("WriteSoftApOpenAndCloseFailedEvent operateType=%{public}d", operateType);
123 Json::Value root;
124 Json::FastWriter writer;
125 root["OPERATE_TYPE"] = operateType;
126 root["FAIL_REASON"] = failReason;
127 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "SOFTAP_OPEN_AND_CLOSE_FAILED", "EVENT_VALUE", writer.write(root));
128 }
129
WriteWifiAccessIntFailedHiSysEvent(int operateRes,int failCnt)130 void WriteWifiAccessIntFailedHiSysEvent(int operateRes, int failCnt)
131 {
132 Json::Value root;
133 Json::FastWriter writer;
134 root["OPERATE_TYPE"] = operateRes;
135 root["FAIL_CNT"] = failCnt;
136 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_ACCESS_INTERNET_FAILED", "EVENT_VALUE", writer.write(root));
137 }
138
WriteWifiPnoScanHiSysEvent(int isStartScan,int suspendReason)139 void WriteWifiPnoScanHiSysEvent(int isStartScan, int suspendReason)
140 {
141 Json::Value root;
142 Json::FastWriter writer;
143 root["IS_START"] = isStartScan;
144 root["SUSPEND_REASON"] = suspendReason;
145 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_PNO_SCAN_INFO", "EVENT_VALUE", writer.write(root));
146 }
147
WriteBrowserFailedForPortalHiSysEvent(int respCode,std::string & server)148 void WriteBrowserFailedForPortalHiSysEvent(int respCode, std::string &server)
149 {
150 Json::Value root;
151 Json::FastWriter writer;
152 root["RESP_CODE"] = respCode;
153 root["SERVER"] = server;
154 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "BROWSER_FAILED_FOR_PORTAL", "EVENT_VALUE", writer.write(root));
155 }
156
WriteWifiConnectFailedEventHiSysEvent(int operateType)157 void WriteWifiConnectFailedEventHiSysEvent(int operateType)
158 {
159 Json::Value root;
160 Json::FastWriter writer;
161 root["OPERATE_TYPE"] = operateType;
162 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_CONNECT_FAILED_EVENT", "EVENT_VALUE", writer.write(root));
163 }
164
WriteP2pKpiCountHiSysEvent(int eventType)165 void WriteP2pKpiCountHiSysEvent(int eventType)
166 {
167 Json::Value root;
168 Json::FastWriter writer;
169 root["EVENT_TYPE"] = eventType;
170 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "P2P_CONNECT_STATICS", "EVENT_VALUE", writer.write(root));
171 }
172
WriteP2pConnectFailedHiSysEvent(int errCode,int failRes)173 void WriteP2pConnectFailedHiSysEvent(int errCode, int failRes)
174 {
175 Json::Value root;
176 Json::FastWriter writer;
177 root["EVENT_TYPE"] = errCode;
178 root["FAIL_RES"] = failRes;
179 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "P2P_CONNECT_FAIL", "EVENT_VALUE", writer.write(root));
180 }
181
WriteP2pAbDisConnectHiSysEvent(int errCode,int failRes)182 void WriteP2pAbDisConnectHiSysEvent(int errCode, int failRes)
183 {
184 Json::Value root;
185 Json::FastWriter writer;
186 root["EVENT_TYPE"] = errCode;
187 root["FAIL_RES"] = failRes;
188 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "P2P_ABNORMAL_DISCONNECT", "EVENT_VALUE", writer.write(root));
189 }
190
WriteSoftApAbDisconnectHiSysEvent(int errorCode)191 void WriteSoftApAbDisconnectHiSysEvent(int errorCode)
192 {
193 Json::Value root;
194 Json::FastWriter writer;
195 root["ERROR_CODE"] = errorCode;
196 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "SOFTAP_ABNORMAL_DISCONNECT", "EVENT_VALUE", writer.write(root));
197 }
198
WriteIsInternetHiSysEvent(int isInternet)199 void WriteIsInternetHiSysEvent(int isInternet)
200 {
201 Json::Value root;
202 Json::FastWriter writer;
203 root["IS_INTERNET"] = isInternet;
204 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "WIFI_KPI_INTERNET", "EVENT_VALUE", writer.write(root));
205 }
206
WriteSoftApConnectFailHiSysEvent(int errorCnt)207 void WriteSoftApConnectFailHiSysEvent(int errorCnt)
208 {
209 WIFI_LOGE("WriteSoftApConnectFailHiSysEvent errorCnt=%{public}d", errorCnt);
210 Json::Value root;
211 Json::FastWriter writer;
212 root["ERROR_CODE"] = errorCnt;
213 WriteEvent("WIFI_CHR_EVENT", "EVENT_NAME", "SOFTAP_CONNECT_FAILED", "EVENT_VALUE", writer.write(root));
214 }
215
WriteWifiScanApiFailHiSysEvent(const std::string & pkgName,int failReason)216 void WriteWifiScanApiFailHiSysEvent(const std::string& pkgName, int failReason)
217 {
218 Json::Value root;
219 Json::FastWriter writer;
220 root["PACKAGE_NAME"] = pkgName;
221 root["FAIL_REASON"] = failReason;
222 WriteEvent("WIFI_SCAN", "EVENT_NAME", "WIFI_SCAN_API_FAIL", "EVENT_VALUE", writer.write(root));
223 }
224 } // namespace Wifi
225 } // namespace OHOS