1# HID DDK
2
3
4## 概述
5
6提供HID DDK接口,包括创建设备、发送事件、销毁设备。
7
8**系统能力:** SystemCapability.Driver.HID.Extension
9
10**起始版本:** 
11
1211
13
14## 汇总
15
16
17### 文件
18
19| 名称 | 描述 | 
20| -------- | -------- |
21| [hid_ddk_api.h](hid__ddk__api_8h.md) | 声明主机侧访问输入设备的HID DDK接口。<br/>引用文件:&lt;hid/hid_ddk_api.h&gt; <br/>库: libhid.z.so | 
22| [hid_ddk_types.h](hid__ddk__types_8h.md) | 提供HID DDK中的枚举变量与结构体定义。<br/>引用文件:&lt;hid/hid_ddk_types.h&gt; <br/>库: libhid.z.so  | 
23
24
25### 结构体
26
27| 名称 | 描述 | 
28| -------- | -------- |
29| [Hid_EmitItem](_hid___emit_item.md) | 事件信息。  | 
30| [Hid_Device](_hid___device.md) | 设备基本信息。  | 
31| [Hid_EventTypeArray](_hid___event_type_array.md) | 事件类型编码数组。  | 
32| [Hid_KeyCodeArray](_hid___key_code_array.md) | 键值属性数组。  | 
33| [Hid_AbsAxesArray](_hid___abs_axes_array.md) | 绝对坐标属性数组。  | 
34| [Hid_RelAxesArray](_hid___rel_axes_array.md) | 相对坐标属性数组。  | 
35| [Hid_MscEventArray](_hid___msc_event_array.md) | 其它特殊事件属性数组。  | 
36| [Hid_EventProperties](_hid___event_properties.md) | 设备关注事件属性。  | 
37
38
39### 类型定义
40
41| 名称 | 描述 | 
42| -------- | -------- |
43| [Hid_EmitItem](#hid_emititem) | 事件信息。  | 
44| [Hid_Device](#hid_device) | 设备基本信息。  | 
45| [Hid_EventTypeArray](#hid_eventtypearray) | 事件类型编码数组。  | 
46| [Hid_KeyCodeArray](#hid_keycodearray) | 键值属性数组。  | 
47| [Hid_AbsAxesArray](#hid_absaxesarray) | 绝对坐标属性数组。  | 
48| [Hid_RelAxesArray](#hid_relaxesarray) | 相对坐标属性数组。  | 
49| [Hid_MscEventArray](#hid_msceventarray) | 其它特殊事件属性数组。  | 
50| [Hid_EventProperties](#hid_eventproperties) | 设备关注事件属性。  | 
51
52
53### 枚举
54
55| 名称 | 描述 | 
56| -------- | -------- |
57| [Hid_DeviceProp](#hid_deviceprop) {<br/>HID_PROP_POINTER = 0x00, HID_PROP_DIRECT = 0x01, HID_PROP_BUTTON_PAD = 0x02, HID_PROP_SEMI_MT = 0x03,<br/>HID_PROP_TOP_BUTTON_PAD = 0x04, HID_PROP_POINTING_STICK = 0x05, HID_PROP_ACCELEROMETER = 0x06<br/>} | 输入设备特性定义。  | 
58| [Hid_EventType](#hid_eventtype) {<br/>HID_EV_SYN = 0x00, HID_EV_KEY = 0x01, HID_EV_REL = 0x02, HID_EV_ABS = 0x03,<br/>HID_EV_MSC = 0x04<br/>} | 事件类型。  | 
59| [Hid_SynEvent](#hid_synevent) { HID_SYN_REPORT = 0, HID_SYN_CONFIG = 1, HID_SYN_MT_REPORT = 2, HID_SYN_DROPPED = 3 } | 同步事件编码。  | 
60| [Hid_KeyCode](#hid_keycode) {<br/>HID_KEY_A = 30, HID_KEY_B = 48, HID_KEY_C = 46, HID_KEY_D = 32,<br/>HID_KEY_E = 18, HID_KEY_F = 33, HID_KEY_G = 34, HID_KEY_H = 35,<br/>HID_KEY_I = 23, HID_KEY_J = 36, HID_KEY_K = 37, HID_KEY_L = 38,<br/>HID_KEY_M = 50, HID_KEY_N = 49, HID_KEY_O = 24, HID_KEY_P = 25,<br/>HID_KEY_Q = 16, HID_KEY_R = 19, HID_KEY_S = 31, HID_KEY_T = 20,<br/>HID_KEY_U = 22, HID_KEY_V = 47, HID_KEY_W = 17, HID_KEY_X = 45,<br/>HID_KEY_Y = 21, HID_KEY_Z = 44, HID_KEY_ESC = 1, HID_KEY_0 = 11,<br/>HID_KEY_1 = 2, HID_KEY_2 = 3, HID_KEY_3 = 4, HID_KEY_4 = 5,<br/>HID_KEY_5 = 6, HID_KEY_6 = 7, HID_KEY_7 = 8, HID_KEY_8 = 9,<br/>HID_KEY_9 = 10, HID_KEY_GRAVE = 41, HID_KEY_MINUS = 12, HID_KEY_EQUALS = 13,<br/>HID_KEY_BACKSPACE = 14, HID_KEY_LEFT_BRACKET = 26, HID_KEY_RIGHT_BRACKET = 27, HID_KEY_ENTER = 28,<br/>HID_KEY_LEFT_SHIFT = 42, HID_KEY_BACKSLASH = 43, HID_KEY_SEMICOLON = 39, HID_KEY_APOSTROPHE = 40,<br/>HID_KEY_SPACE = 57, HID_KEY_SLASH = 53, HID_KEY_COMMA = 51, HID_KEY_PERIOD = 52,<br/>HID_KEY_RIGHT_SHIFT = 54, HID_KEY_NUMPAD_0 = 82, HID_KEY_NUMPAD_1 = 79, HID_KEY_NUMPAD_2 = 80,<br/>HID_KEY_NUMPAD_3 = 81, HID_KEY_NUMPAD_4 = 75, HID_KEY_NUMPAD_5 = 76, HID_KEY_NUMPAD_6 = 77,<br/>HID_KEY_NUMPAD_7 = 71, HID_KEY_NUMPAD_8 = 72, HID_KEY_NUMPAD_9 = 73, HID_KEY_NUMPAD_DIVIDE = 70,<br/>HID_KEY_NUMPAD_MULTIPLY = 55, HID_KEY_NUMPAD_SUBTRACT = 74, HID_KEY_NUMPAD_ADD = 78, HID_KEY_NUMPAD_DOT = 83,<br/>HID_KEY_SYSRQ = 99, HID_KEY_MUTE = 113, HID_KEY_VOLUME_DOWN = 114, HID_KEY_VOLUME_UP = 115,<br/>HID_KEY_BRIGHTNESS_DOWN = 224, HID_KEY_BRIGHTNESS_UP = 225, HID_BTN_0 = 0x100, HID_BTN_1 = 0x101,<br/>HID_BTN_2 = 0x102, HID_BTN_3 = 0x103, HID_BTN_4 = 0x104, HID_BTN_5 = 0x105,<br/>HID_BTN_6 = 0x106, HID_BTN_7 = 0x107, HID_BTN_8 = 0x108, HID_BTN_9 = 0x109,<br/>HID_BTN_LEFT = 0x110, HID_BTN_RIGHT = 0x111, HID_BTN_MIDDLE = 0x112, HID_BTN_SIDE = 0x113,<br/>HID_BTN_EXTRA = 0x114, HID_BTN_FORWARD = 0x115, HID_BTN_BACKWARD = 0x116, HID_BTN_TASK = 0x117,<br/>HID_BTN_TOOL_PEN = 0x140, HID_BTN_TOOL_RUBBER = 0x141, HID_BTN_TOOL_BRUSH = 0x142, HID_BTN_TOOL_PENCIL = 0x143,<br/>HID_BTN_TOOL_AIRBRUSH = 0x144, HID_BTN_TOOL_FINGER = 0x145, HID_BTN_TOOL_MOUSE = 0x146, HID_BTN_TOOL_LENS = 0x147,<br/>HID_BTN_TOOL_QUINT_TAP = 0x148, HID_BTN_STYLUS3 = 0x149, HID_BTN_TOUCH = 0x14a, HID_BTN_STYLUS = 0x14b,<br/>HID_BTN_STYLUS2 = 0x14c, HID_BTN_TOOL_DOUBLE_TAP = 0x14d, HID_BTN_TOOL_TRIPLE_TAP = 0x14e, HID_BTN_TOOL_QUAD_TAP = 0x14f,<br/>HID_BTN_WHEEL = 0x150<br/>} | 键值编码。  | 
61| [Hid_AbsAxes](#hid_absaxes) {<br/>HID_ABS_X = 0x00, HID_ABS_Y = 0x01, HID_ABS_Z = 0x02, HID_ABS_RX = 0x03,<br/>HID_ABS_RY = 0x04, HID_ABS_RZ = 0x05, HID_ABS_THROTTLE = 0x06, HID_ABS_RUDDER = 0x07,<br/>HID_ABS_WHEEL = 0x08, HID_ABS_GAS = 0x09, HID_ABS_BRAKE = 0x0a, HID_ABS_HAT0X = 0x10,<br/>HID_ABS_HAT0Y = 0x11, HID_ABS_HAT1X = 0x12, HID_ABS_HAT1Y = 0x13, HID_ABS_HAT2X = 0x14,<br/>HID_ABS_HAT2Y = 0x15, HID_ABS_HAT3X = 0x16, HID_ABS_HAT3Y = 0x17, HID_ABS_PRESSURE = 0x18,<br/>HID_ABS_DISTANCE = 0x19, HID_ABS_TILT_X = 0x1a, HID_ABS_TILT_Y = 0x1b, HID_ABS_TOOL_WIDTH = 0x1c,<br/>HID_ABS_VOLUME = 0x20, HID_ABS_MISC = 0x28<br/>} | 绝对坐标编码。  | 
62| [Hid_RelAxes](#hid_relaxes) {<br/>HID_REL_X = 0x00, HID_REL_Y = 0x01, HID_REL_Z = 0x02, HID_REL_RX = 0x03,<br/>HID_REL_RY = 0x04, HID_REL_RZ = 0x05, HID_REL_HWHEEL = 0x06, HID_REL_DIAL = 0x07,<br/>HID_REL_WHEEL = 0x08, HID_REL_MISC = 0x09, HID_REL_RESERVED = 0x0a, HID_REL_WHEEL_HI_RES = 0x0b,<br/>HID_REL_HWHEEL_HI_RES = 0x0c<br/>} | 相对坐标编码。  | 
63| [Hid_MscEvent](#hid_mscevent) {<br/>HID_MSC_SERIAL = 0x00, HID_MSC_PULSE_LED = 0x01, HID_MSC_GESTURE = 0x02, HID_MSC_RAW = 0x03,<br/>HID_MSC_SCAN = 0x04, HID_MSC_TIMESTAMP = 0x05<br/>} | 不适合其它类型的输入事件编码。  | 
64| [Hid_DdkErrCode](#hid_ddkerrcode) {<br/>HID_DDK_SUCCESS = 0, HID_DDK_FAILURE = -1, HID_DDK_INVALID_PARAMETER = -2, HID_DDK_INVALID_OPERATION = -3,<br/>HID_DDK_NULL_PTR = -4, HID_DDK_TIMEOUT = -5, HID_DDK_NO_PERM = -6<br/>} | HID DDK错误码定义。  | 
65
66
67### 函数
68
69| 名称 | 描述 | 
70| -------- | -------- |
71| [OH_Hid_CreateDevice](#oh_hid_createdevice) ([Hid_Device](_hid___device.md) \*hidDevice, [Hid_EventProperties](_hid___event_properties.md) \*hidEventProperties) | 创建设备。  | 
72| [OH_Hid_EmitEvent](#oh_hid_emitevent) (int32_t deviceId, const [Hid_EmitItem](_hid___emit_item.md) items[], uint16_t length) | 向指定设备发送事件列表。  | 
73| [OH_Hid_DestroyDevice](#oh_hid_destroydevice) (int32_t deviceId) | 销毁设备。  | 
74
75
76### 变量
77
78| 名称 | 描述 | 
79| -------- | -------- |
80| [Hid_EmitItem::type](#type) | 事件类型  | 
81| [Hid_EmitItem::code](#code) | 事件编码  | 
82| [Hid_EmitItem::value](#value) | 事件值  | 
83| [Hid_Device::deviceName](#devicename) | 设备名称  | 
84| [Hid_Device::vendorId](#vendorid) | 厂商ID  | 
85| [Hid_Device::productId](#productid) | 产品ID  | 
86| [Hid_Device::version](#version) | 版本号  | 
87| [Hid_Device::bustype](#bustype) | 总线类型  | 
88| [Hid_Device::properties](#properties) | 设备特性  | 
89| [Hid_Device::propLength](#proplength) | 设备特性数量  | 
90| [Hid_EventTypeArray::hidEventType](#hideventtype) | 事件类型编码  | 
91| [Hid_EventTypeArray::length](#length-15) | 数组长度  | 
92| [Hid_KeyCodeArray::hidKeyCode](#hidkeycode) | 键值编码  | 
93| [Hid_KeyCodeArray::length](#length-25) | 数组长度  | 
94| [Hid_AbsAxesArray::hidAbsAxes](#hidabsaxes) | 绝对坐标属性编码  | 
95| [Hid_AbsAxesArray::length](#length-35) | 数组长度  | 
96| [Hid_RelAxesArray::hidRelAxes](#hidrelaxes) | 相对坐标属性编码  | 
97| [Hid_RelAxesArray::length](#length-45) | 数组长度  | 
98| [Hid_MscEventArray::hidMscEvent](#hidmscevent) | 其它特殊事件属性编码  | 
99| [Hid_MscEventArray::length](#length-55) | 数组长度  | 
100| [Hid_EventProperties::hidEventTypes](#hideventtypes) | 事件类型属性编码数组  | 
101| [Hid_EventProperties::hidKeys](#hidkeys) | 键值属性编码数组  | 
102| [Hid_EventProperties::hidAbs](#hidabs) | 绝对坐标属性编码数组  | 
103| [Hid_EventProperties::hidRelBits](#hidrelbits) | 相对坐标属性编码数组  | 
104| [Hid_EventProperties::hidMiscellaneous](#hidmiscellaneous) | 其它特殊事件属性编码数组  | 
105| [Hid_EventProperties::hidAbsMax](#hidabsmax) [64] | 绝对坐标属性最大值  | 
106| [Hid_EventProperties::hidAbsMin](#hidabsmin) [64] | 绝对坐标属性最小值  | 
107| [Hid_EventProperties::hidAbsFuzz](#hidabsfuzz) [64] | 绝对坐标属性模糊值  | 
108| [Hid_EventProperties::hidAbsFlat](#hidabsflat) [64] | 绝对坐标属性固定值  | 
109
110
111## 类型定义说明
112
113
114### Hid_AbsAxesArray
115
116```
117typedef struct Hid_AbsAxesArrayHid_AbsAxesArray
118```
119**描述**
120绝对坐标属性数组。
121
122**起始版本:** 11
123
124
125### Hid_Device
126
127```
128typedef struct Hid_DeviceHid_Device
129```
130**描述**
131设备基本信息。
132
133**起始版本:** 11
134
135
136### Hid_EmitItem
137
138```
139typedef struct Hid_EmitItemHid_EmitItem
140```
141**描述**
142事件信息。
143
144**起始版本:** 11
145
146
147### Hid_EventProperties
148
149```
150typedef struct Hid_EventPropertiesHid_EventProperties
151```
152**描述**
153设备关注事件属性。
154
155**起始版本:** 11
156
157
158### Hid_EventTypeArray
159
160```
161typedef struct Hid_EventTypeArrayHid_EventTypeArray
162```
163**描述**
164事件类型编码数组。
165
166**起始版本:** 11
167
168
169### Hid_KeyCodeArray
170
171```
172typedef struct Hid_KeyCodeArrayHid_KeyCodeArray
173```
174**描述**
175键值属性数组。
176
177**起始版本:** 11
178
179
180### Hid_MscEventArray
181
182```
183typedef struct Hid_MscEventArrayHid_MscEventArray
184```
185**描述**
186其它特殊事件属性数组。
187
188**起始版本:** 11
189
190
191### Hid_RelAxesArray
192
193```
194typedef struct Hid_RelAxesArrayHid_RelAxesArray
195```
196**描述**
197相对坐标属性数组。
198
199**起始版本:** 11
200
201
202## 枚举类型说明
203
204
205### Hid_AbsAxes
206
207```
208enum Hid_AbsAxes
209```
210**描述**
211绝对坐标编码。
212
213**起始版本:** 11
214
215| 枚举值 | 描述 | 
216| -------- | -------- |
217| HID_ABS_X  | X轴 | 
218| HID_ABS_Y  | Y轴 | 
219| HID_ABS_Z  | Z轴 | 
220| HID_ABS_RX  | 右模拟摇杆的 X 轴 | 
221| HID_ABS_RY  | 右模拟摇杆的 Y 轴 | 
222| HID_ABS_RZ  | 右模拟摇杆的 Z 轴 | 
223| HID_ABS_THROTTLE  | 油门 | 
224| HID_ABS_RUDDER  | 舵 | 
225| HID_ABS_WHEEL  | 滚轮 | 
226| HID_ABS_GAS  | 气 | 
227| HID_ABS_BRAKE  | 制动 | 
228| HID_ABS_HAT0X  | HAT0X | 
229| HID_ABS_HAT0Y  | HAT0Y | 
230| HID_ABS_HAT1X  | HAT1X | 
231| HID_ABS_HAT1Y  | HAT1Y | 
232| HID_ABS_HAT2X  | HAT2X | 
233| HID_ABS_HAT2Y  | HAT2Y | 
234| HID_ABS_HAT3X  | HAT3X | 
235| HID_ABS_HAT3Y  | HAT3Y | 
236| HID_ABS_PRESSURE  | 压力 | 
237| HID_ABS_DISTANCE  | 距离 | 
238| HID_ABS_TILT_X  | X轴倾斜度 | 
239| HID_ABS_TILT_Y  | Y轴倾斜度 | 
240| HID_ABS_TOOL_WIDTH  | 触摸工具的宽度 | 
241| HID_ABS_VOLUME  | 音量 | 
242| HID_ABS_MISC  | 其它 | 
243
244
245### Hid_DdkErrCode
246
247```
248enum Hid_DdkErrCode
249```
250**描述**
251HID DDK错误码定义。
252
253**起始版本:** 11
254
255| 枚举值 | 描述 | 
256| -------- | -------- |
257| HID_DDK_SUCCESS  | 操作成功 | 
258| HID_DDK_FAILURE  | 操作失败 | 
259| HID_DDK_INVALID_PARAMETER  | 非法参数 | 
260| HID_DDK_INVALID_OPERATION  | 非法操作 | 
261| HID_DDK_NULL_PTR  | 空指针异常 | 
262| HID_DDK_TIMEOUT  | 超时 | 
263| HID_DDK_NO_PERM  | 没有权限 | 
264
265
266### Hid_DeviceProp
267
268```
269enum Hid_DeviceProp
270```
271**描述**
272输入设备特性定义。
273
274**起始版本:** 11
275
276| 枚举值 | 描述 | 
277| -------- | -------- |
278| HID_PROP_POINTER  | 指针设备 | 
279| HID_PROP_DIRECT  | 直接输入设备 | 
280| HID_PROP_BUTTON_PAD  | 底部按键触摸设备 | 
281| HID_PROP_SEMI_MT  | 全多点触控设备 | 
282| HID_PROP_TOP_BUTTON_PAD  | 顶部软按键触摸设备 | 
283| HID_PROP_POINTING_STICK  | 指点杆设备 | 
284| HID_PROP_ACCELEROMETER  | 加速度传感器设备 | 
285
286
287### Hid_EventType
288
289```
290enum Hid_EventType
291```
292**描述**
293事件类型。
294
295**起始版本:** 11
296
297| 枚举值 | 描述 | 
298| -------- | -------- |
299| HID_EV_SYN  | 同步事件 | 
300| HID_EV_KEY  | 按键事件 | 
301| HID_EV_REL  | 相对坐标事件 | 
302| HID_EV_ABS  | 绝对坐标事件 | 
303| HID_EV_MSC  | 特殊事件 | 
304
305
306### Hid_KeyCode
307
308```
309enum Hid_KeyCode
310```
311**描述**
312键值编码。
313
314**起始版本:** 11
315
316| 枚举值 | 描述 | 
317| -------- | -------- |
318| HID_KEY_A  | 键A | 
319| HID_KEY_B  | 键B | 
320| HID_KEY_C  | 键C | 
321| HID_KEY_D  | 键D | 
322| HID_KEY_E  | 键E | 
323| HID_KEY_F  | 键F | 
324| HID_KEY_G  | 键G | 
325| HID_KEY_H  | 键H | 
326| HID_KEY_I  | 键I | 
327| HID_KEY_J  | 键J | 
328| HID_KEY_K  | 键K | 
329| HID_KEY_L  | 键L | 
330| HID_KEY_M  | 键M | 
331| HID_KEY_N  | 键N | 
332| HID_KEY_O  | 键O | 
333| HID_KEY_P  | 键P | 
334| HID_KEY_Q  | 键Q | 
335| HID_KEY_R  | 键R | 
336| HID_KEY_S  | 键S | 
337| HID_KEY_T  | 键T | 
338| HID_KEY_U  | 键U | 
339| HID_KEY_V  | 键V | 
340| HID_KEY_W  | 键W | 
341| HID_KEY_X  | 键X | 
342| HID_KEY_Y  | 键Y | 
343| HID_KEY_Z  | 键Z | 
344| HID_KEY_ESC  | 键ESC | 
345| HID_KEY_0  | 键0 | 
346| HID_KEY_1  | 键1 | 
347| HID_KEY_2  | 键2 | 
348| HID_KEY_3  | 键3 | 
349| HID_KEY_4  | 键4 | 
350| HID_KEY_5  | 键5 | 
351| HID_KEY_6  | 键6 | 
352| HID_KEY_7  | 键7 | 
353| HID_KEY_8  | 键8 | 
354| HID_KEY_9  | 键9 | 
355| HID_KEY_GRAVE  | 键` | 
356| HID_KEY_MINUS  | 键- | 
357| HID_KEY_EQUALS  | 键= | 
358| HID_KEY_BACKSPACE  | 键退格 | 
359| HID_KEY_LEFT_BRACKET  | 键[ | 
360| HID_KEY_RIGHT_BRACKET  | 键] | 
361| HID_KEY_ENTER  | 键回车 | 
362| HID_KEY_LEFT_SHIFT  | 键左shift | 
363| HID_KEY_BACKSLASH  | 键\ | 
364| HID_KEY_SEMICOLON  | 键; | 
365| HID_KEY_APOSTROPHE  | 键' | 
366| HID_KEY_SPACE  | 键空格 | 
367| HID_KEY_SLASH  | 键/ | 
368| HID_KEY_COMMA  | 键, | 
369| HID_KEY_PERIOD  | 键. | 
370| HID_KEY_RIGHT_SHIFT  | 键右shift | 
371| HID_KEY_NUMPAD_0  | 数字键0 | 
372| HID_KEY_NUMPAD_1  | 数字键1 | 
373| HID_KEY_NUMPAD_2  | 数字键2 | 
374| HID_KEY_NUMPAD_3  | 数字键3 | 
375| HID_KEY_NUMPAD_4  | 数字键4 | 
376| HID_KEY_NUMPAD_5  | 数字键5 | 
377| HID_KEY_NUMPAD_6  | 数字键6 | 
378| HID_KEY_NUMPAD_7  | 数字键7 | 
379| HID_KEY_NUMPAD_8  | 数字键8 | 
380| HID_KEY_NUMPAD_9  | 数字键9 | 
381| HID_KEY_NUMPAD_DIVIDE  | 数字键/ | 
382| HID_KEY_NUMPAD_MULTIPLY  | 数字键\* | 
383| HID_KEY_NUMPAD_SUBTRACT  | 数字键- | 
384| HID_KEY_NUMPAD_ADD  | 数字键+ | 
385| HID_KEY_NUMPAD_DOT  | 数字键. | 
386| HID_KEY_SYSRQ  | 键ESC | 
387| HID_KEY_MUTE  | 键静音 | 
388| HID_KEY_VOLUME_DOWN  | 键音量- | 
389| HID_KEY_VOLUME_UP  | 键音量+ | 
390| HID_KEY_BRIGHTNESS_DOWN  | 键亮度- | 
391| HID_KEY_BRIGHTNESS_UP  | 键亮度+ | 
392| HID_BTN_0  | 按钮0 | 
393| HID_BTN_1  | 按钮1 | 
394| HID_BTN_2  | 按钮2 | 
395| HID_BTN_3  | 按钮3 | 
396| HID_BTN_4  | 按钮4 | 
397| HID_BTN_5  | 按钮5 | 
398| HID_BTN_6  | 按钮6 | 
399| HID_BTN_7  | 按钮7 | 
400| HID_BTN_8  | 按钮8 | 
401| HID_BTN_9  | 按钮9 | 
402| HID_BTN_LEFT  | 鼠标按键左键 | 
403| HID_BTN_RIGHT  | 鼠标按键右键 | 
404| HID_BTN_MIDDLE  | 鼠标按键中键 | 
405| HID_BTN_SIDE  | 鼠标侧面按键 | 
406| HID_BTN_EXTRA  | 鼠标附加按键 | 
407| HID_BTN_FORWARD  | 鼠标向前按键 | 
408| HID_BTN_BACKWARD  | 鼠标向后按键 | 
409| HID_BTN_TASK  | 鼠标任务按键 | 
410| HID_BTN_TOOL_PEN  | 画笔 | 
411| HID_BTN_TOOL_RUBBER  | 橡皮擦 | 
412| HID_BTN_TOOL_BRUSH  | 笔刷 | 
413| HID_BTN_TOOL_PENCIL  | 铅笔 | 
414| HID_BTN_TOOL_AIRBRUSH  | 喷枪 | 
415| HID_BTN_TOOL_FINGER  | 手指 | 
416| HID_BTN_TOOL_MOUSE  | 鼠标 | 
417| HID_BTN_TOOL_LENS  | 镜头 | 
418| HID_BTN_TOOL_QUINT_TAP  | 五指触控 | 
419| HID_BTN_STYLUS3  | 手写笔3 | 
420| HID_BTN_TOUCH  | 触摸 | 
421| HID_BTN_STYLUS  | 手写笔 | 
422| HID_BTN_STYLUS2  | 手写笔2 | 
423| HID_BTN_TOOL_DOUBLE_TAP  | 二指触控 | 
424| HID_BTN_TOOL_TRIPLE_TAP  | 三指触控 | 
425| HID_BTN_TOOL_QUAD_TAP  | 四指触控 | 
426| HID_BTN_WHEEL  | 滚轮 | 
427
428
429### Hid_MscEvent
430
431```
432enum Hid_MscEvent
433```
434**描述**
435不适合其它类型的输入事件编码。
436
437**起始版本:** 11
438
439| 枚举值 | 描述 | 
440| -------- | -------- |
441| HID_MSC_SERIAL  | 序列号 | 
442| HID_MSC_PULSE_LED  | 脉冲 | 
443| HID_MSC_GESTURE  | 手势 | 
444| HID_MSC_RAW  | 开始事件 | 
445| HID_MSC_SCAN  | 扫描 | 
446| HID_MSC_TIMESTAMP  | 时间戳 | 
447
448
449### Hid_RelAxes
450
451```
452enum Hid_RelAxes
453```
454**描述**
455相对坐标编码。
456
457**起始版本:** 11
458
459| 枚举值 | 描述 | 
460| -------- | -------- |
461| HID_REL_X  | X轴 | 
462| HID_REL_Y  | Y轴 | 
463| HID_REL_Z  | Z轴 | 
464| HID_REL_RX  | 右模拟摇杆的 X 轴 | 
465| HID_REL_RY  | 右模拟摇杆的 Y 轴 | 
466| HID_REL_RZ  | 右模拟摇杆的 Z 轴 | 
467| HID_REL_HWHEEL  | 水平滚轮 | 
468| HID_REL_DIAL  | 刻度 | 
469| HID_REL_WHEEL  | 滚轮 | 
470| HID_REL_MISC  | 其它 | 
471| HID_REL_RESERVED  | 预留 | 
472| HID_REL_WHEEL_HI_RES  | 高分辨率滚轮 | 
473| HID_REL_HWHEEL_HI_RES  | 高分辨率水平滚轮 | 
474
475
476### Hid_SynEvent
477
478```
479enum Hid_SynEvent
480```
481**描述**
482同步事件编码。
483
484**起始版本:** 11
485
486| 枚举值 | 描述 | 
487| -------- | -------- |
488| HID_SYN_REPORT  | 表示一个事件的结束 | 
489| HID_SYN_CONFIG  | 表示配置同步 | 
490| HID_SYN_MT_REPORT  | 表示多点触摸的ABS数据包结束 | 
491| HID_SYN_DROPPED  | 表示该事件被丢弃 | 
492
493
494## 函数说明
495
496
497### OH_Hid_CreateDevice()
498
499```
500int32_t OH_Hid_CreateDevice (Hid_Device * hidDevice, Hid_EventProperties * hidEventProperties )
501```
502**描述**
503创建设备。
504
505**起始版本:** 11
506
507**参数:**
508
509| 名称 | 描述 | 
510| -------- | -------- |
511| hidDevice | 创建设备需要的基本信息,包括设备名、厂商ID、产品ID等。  | 
512| hidEventProperties | 创建的设备关注的事件,包括事件类型、按键事件属性、绝对坐标事件属性、相对坐标事件属性等。  | 
513
514**Permission:**
515
516ohos.permission.ACCESS_DDK_HID
517
518**返回:**
519
520- deviceID(一个非负的数字):表示调用接口成功。
521- [HID_DDK_NO_PERM](#hid_ddkerrcode):表示权限校验失败。
522- [HID_DDK_INVALID_OPERATION](#hid_ddkerrcode):表示连接hid_ddk服务失败。
523- [HID_DDK_INVALID_PARAMETER](#hid_ddkerrcode):表示参数校验失败。可能原因包括:1. 入参hidDevice为空指针;2. 入参hidEventProperties为空指针;3. properties的长度超过7;4. hidEventTypes的长度超过5;5. hidKeys的长度超过100;6. hidAbs的长度超过26;7.hidRelBits的长度超过13;8. hidMiscellaneous的长度超过6。
524- [HID_DDK_FAILURE](#hid_ddkerrcode):表示设备数量达到最大值200。
525
526### OH_Hid_DestroyDevice()
527
528```
529int32_t OH_Hid_DestroyDevice (int32_t deviceId)
530```
531**描述**
532销毁设备。
533
534**起始版本:** 11
535
536**参数:**
537
538| 名称 | 描述 | 
539| -------- | -------- |
540| deviceId | 设备ID。  | 
541
542**Permission:**
543
544ohos.permission.ACCESS_DDK_HID
545
546**返回:**
547
548- [HID_DDK_SUCCESS](#hid_ddkerrcode):表示调用接口成功。
549- [HID_DDK_NO_PERM](#hid_ddkerrcode):表示权限校验失败。
550- [HID_DDK_INVALID_OPERATION](#hid_ddkerrcode):表示连接hid_ddk服务失败或者调用方不是设备的创建者。
551- [HID_DDK_FAILURE](#hid_ddkerrcode):表示对应设备不存在。
552
553
554### OH_Hid_EmitEvent()
555
556```
557int32_t OH_Hid_EmitEvent (int32_t deviceId, const Hid_EmitItem items[], uint16_t length )
558```
559**描述**
560向指定设备发送事件列表。
561
562**起始版本:** 11
563
564**参数:**
565
566| 名称 | 描述 | 
567| -------- | -------- |
568| deviceId | 设备ID。  | 
569| items | 发送的事件列表,事件包括类型(取值来源事件类型Hid_EventType)、编码(取值来源同步事件编码Hid_SynEvent、键值编码Hid_KeyCode、按钮编码HidBtnCode、 绝对坐标编码Hid_AbsAxes、相对坐标编码Hid_RelAxes、其它类型的输入事件编码Hid_MscEvent)、值(根据实际设备输入决定)。  | 
570| length | 发送事件列表长度(一次发送事件个数)。  | 
571
572**Permission:**
573
574ohos.permission.ACCESS_DDK_HID
575
576**返回:**
577
578- [HID_DDK_SUCCESS](#hid_ddkerrcode):表示调用接口成功。
579- [HID_DDK_NO_PERM](#hid_ddkerrcode):表示权限校验失败。
580- [HID_DDK_INVALID_OPERATION](#hid_ddkerrcode):表示连接hid_ddk服务失败或者调用方不是设备的创建者。
581- [HID_DDK_INVALID_PARAMETER](#hid_ddkerrcode):表示参数校验失败。可能原因包括:1. 设备ID小于0;2. 入参length长度超过7;3. 入参items为空指针。
582- [HID_DDK_NULL_PTR](#hid_ddkerrcode):表示对应设备的注入为空。
583- [HID_DDK_FAILURE](#hid_ddkerrcode):表示对应设备不存在。
584
585
586## 变量说明
587
588
589### bustype
590
591```
592uint16_t Hid_Device::bustype
593```
594**描述**
595总线类型
596
597
598### code
599
600```
601uint16_t Hid_EmitItem::code
602```
603**描述**
604事件编码
605
606
607### deviceName
608
609```
610const char* Hid_Device::deviceName
611```
612**描述**
613设备名称
614
615
616### hidAbs
617
618```
619struct Hid_AbsAxesArray Hid_EventProperties::hidAbs
620```
621**描述**
622绝对坐标属性编码数组
623
624
625### hidAbsAxes
626
627```
628Hid_AbsAxes* Hid_AbsAxesArray::hidAbsAxes
629```
630**描述**
631绝对坐标属性编码
632
633
634### hidAbsFlat
635
636```
637int32_t Hid_EventProperties::hidAbsFlat[64]
638```
639**描述**
640绝对坐标属性固定值
641
642
643### hidAbsFuzz
644
645```
646int32_t Hid_EventProperties::hidAbsFuzz[64]
647```
648**描述**
649绝对坐标属性模糊值
650
651
652### hidAbsMax
653
654```
655int32_t Hid_EventProperties::hidAbsMax[64]
656```
657**描述**
658绝对坐标属性最大值
659
660
661### hidAbsMin
662
663```
664int32_t Hid_EventProperties::hidAbsMin[64]
665```
666**描述**
667绝对坐标属性最小值
668
669
670### hidEventType
671
672```
673Hid_EventType* Hid_EventTypeArray::hidEventType
674```
675**描述**
676事件类型编码
677
678
679### hidEventTypes
680
681```
682struct Hid_EventTypeArray Hid_EventProperties::hidEventTypes
683```
684**描述**
685事件类型属性编码数组
686
687
688### hidKeyCode
689
690```
691Hid_KeyCode* Hid_KeyCodeArray::hidKeyCode
692```
693**描述**
694键值编码
695
696
697### hidKeys
698
699```
700struct Hid_KeyCodeArray Hid_EventProperties::hidKeys
701```
702**描述**
703键值属性编码数组
704
705
706### hidMiscellaneous
707
708```
709struct Hid_MscEventArray Hid_EventProperties::hidMiscellaneous
710```
711**描述**
712其它特殊事件属性编码数组
713
714
715### hidMscEvent
716
717```
718Hid_MscEvent* Hid_MscEventArray::hidMscEvent
719```
720**描述**
721其它特殊事件属性编码
722
723
724### hidRelAxes
725
726```
727Hid_RelAxes* Hid_RelAxesArray::hidRelAxes
728```
729**描述**
730相对坐标属性编码
731
732
733### hidRelBits
734
735```
736struct Hid_RelAxesArray Hid_EventProperties::hidRelBits
737```
738**描述**
739相对坐标属性编码数组
740
741
742### length [1/5]
743
744```
745uint16_t Hid_EventTypeArray::length
746```
747**描述**
748数组长度
749
750
751### length [2/5]
752
753```
754uint16_t Hid_KeyCodeArray::length
755```
756**描述**
757数组长度
758
759
760### length [3/5]
761
762```
763uint16_t Hid_AbsAxesArray::length
764```
765**描述**
766数组长度
767
768
769### length [4/5]
770
771```
772uint16_t Hid_RelAxesArray::length
773```
774**描述**
775数组长度
776
777
778### length [5/5]
779
780```
781uint16_t Hid_MscEventArray::length
782```
783**描述**
784数组长度
785
786
787### productId
788
789```
790uint16_t Hid_Device::productId
791```
792**描述**
793产品ID
794
795
796### properties
797
798```
799Hid_DeviceProp* Hid_Device::properties
800```
801**描述**
802设备特性
803
804
805### propLength
806
807```
808uint16_t Hid_Device::propLength
809```
810**描述**
811设备特性数量
812
813
814### type
815
816```
817uint16_t Hid_EmitItem::type
818```
819**描述**
820事件类型
821
822
823### value
824
825```
826uint32_t Hid_EmitItem::value
827```
828**描述**
829事件值
830
831
832### vendorId
833
834```
835uint16_t Hid_Device::vendorId
836```
837**描述**
838厂商ID
839
840
841### version
842
843```
844uint16_t Hid_Device::version
845```
846**描述**
847版本号
848