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