1 /*
2 * Copyright (c) 2025-2025 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 "dfx_hisysevent_device.h"
17
18 #undef MMI_LOG_DOMAIN
19 #define MMI_LOG_DOMAIN MMI_LOG_SERVER
20 #undef MMI_LOG_TAG
21 #define MMI_LOG_TAG "DfxHisysevent"
22
23 #define DFX_HISYSEVENT_DOMAIN OHOS::HiviewDFX::HiSysEvent::Domain::MULTI_MODAL_INPUT
24 #define DFX_HISYSEVENT_NAME_DEVICE_FAULT "DEVICE_MANAGER_FAULT"
25 #define DFX_HISYSEVENT_NAME_DEVICE_BEHAVIOR "DEVICE_MANAGER_BEHAVIOR"
26 #define DFX_HISYSEVENT_NAME_DEVICE_STATISTIC "DEVICE_MANAGER_STATISTIC"
27
28 #define DFX_HISYSEVENT_TYPE_FAULT OHOS::HiviewDFX::HiSysEvent::EventType::FAULT
29 #define DFX_HISYSEVENT_TYPE_BEHAVIOR OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR
30
31 namespace OHOS {
32 namespace MMI {
33
ReportDeviceFault(int32_t faultType,std::string faultMsg)34 void DfxHisyseventDeivce::ReportDeviceFault(int32_t faultType, std::string faultMsg)
35 {
36 int32_t ret = HiSysEventWrite(DFX_HISYSEVENT_DOMAIN,
37 DFX_HISYSEVENT_NAME_DEVICE_FAULT,
38 DFX_HISYSEVENT_TYPE_FAULT,
39 "FAULT_TYPE",
40 faultType,
41 "FAULT_MSG",
42 faultMsg);
43 if (ret != 0) {
44 MMI_HILOGE("HiviewDFX Write failed, ret:%{public}d, faultType:%{public}d, faultMsg:%{public}s",
45 ret,
46 faultType,
47 faultMsg.c_str());
48 }
49 }
50
ReportDeviceFault(int32_t deviceId,int32_t faultType,std::string faultMsg)51 void DfxHisyseventDeivce::ReportDeviceFault(int32_t deviceId, int32_t faultType, std::string faultMsg)
52 {
53 std::shared_ptr<InputDevice> dev = INPUT_DEV_MGR->GetInputDevice(deviceId);
54 CHKPV(dev);
55 int32_t ret = HiSysEventWrite(DFX_HISYSEVENT_DOMAIN,
56 DFX_HISYSEVENT_NAME_DEVICE_FAULT,
57 DFX_HISYSEVENT_TYPE_FAULT,
58 "FAULT_TYPE",
59 faultType,
60 "DEVICE_ID",
61 deviceId,
62 "DEVICE_PHYS",
63 dev->GetPhys(),
64 "DEVICE_NAME",
65 dev->GetName(),
66 "DEVICE_TYPE",
67 dev->GetType(),
68 "FAULT_MSG",
69 faultMsg);
70 if (ret != 0) {
71 MMI_HILOGE(
72 "HiviewDFX Write failed, ret:%{public}d, deivceId:%{public}d, faultType:%{public}d, faultMsg:%{public}s",
73 ret,
74 deviceId,
75 faultType,
76 faultMsg.c_str());
77 }
78 }
79
ReportDeviceBehavior(int32_t deviceId,std::string msg)80 void DfxHisyseventDeivce::ReportDeviceBehavior(int32_t deviceId, std::string msg)
81 {
82 std::shared_ptr<InputDevice> dev = INPUT_DEV_MGR->GetInputDevice(deviceId);
83 CHKPV(dev);
84 std::string message;
85 std::string name;
86 int32_t ret = HiSysEventWrite(DFX_HISYSEVENT_DOMAIN,
87 DFX_HISYSEVENT_NAME_DEVICE_BEHAVIOR,
88 DFX_HISYSEVENT_TYPE_BEHAVIOR,
89 "DEVICE_ID",
90 deviceId,
91 "DEVICE_PHYS",
92 dev->GetPhys(),
93 "DEVICE_NAME",
94 dev->GetName(),
95 "DEVICE_TYPE",
96 dev->GetType(),
97 "MSG",
98 msg);
99 if (ret != 0) {
100 MMI_HILOGE(
101 "HiviewDFX Write failed, ret:%{public}d, deivceId:%{public}d, msg:%{public}s", ret, deviceId, msg.c_str());
102 }
103 }
104
105 } // namespace MMI
106 } // namespace OHOS
107