-HID Protocol Messages
-=====================
+HID Protocol
+============
3 of HID_SPEC_V11.pdf
+Channel
+-------
Control channel PSM=0x0011
Interrupt channel PSM=0x0013
+Message
+-------
HANDSHAKE(0)
HID_CONTROL(1)
+
GET_REPORT(4)
--------------
-Host requests report(DATA payload on Control channel) from Device
-
- Size Desc
-------------------------------------------------------------------------------
-HIDP-Hdr 1 7..4: HIDP Message TYpe(4: GET_REPORT)
- 3: Size(1:2-octed buffer size, 0:size of the report)
- 2: 0
- 1..0: Report Type(1:input, 2:output, 3: feature)
-ReportID 1 Optional
-BufferSize 2 Optional(specified when Size=1)
+ Host requests report(DATA payload on Control channel) from Device
+ Size Desc
+ ------------------------------------------------------------------------------
+ HIDP-Hdr 1 7..4: HIDP Message TYpe(4: GET_REPORT)
+ 3: Size(1:2-octed buffer size, 0:size of the report)
+ 2: 0
+ 1..0: Report Type(1:input, 2:output, 3: feature)
+ ReportID 1 Optional
+ BufferSize 2 Optional(specified when Size=1)
SET_REPORT(5)
GET_PROTOCOL(6)
SET_PROTOCOL(7)
-DATA(A)
--------
-Input/Output Report: All DATA payloads flow on Interrupt channel.
-Other: flows on Control channel.
- Size Desc
-------------------------------------------------------------------------------
-HIDP-Hdr 1 7..4 0xA
- 3..2 Reserved(0)
- 1..0 Report Type(0:Other, 1:Input, 2:Output, 3:Feature)
-Payload N Data
+DATA(A)
+ Input/Output Report: All DATA payloads flow on Interrupt channel.
+ Other: flows on Control channel.
+ Size Desc
+ ------------------------------------------------------------------------------
+ HIDP-Hdr 1 7..4 0xA
+ 3..2 Reserved(0)
+ 1..0 Report Type(0:Other, 1:Input, 2:Output, 3:Feature)
+ Payload N Data
----------
HIDDeviceSubclass
which type is supported in Boot Protocol Mode
-7 6
----
-0 1 Keyboard
-1 0 Pointing device
-1 1 Combo keyboard/pointing device
+ 7 6
+ ---
+ 0 1 Keyboard
+ 1 0 Pointing device
+ 1 1 Combo keyboard/pointing device
HIDBootDevice
TRUE
0x0005C0 Keyboard and Pointing deivce(combo)
-23 16 15 8 7 0
----------------------------------
-Service |Major |Minor |Format
-
-Format type
-1 0
----
-0 0
-
-Minor Device Class of Peripheral Major
-7 6
----
-0 1 Keyboard
-1 0 Pointing device
-1 1 Combo keyboard/pointing device
-
+ 23 16 15 8 7 0
+ ---------------------------------
+ Service |Major |Minor |Format
-Major device classes
-12 11 10 9 8
---------------
- 0 0 0 0 0 Miscellaneous
- 0 0 0 0 1 Computer
- 0 0 0 1 0 Phone
- 0 0 0 1 1 LAN /Network Access point
- 0 0 1 0 0 Audio/Video (headset,speaker,stereo, video display, vcr.....
- 0 0 1 0 1 *Peripheral (mouse, joystick, keyboards, ..... )
- 0 0 1 1 0 Imaging (printing, scanner, camera, display, ...)
- 1 1 1 1 1 Uncategorized, specific device code not specified
- X X X X X All other values reserved
+ Format type
+ 1 0
+ ---
+ 0 0
+ Minor Device Class of Peripheral Major
+ 7 6
+ ---
+ 0 1 Keyboard
+ 1 0 Pointing device
+ 1 1 Combo keyboard/pointing device
-Major service classes
-bit
---------------------------------------
-13 Limited Discoverable Mode [Ref #1]
-14 (reserved)
-15 (reserved)
-16 Positioning (Location identification)
-17 Networking (LAN, Ad hoc, ...)
-18 Rendering (Printing, Speaker, ...)
-19 Capturing (Scanner, Microphone, ...)
-20 Object Transfer (v-Inbox, v-Folder, ...)
-21 Audio (Speaker, Microphone, Headset service, ...)
-22 Telephony (Cordless telephony, Modem, Headset service, ...)
-23 Information (WEB-server, WAP-server, ...)
+ Major device classes
+ 12 11 10 9 8
+ --------------
+ 0 0 0 0 0 Miscellaneous
+ 0 0 0 0 1 Computer
+ 0 0 0 1 0 Phone
+ 0 0 0 1 1 LAN /Network Access point
+ 0 0 1 0 0 Audio/Video (headset,speaker,stereo, video display, vcr.....
+ 0 0 1 0 1 *Peripheral (mouse, joystick, keyboards, ..... )
+ 0 0 1 1 0 Imaging (printing, scanner, camera, display, ...)
+ 1 1 1 1 1 Uncategorized, specific device code not specified
+ X X X X X All other values reserved
+ Major service classes
+ bit
+ --------------------------------------
+ 13 Limited Discoverable Mode [Ref #1]
+ 14 (reserved)
+ 15 (reserved)
+ 16 Positioning (Location identification)
+ 17 Networking (LAN, Ad hoc, ...)
+ 18 Rendering (Printing, Speaker, ...)
+ 19 Capturing (Scanner, Microphone, ...)
+ 20 Object Transfer (v-Inbox, v-Folder, ...)
+ 21 Audio (Speaker, Microphone, Headset service, ...)
+ 22 Telephony (Cordless telephony, Modem, Headset service, ...)
+ 23 Information (WEB-server, WAP-server, ...)
-SET PROFILE HID 0d c0 100 0 en 0409 HHKB pro Bluetooth keyboard
-
-{function bit} uint8
-{subclass} uint8
-{version} uint16
-{country} uint8
-{BTlang} char[2]
-{USBlang} uint16
-{name} string
-
-
-SET PROFILE HID 0f c0 100 0 en 0409 TMK Bluetooth keyboard
-
-// composite device: keyboard and mouse
-SET BT CLASS 005c0
+SET PROFILE HID
+---------------
+ SET PROFILE HID 0d c0 100 0 en 0409 HHKB pro Bluetooth keyboard
+ {function bit} uint8
+ {subclass} uint8
+ {version} uint16
+ {country} uint8
+ {BTlang} char[2]
+ {USBlang} uint16
+ {name} string
+
+
+SET BT CLASS
+------------
+ See Class of Device
+ composite device: keyboard and mouse
+ SET BT CLASS 005c0
+
+
+
+++ /dev/null
-05010902a1010901a1008502050919012908150025017501950881020501093009311581257f750895028106093895018106050c0a380295018106c0c0
-
-Length: 67(0x43)
-virtical/horizontal wheel support
-
- 0x05, 0x01, // USAGE_PAGE (Generic Desktop)
- 0x09, 0x02, // USAGE (Mouse)
- 0xa1, 0x01, // COLLECTION (Application)
- 0x09, 0x01, // USAGE (Pointer)
- 0xa1, 0x00, // COLLECTION (Physical)
- 0x85, 0x02, // REPORT_ID (2)
- // ---------------------------- Buttons
- 0x05, 0x09, // USAGE_PAGE (Button)
- 0x19, 0x01, // USAGE_MINIMUM (Button 1)
- 0x29, 0x08, // USAGE_MAXIMUM (Button 8)
- 0x15, 0x00, // LOGICAL_MINIMUM (0)
- 0x25, 0x01, // LOGICAL_MAXIMUM (1)
- 0x75, 0x01, // REPORT_SIZE (1)
- 0x95, 0x08, // REPORT_COUNT (8)
- 0x81, 0x02, // INPUT (Data,Var,Abs)
- // ---------------------------- X,Y position
- 0x05, 0x01, // USAGE_PAGE (Generic Desktop)
- 0x09, 0x30, // USAGE (X)
- 0x09, 0x31, // USAGE (Y)
- 0x15, 0x81, // LOGICAL_MINIMUM (-127)
- 0x25, 0x7f, // LOGICAL_MAXIMUM (127)
- 0x75, 0x08, // REPORT_SIZE (8)
- 0x95, 0x02, // REPORT_COUNT (2)
- 0x81, 0x06, // INPUT (Data,Var,Rel)
- // ---------------------------- Vertical wheel
- 0x09, 0x38, // USAGE (Wheel)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x81, 0x06, // INPUT (Data,Var,Rel)
- // ---------------------------- Horizontal wheel
- 0x05, 0x0c, // USAGE_PAGE (Consumer Devices)
- 0x0a, 0x38, 0x02, // USAGE (AC Pan)
- 0x95, 0x01, // REPORT_COUNT (1)
- 0x81, 0x06, // INPUT (Data,Var,Rel)
- 0xc0, // END_COLLECTION
- 0xc0, // END_COLLECTION