1094332d3Sopenharmony_ci# Input<a name="ZH-CN_TOPIC_0000001124789109"></a>
2094332d3Sopenharmony_ci
3094332d3Sopenharmony_ci-   [简介](#section11660541593)
4094332d3Sopenharmony_ci-   [目录](#section161941989596)
5094332d3Sopenharmony_ci    -   [接口说明](#section1551164914237)
6094332d3Sopenharmony_ci    -   [使用说明](#section129654513264)
7094332d3Sopenharmony_ci    -   [用例说明](#section129654513265)
8094332d3Sopenharmony_ci
9094332d3Sopenharmony_ci-   [相关仓](#section1371113476307)
10094332d3Sopenharmony_ci
11094332d3Sopenharmony_ci## 简介<a name="section11660541593"></a>
12094332d3Sopenharmony_ci
13094332d3Sopenharmony_ci该仓下主要包含Input模块HDI(Hardware Driver Interface)接口定义及其实现,对上层输入服务提供操作input设备的驱动能力接口,HDI接口主要包括如下三大类:
14094332d3Sopenharmony_ci
15094332d3Sopenharmony_ci-   InputManager:管理输入设备,包括输入设备的打开、关闭、设备列表信息获取等;
16094332d3Sopenharmony_ci-   InputReporter:负责输入事件的上报,包括注册、注销数据上报回调函数等;
17094332d3Sopenharmony_ci-   InputController:提供input设备的业务控制接口,包括获取器件信息及设备类型、设置电源状态等。
18094332d3Sopenharmony_ci
19094332d3Sopenharmony_ci**图 1**  INPUT模块HDI接口层框架图<a name="fig9489629122818"></a>  
20094332d3Sopenharmony_ci![](figures/hdi-architecture-of-the-input-module.png "hdi-architecture-of-the-input-module")
21094332d3Sopenharmony_ci
22094332d3Sopenharmony_ci## 目录<a name="section161941989596"></a>
23094332d3Sopenharmony_ci
24094332d3Sopenharmony_ci该仓下源代码目录结构如下所示
25094332d3Sopenharmony_ci
26094332d3Sopenharmony_ci```
27094332d3Sopenharmony_ci/drivers/peripheral/input
28094332d3Sopenharmony_ci├── hal                # input模块的hal层代码
29094332d3Sopenharmony_ci│   └── include       # input模块hal层内部的头文件
30094332d3Sopenharmony_ci│   └── src           # input模块hal层代码的具体实现
31094332d3Sopenharmony_ci├── interfaces         # input模块对上层服务提供的驱动能力接口
32094332d3Sopenharmony_ci│   └── include       # input模块对外提供的接口定义
33094332d3Sopenharmony_ci├── test               # input模块的测试代码
34094332d3Sopenharmony_ci│   └── unittest      # input模块的单元测试代码
35094332d3Sopenharmony_ci```
36094332d3Sopenharmony_ci
37094332d3Sopenharmony_ci### 接口说明<a name="section1551164914237"></a>
38094332d3Sopenharmony_ci
39094332d3Sopenharmony_ciInput驱动提供给系统服务Input Service可直接调用的驱动能力接口,按照属性分类三类:input设备管理模块、input数据上报模块、input业务控制模块,例如提供输入设备打开及关闭接口、注册设备监听的回调接口、设备信息查询接口、电源状态控制接口等。
40094332d3Sopenharmony_ci
41094332d3Sopenharmony_ci提供的部分接口说明如[表1 Input HDI接口列表](#table1513255710559)所示:
42094332d3Sopenharmony_ci
43094332d3Sopenharmony_ci**表 1**  Input HDI接口列表
44094332d3Sopenharmony_ci
45094332d3Sopenharmony_ci<a name="table1513255710559"></a>
46094332d3Sopenharmony_ci<table><thead align="left"><tr id="row171321857155517"><th class="cellrowborder" align="center" valign="top" width="12.031203120312032%" id="mcps1.2.4.1.1"><p id="p6132957115511"><a name="p6132957115511"></a><a name="p6132957115511"></a>头文件</p>
47094332d3Sopenharmony_ci</th>
48094332d3Sopenharmony_ci<th class="cellrowborder" align="center" valign="top" width="66.006600660066%" id="mcps1.2.4.1.2"><p id="p14132125715552"><a name="p14132125715552"></a><a name="p14132125715552"></a>接口名称</p>
49094332d3Sopenharmony_ci</th>
50094332d3Sopenharmony_ci<th class="cellrowborder" align="center" valign="top" width="21.96219621962196%" id="mcps1.2.4.1.3"><p id="p18132205755516"><a name="p18132205755516"></a><a name="p18132205755516"></a>功能描述</p>
51094332d3Sopenharmony_ci</th>
52094332d3Sopenharmony_ci</tr>
53094332d3Sopenharmony_ci</thead>
54094332d3Sopenharmony_ci<tbody><tr id="row13132357165514"><td class="cellrowborder" rowspan="4" align="left" valign="top" width="12.031203120312032%" headers="mcps1.2.4.1.1 "><p id="p15674038913"><a name="p15674038913"></a><a name="p15674038913"></a></p>
55094332d3Sopenharmony_ci<p id="p825185015460"><a name="p825185015460"></a><a name="p825185015460"></a>input_manager.h</p>
56094332d3Sopenharmony_ci<p id="p2133757135510"><a name="p2133757135510"></a><a name="p2133757135510"></a></p>
57094332d3Sopenharmony_ci</td>
58094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="66.006600660066%" headers="mcps1.2.4.1.2 "><p id="p11132857135517"><a name="p11132857135517"></a><a name="p11132857135517"></a>int32_t (*OpenInputDevice)(uint32_t devIndex);</p>
59094332d3Sopenharmony_ci</td>
60094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" width="21.96219621962196%" headers="mcps1.2.4.1.3 "><p id="p8233134675314"><a name="p8233134675314"></a><a name="p8233134675314"></a>打开input设备</p>
61094332d3Sopenharmony_ci</td>
62094332d3Sopenharmony_ci</tr>
63094332d3Sopenharmony_ci<tr id="row9132135715515"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p106067813482"><a name="p106067813482"></a><a name="p106067813482"></a>int32_t (*CloseInputDevice)(uint32_t devIndex);</p>
64094332d3Sopenharmony_ci</td>
65094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p8233144617532"><a name="p8233144617532"></a><a name="p8233144617532"></a>关闭input设备</p>
66094332d3Sopenharmony_ci</td>
67094332d3Sopenharmony_ci</tr>
68094332d3Sopenharmony_ci<tr id="row2973185044814"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1974125024812"><a name="p1974125024812"></a><a name="p1974125024812"></a>int32_t (*GetInputDevice)(uint32_t devIndex, DeviceInfo **devInfo);</p>
69094332d3Sopenharmony_ci</td>
70094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p152331046155310"><a name="p152331046155310"></a><a name="p152331046155310"></a>获取指定ID的设备信息</p>
71094332d3Sopenharmony_ci</td>
72094332d3Sopenharmony_ci</tr>
73094332d3Sopenharmony_ci<tr id="row171330575555"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p913315573557"><a name="p913315573557"></a><a name="p913315573557"></a>int32_t (*GetInputDeviceList)(uint32_t *devNum, DeviceInfo **devList, uint32_t size);</p>
74094332d3Sopenharmony_ci</td>
75094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p1523319466539"><a name="p1523319466539"></a><a name="p1523319466539"></a>获取所有设备列表信息</p>
76094332d3Sopenharmony_ci</td>
77094332d3Sopenharmony_ci</tr>
78094332d3Sopenharmony_ci<tr id="row1513316577554"><td class="cellrowborder" rowspan="3" align="left" valign="top" width="12.031203120312032%" headers="mcps1.2.4.1.1 "><p id="p14171441118"><a name="p14171441118"></a><a name="p14171441118"></a></p>
79094332d3Sopenharmony_ci<p id="p57063567463"><a name="p57063567463"></a><a name="p57063567463"></a>input_reporter.h</p>
80094332d3Sopenharmony_ci</td>
81094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="66.006600660066%" headers="mcps1.2.4.1.2 "><p id="p14794193010499"><a name="p14794193010499"></a><a name="p14794193010499"></a>int32_t (*RegisterReportCallback)(uint32_t devIndex, InputReportEventCb *callback);</p>
82094332d3Sopenharmony_ci</td>
83094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" width="21.96219621962196%" headers="mcps1.2.4.1.3 "><p id="p72331046145316"><a name="p72331046145316"></a><a name="p72331046145316"></a>注册input设备的回调</p>
84094332d3Sopenharmony_ci</td>
85094332d3Sopenharmony_ci</tr>
86094332d3Sopenharmony_ci<tr id="row171331657185514"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p123921240124910"><a name="p123921240124910"></a><a name="p123921240124910"></a>int32_t (*UnregisterReportCallback)(uint32_t devIndex);</p>
87094332d3Sopenharmony_ci</td>
88094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p19233174675311"><a name="p19233174675311"></a><a name="p19233174675311"></a>注销input设备的回调</p>
89094332d3Sopenharmony_ci</td>
90094332d3Sopenharmony_ci</tr>
91094332d3Sopenharmony_ci<tr id="row41331557165518"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p11499124705012"><a name="p11499124705012"></a><a name="p11499124705012"></a>void (*ReportEventPkgCallback)(const EventPackage **pkgs, uint32_t count);</p>
92094332d3Sopenharmony_ci</td>
93094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p52331246135315"><a name="p52331246135315"></a><a name="p52331246135315"></a>上报数据的回调函数</p>
94094332d3Sopenharmony_ci</td>
95094332d3Sopenharmony_ci</tr>
96094332d3Sopenharmony_ci<tr id="row1452521025813"><td class="cellrowborder" rowspan="9" align="left" valign="top" width="12.031203120312032%" headers="mcps1.2.4.1.1 "><p id="p1285144710118"><a name="p1285144710118"></a><a name="p1285144710118"></a></p>
97094332d3Sopenharmony_ci<p id="p854114711117"><a name="p854114711117"></a><a name="p854114711117"></a></p>
98094332d3Sopenharmony_ci<p id="p15741647517"><a name="p15741647517"></a><a name="p15741647517"></a></p>
99094332d3Sopenharmony_ci<p id="p7909447418"><a name="p7909447418"></a><a name="p7909447418"></a></p>
100094332d3Sopenharmony_ci<p id="p12525910165811"><a name="p12525910165811"></a><a name="p12525910165811"></a>input_controller.h</p>
101094332d3Sopenharmony_ci<p id="p942322013262"><a name="p942322013262"></a><a name="p942322013262"></a></p>
102094332d3Sopenharmony_ci<p id="p1040515339526"><a name="p1040515339526"></a><a name="p1040515339526"></a></p>
103094332d3Sopenharmony_ci<p id="p19405533115216"><a name="p19405533115216"></a><a name="p19405533115216"></a></p>
104094332d3Sopenharmony_ci</td>
105094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="66.006600660066%" headers="mcps1.2.4.1.2 "><p id="p14402132815113"><a name="p14402132815113"></a><a name="p14402132815113"></a>int32_t (*SetPowerStatus)(uint32_t devIndex, uint32_t status);</p>
106094332d3Sopenharmony_ci</td>
107094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" width="21.96219621962196%" headers="mcps1.2.4.1.3 "><p id="p1510016065413"><a name="p1510016065413"></a><a name="p1510016065413"></a>设置电源状态</p>
108094332d3Sopenharmony_ci</td>
109094332d3Sopenharmony_ci</tr>
110094332d3Sopenharmony_ci<tr id="row172902161193"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p2062643555111"><a name="p2062643555111"></a><a name="p2062643555111"></a>int32_t (*GetPowerStatus)(uint32_t devIndex, uint32_t *status);</p>
111094332d3Sopenharmony_ci</td>
112094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p1323394615539"><a name="p1323394615539"></a><a name="p1323394615539"></a>获取电源状态</p>
113094332d3Sopenharmony_ci</td>
114094332d3Sopenharmony_ci</tr>
115094332d3Sopenharmony_ci<tr id="row1948179195"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p8207194414510"><a name="p8207194414510"></a><a name="p8207194414510"></a>int32_t (*GetDeviceType)(uint32_t devIndex, uint32_t *deviceType);</p>
116094332d3Sopenharmony_ci</td>
117094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p18233154655317"><a name="p18233154655317"></a><a name="p18233154655317"></a>获取设备类型</p>
118094332d3Sopenharmony_ci</td>
119094332d3Sopenharmony_ci</tr>
120094332d3Sopenharmony_ci<tr id="row1331121813197"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1321125217514"><a name="p1321125217514"></a><a name="p1321125217514"></a>int32_t (*GetChipInfo)(uint32_t devIndex, char *chipInfo, uint32_t length);</p>
121094332d3Sopenharmony_ci</td>
122094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p14233104614536"><a name="p14233104614536"></a><a name="p14233104614536"></a>获取器件编码信息</p>
123094332d3Sopenharmony_ci</td>
124094332d3Sopenharmony_ci</tr>
125094332d3Sopenharmony_ci<tr id="row1393181951920"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p79410191191"><a name="p79410191191"></a><a name="p79410191191"></a>int32_t (*GetVendorName)(uint32_t devIndex, char *vendorName, uint32_t length);</p>
126094332d3Sopenharmony_ci</td>
127094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p7233124695317"><a name="p7233124695317"></a><a name="p7233124695317"></a>获取模组厂商名</p>
128094332d3Sopenharmony_ci</td>
129094332d3Sopenharmony_ci</tr>
130094332d3Sopenharmony_ci<tr id="row8960121911198"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p17712110185218"><a name="p17712110185218"></a><a name="p17712110185218"></a>int32_t (*GetChipName)(uint32_t devIndex, char *chipName, uint32_t length);</p>
131094332d3Sopenharmony_ci</td>
132094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p923316468539"><a name="p923316468539"></a><a name="p923316468539"></a>获取芯片厂商名</p>
133094332d3Sopenharmony_ci</td>
134094332d3Sopenharmony_ci</tr>
135094332d3Sopenharmony_ci<tr id="row10812112081919"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p20738171735219"><a name="p20738171735219"></a><a name="p20738171735219"></a>int32_t (*SetGestureMode)(uint32_t devIndex, uint32_t gestureMode);</p>
136094332d3Sopenharmony_ci</td>
137094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p5233546175310"><a name="p5233546175310"></a><a name="p5233546175310"></a>设置手势模式</p>
138094332d3Sopenharmony_ci</td>
139094332d3Sopenharmony_ci</tr>
140094332d3Sopenharmony_ci<tr id="row12422102092613"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p56701925155215"><a name="p56701925155215"></a><a name="p56701925155215"></a>int32_t (*RunCapacitanceTest)(uint32_t devIndex, uint32_t testType, char *result, uint32_t length);</p>
141094332d3Sopenharmony_ci</td>
142094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p13234346125310"><a name="p13234346125310"></a><a name="p13234346125310"></a>执行容值自检测试</p>
143094332d3Sopenharmony_ci</td>
144094332d3Sopenharmony_ci</tr>
145094332d3Sopenharmony_ci<tr id="row124041233155211"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p16405113375215"><a name="p16405113375215"></a><a name="p16405113375215"></a>int32_t (*RunExtraCommand)(uint32_t devIndex, InputExtraCmd *cmd);</p>
146094332d3Sopenharmony_ci</td>
147094332d3Sopenharmony_ci<td class="cellrowborder" align="center" valign="top" headers="mcps1.2.4.1.2 "><p id="p192341246185314"><a name="p192341246185314"></a><a name="p192341246185314"></a>执行拓展指令</p>
148094332d3Sopenharmony_ci</td>
149094332d3Sopenharmony_ci</tr>
150094332d3Sopenharmony_ci</tbody>
151094332d3Sopenharmony_ci</table>
152094332d3Sopenharmony_ci
153094332d3Sopenharmony_ci### 使用说明<a name="section129654513264"></a>
154094332d3Sopenharmony_ci
155094332d3Sopenharmony_ci该仓核心功能是提供Input驱动能力接口供上层输入系统服务调用,提供的驱动能力接口统一归属为HDI接口层。
156094332d3Sopenharmony_ci
157094332d3Sopenharmony_ci通过如下简要示例代码说明Input HDI接口的使用:
158094332d3Sopenharmony_ci
159094332d3Sopenharmony_ci```
160094332d3Sopenharmony_ci#include "input_manager.h"
161094332d3Sopenharmony_ci#define DEV_INDEX 1
162094332d3Sopenharmony_ci
163094332d3Sopenharmony_ciIInputInterface *g_inputInterface;
164094332d3Sopenharmony_ciInputReportEventCb g_callback;
165094332d3Sopenharmony_ci
166094332d3Sopenharmony_ci/* 定义数据上报的回调函数 */
167094332d3Sopenharmony_cistatic void ReportEventPkgCallback(const EventPackage **pkgs, uint32_t count)
168094332d3Sopenharmony_ci{
169094332d3Sopenharmony_ci    if (pkgs == NULL || count > MAX_PKG_NUM) {
170094332d3Sopenharmony_ci        return;
171094332d3Sopenharmony_ci    }
172094332d3Sopenharmony_ci    for (uint32_t i = 0; i < count; i++) {
173094332d3Sopenharmony_ci        HDF_LOGI("%s: pkgs[%d] = 0x%x, 0x%x, %d", __func__, i, pkgs[i]->type, pkgs[i]->code, pkgs[i]->value);
174094332d3Sopenharmony_ci    }
175094332d3Sopenharmony_ci}
176094332d3Sopenharmony_ci
177094332d3Sopenharmony_ciint InputServiceSample(void)
178094332d3Sopenharmony_ci{
179094332d3Sopenharmony_ci    uint32_t devType = INIT_DEFAULT_VALUE;
180094332d3Sopenharmony_ci
181094332d3Sopenharmony_ci    /* 获取Input驱动能力接口 */
182094332d3Sopenharmony_ci    int ret = GetInputInterface(&g_inputInterface);
183094332d3Sopenharmony_ci    if (ret != INPUT_SUCCESS) {
184094332d3Sopenharmony_ci        HDF_LOGE("%s: get input interfaces failed, ret = %d", __func__, ret);
185094332d3Sopenharmony_ci        return ret;
186094332d3Sopenharmony_ci    }
187094332d3Sopenharmony_ci
188094332d3Sopenharmony_ci    INPUT_CHECK_NULL_POINTER(g_inputInterface, INPUT_NULL_PTR);
189094332d3Sopenharmony_ci    INPUT_CHECK_NULL_POINTER(g_inputInterface->iInputManager, INPUT_NULL_PTR);
190094332d3Sopenharmony_ci    /* 打开特定的input设备 */
191094332d3Sopenharmony_ci    ret = g_inputInterface->iInputManager->OpenInputDevice(DEV_INDEX);
192094332d3Sopenharmony_ci    if (ret) {
193094332d3Sopenharmony_ci        HDF_LOGE("%s: open input device failed, ret = %d", __func__, ret);
194094332d3Sopenharmony_ci 	return ret;
195094332d3Sopenharmony_ci    }
196094332d3Sopenharmony_ci
197094332d3Sopenharmony_ci    INPUT_CHECK_NULL_POINTER(g_inputInterface->iInputController, INPUT_NULL_PTR);
198094332d3Sopenharmony_ci    /* 获取对应input设备的类型 */
199094332d3Sopenharmony_ci    ret = g_inputInterface->iInputController->GetDeviceType(DEV_INDEX, &devType);
200094332d3Sopenharmony_ci    if (ret) {
201094332d3Sopenharmony_ci        HDF_LOGE("%s: get device type failed, ret: %d", __FUNCTION__, ret);
202094332d3Sopenharmony_ci        return ret;
203094332d3Sopenharmony_ci    }
204094332d3Sopenharmony_ci    HDF_LOGI("%s: device1's type is %u\n", __FUNCTION__, devType);
205094332d3Sopenharmony_ci
206094332d3Sopenharmony_ci    /* 给特定的input设备注册数据上报回调函数 */
207094332d3Sopenharmony_ci    g_callback.ReportEventPkgCallback = ReportEventPkgCallback;
208094332d3Sopenharmony_ci    INPUT_CHECK_NULL_POINTER(g_inputInterface->iInputReporter, INPUT_NULL_PTR);
209094332d3Sopenharmony_ci    ret  = g_inputInterface->iInputReporter->RegisterReportCallback(DEV_INDEX, &g_callback);
210094332d3Sopenharmony_ci    if (ret) {
211094332d3Sopenharmony_ci        HDF_LOGE("%s: register callback failed, ret: %d", __FUNCTION__, ret);
212094332d3Sopenharmony_ci	return ret;
213094332d3Sopenharmony_ci    }
214094332d3Sopenharmony_ci    HDF_LOGI("%s: wait 10s for testing, pls touch the panel now", __FUNCTION__);
215094332d3Sopenharmony_ci    OsalMSleep(KEEP_ALIVE_TIME_MS);
216094332d3Sopenharmony_ci
217094332d3Sopenharmony_ci    /* 注销特定input设备上的回调函数 */
218094332d3Sopenharmony_ci    ret  = g_inputInterface->iInputReporter->UnregisterReportCallback(DEV_INDEX);
219094332d3Sopenharmony_ci    if (ret) {
220094332d3Sopenharmony_ci        HDF_LOGE("%s: unregister callback failed, ret: %d", __FUNCTION__, ret);
221094332d3Sopenharmony_ci        return ret;
222094332d3Sopenharmony_ci    }
223094332d3Sopenharmony_ci
224094332d3Sopenharmony_ci    /* 关闭特定的input设备 */
225094332d3Sopenharmony_ci    ret = g_inputInterface->iInputManager->CloseInputDevice(DEV_INDEX);
226094332d3Sopenharmony_ci    if (ret) {
227094332d3Sopenharmony_ci        HDF_LOGE("%s: close device failed, ret: %d", __FUNCTION__, ret);
228094332d3Sopenharmony_ci	return ret;
229094332d3Sopenharmony_ci    }
230094332d3Sopenharmony_ci    return 0;
231094332d3Sopenharmony_ci}
232094332d3Sopenharmony_ci```
233094332d3Sopenharmony_ci
234094332d3Sopenharmony_ci### 用例说明<a name="section129654513265"></a>
235094332d3Sopenharmony_ci
236094332d3Sopenharmony_ci执行input相关用例,需要提前插入一个hid设备。
237094332d3Sopenharmony_ci
238094332d3Sopenharmony_ci相关用例说明:
239094332d3Sopenharmony_ci
240094332d3Sopenharmony_ci* drivers/peripheral/input/test中的用例
241094332d3Sopenharmony_ci
242094332d3Sopenharmony_ci* test/xts/hats/hdf/input中的用例
243094332d3Sopenharmony_ci
244094332d3Sopenharmony_ci## 相关仓<a name="section1371113476307"></a>
245094332d3Sopenharmony_ci
246094332d3Sopenharmony_ci[驱动子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E9%A9%B1%E5%8A%A8%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
247094332d3Sopenharmony_ci
248094332d3Sopenharmony_ci[drivers\_framework](https://gitee.com/openharmony/drivers_framework/blob/master/README_zh.md)
249094332d3Sopenharmony_ci
250094332d3Sopenharmony_ci[drivers\_adapter](https://gitee.com/openharmony/drivers_adapter/blob/master/README_zh.md)
251094332d3Sopenharmony_ci
252094332d3Sopenharmony_ci[drivers\_adapter\_khdf\_linux](https://gitee.com/openharmony/drivers_adapter_khdf_linux/blob/master/README_zh.md)
253094332d3Sopenharmony_ci
254094332d3Sopenharmony_ci[drivers\_peripheral](https://gitee.com/openharmony/drivers_peripheral)
255094332d3Sopenharmony_ci
256