[libhid-discuss] Usage Path Question

Christopher Moore christopher at bnmintl.com
Thu Oct 2 17:25:32 UTC 2008


Hey everyone,

I have a question about usage path and formatting a
hid_set_output/input_report.

Given the output below, I'm trying to:

send a report to:  Report ID #4, I believe the Path to be:
PATHLEN = 2
PATH_OUT = [0x000B0001,0x0014002C] or is it [0x0B01,0x142C]?
SEND_PACKET_LEN = 8

receive a report from: Report ID #3 (same as above ... which seems wierd...)
PATHLEN = 2
PATH_OUT = [0x000B0001,0x0014002C] or is it [0x0B01,0x142C]?
RECEIVE_PACKET_LEN = 7

Is my assumption/formatting correct?

Given this Report Structure:

/*  USAGE_PAGE (Telephony Devices)         */ 0x05, 0x0B,
/*  USAGE (Phone)                          */ 0x09, 0x01,
/*  COLLECTION (Application)               */ 0xA1, 0x01,
/*    REPORT_ID (1)                        */ 0x85, 0x01,
/*    USAGE (Telephony Key Pad)            */ 0x09, 0x06,
/*    COLLECTION (Logical)                 */ 0xA1, 0x02,
/*      USAGE_MINIMUM (Phone Key 0)        */ 0x19, 0xB0,
/*      USAGE_MAXIMUM (Phone Key Pound)    */ 0x29, 0xBB,
/*      LOGICAL_MINIMUM (0)                */ 0x15, 0x00,
/*      LOGICAL_MAXIMUM (12)               */ 0x25, 0x0C,
/*      REPORT_SIZE (4)                    */ 0x75, 0x04,
/*      REPORT_COUNT (1)                   */ 0x95, 0x01,
/*      INPUT (Data,Ary,Abs)               */ 0x81, 0x00,
/*     END_COLLECTION                      */ 0xC0,
/*    USAGE (Hook Switch)                  */ 0x09, 0x20,
/*    LOGICAL_MINIMUM (0)                  */ 0x15, 0x00,
/*    LOGICAL_MAXIMUM (1)                  */ 0x25, 0x01,
/*    REPORT_SIZE (1)                      */ 0x75, 0x01,
/*    REPORT_COUNT (1)                     */ 0x95, 0x01,
/*    INPUT (Data,Var,Abs)                 */ 0x81, 0x02,
/*    USAGE (Handset)                      */ 0x09, 0x04,
/*    COLLECTION (Logical)                 */ 0xA1, 0x02,
/*      USAGE_PAGE (Consumer Devices)      */ 0x05, 0x0C,
/*      USAGE (Volume)                     */ 0x09, 0xE0,
/*      LOGICAL_MINIMUM (-1)               */ 0x15, 0xFF,
/*      LOGICAL_MAXIMUM (1)                */ 0x25, 0x01,
/*      REPORT_SIZE (2)                    */ 0x75, 0x02,
/*      REPORT_COUNT (1)                   */ 0x95, 0x01,
/*      INPUT (Data,Var,Rel)               */ 0x81, 0x06,
/*      USAGE (Mute)                       */ 0x09, 0xE2,
/*      LOGICAL_MINIMUM (0)                */ 0x15, 0x00,
/*      LOGICAL_MAXIMUM (1)                */ 0x25, 0x01,
/*      REPORT_SIZE (1)                    */ 0x75, 0x01,
/*      REPORT_COUNT (1)                   */ 0x95, 0x01,
/*      INPUT (Data,Var,Abs)               */ 0x81, 0x02,
/*     END_COLLECTION                      */ 0xC0,
/*    REPORT_ID (2)                        */ 0x85, 0x02,
/*    LOGICAL_MINIMUM (0)                  */ 0x15, 0x00,
/*    LOGICAL_MAXIMUM (1)                  */ 0x25, 0x01,
/*    REPORT_SIZE (1)                      */ 0x75, 0x01,
/*    REPORT_COUNT (1)                     */ 0x95, 0x01,
/*    USAGE_PAGE (Telephony Devices)       */ 0x05, 0x0B,
/*    USAGE (Hook Switch)                  */ 0x09, 0x20,
/*    FEATURE (Data,Var,Abs)               */ 0xB1, 0x02,
/*    USAGE_PAGE (Telephony Devices)       */ 0x05, 0x0B,
/*    USAGE (Unassigned)                   */ 0x09, 0x18,
/*    FEATURE (Data,Var,Abs)               */ 0xB1, 0x02,
/*    REPORT_SIZE (6)                      */ 0x75, 0x06,
/*    FEATURE (Cnst,Var,Rel)               */ 0xB1, 0x07,
/*    USAGE_PAGE (Alphnumeric Display)     */ 0x05, 0x14,
/*    USAGE (Alphanumeric Display)         */ 0x09, 0x01,
/*    LOGICAL_MAXIMUM (255)                */ 0x26, 0xFF, 0x00,
/*    REPORT_SIZE (8)                      */ 0x75, 0x08,
/*    REPORT_COUNT (1)                     */ 0x95, 0x01,
/*    USAGE (Display Data)                 */ 0x09, 0x2C,
/*    FEATURE (Data,Var,Abs)               */ 0xB1, 0x02,
/*    REPORT_COUNT (15)                    */ 0x95, 0x0F,
/*    USAGE (Display Data)                 */ 0x09, 0x2C,
/*    FEATURE (Data,Var,Abs)               */ 0xB1, 0x02,
/*    REPORT_ID (3)                        */ 0x85, 0x03,
/*    USAGE_PAGE (Alphnumeric Display)     */ 0x05, 0x14,
/*    USAGE (Alphanumeric Display)         */ 0x09, 0x01,
/*    LOGICAL_MINIMUM (0)                  */ 0x15, 0x00,
/*    LOGICAL_MAXIMUM (255)                */ 0x26, 0xFF, 0x00,
/*    REPORT_SIZE (8)                      */ 0x75, 0x08,
/*    REPORT_COUNT (7)                     */ 0x95, 0x07,
/*    USAGE (Display Data)                 */ 0x09, 0x2C, <==============
/*    INPUT (Data,Ary,Abs)                 */ 0x81, 0x00, <==============
/*    REPORT_ID (4)                        */ 0x85, 0x04,
/*    USAGE_PAGE (Alphnumeric Display)     */ 0x05, 0x14,
/*    USAGE (Alphanumeric Display)         */ 0x09, 0x01,
/*    LOGICAL_MINIMUM (0)                  */ 0x15, 0x00,
/*    LOGICAL_MAXIMUM (255)                */ 0x26, 0xFF, 0x00,
/*    REPORT_SIZE (8)                      */ 0x75, 0x08,
/*    REPORT_COUNT (8)                     */ 0x95, 0x08,
/*    USAGE (Display Data)                 */ 0x09, 0x2C, <==============
/*    FEATURE (Data,Ary,Abs)               */ 0xB1, 0x00, <==============
/*  END_COLLECTION


Thanks

Christopher




More information about the libhid-discuss mailing list