다음을 통해 공유


샘플 보고서 설명자(touchpad-sample-report-descriptors)

이 항목에서는 Windows Precision Touchpad 디바이스에 대한 샘플 보고서 설명자 및 샘플 설명자 발췌를 제공합니다.

참고 항목

공급업체별 사용량은 보고서의 모든 수준에서 사용할 수 있지만 직렬, 병렬, 하이브리드와 같은 모든 보고 방법에서 동일하게 구현될 수 있는 방식으로 사용해야 합니다. 이 지침을 준수하지 않으면 HLK 오류가 발생하지 않을 수 있지만 심각한 호환성 문제가 발생할 수 있습니다.

샘플 보고서 설명자

다음 샘플 설명자에 지정된 모든 값과 매개 변수는 필수입니다.

//TOUCH PAD input TLC
    0x05, 0x0d,                         // USAGE_PAGE (Digitizers)
    0x09, 0x05,                         // USAGE (Touch Pad)
    0xa1, 0x01,                         // COLLECTION (Application)
    0x85, REPORTID_TOUCHPAD,            //   REPORT_ID (Touch pad)
    0x09, 0x22,                         //   USAGE (Finger)
    0xa1, 0x02,                         //   COLLECTION (Logical)
    0x15, 0x00,                         //       LOGICAL_MINIMUM (0)
    0x25, 0x01,                         //       LOGICAL_MAXIMUM (1)
    0x09, 0x47,                         //       USAGE (Confidence)
    0x09, 0x42,                         //       USAGE (Tip switch)
    0x95, 0x02,                         //       REPORT_COUNT (2)
    0x75, 0x01,                         //       REPORT_SIZE (1)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x95, 0x01,                         //       REPORT_COUNT (1)
    0x75, 0x02,                         //       REPORT_SIZE (2)
    0x25, 0x02,                         //       LOGICAL_MAXIMUM (2)
    0x09, 0x51,                         //       USAGE (Contact Identifier)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x75, 0x01,                         //       REPORT_SIZE (1)
    0x95, 0x04,                         //       REPORT_COUNT (4)
    0x81, 0x03,                         //       INPUT (Cnst,Var,Abs)
    0x05, 0x01,                         //       USAGE_PAGE (Generic Desk..
    0x15, 0x00,                         //       LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x0f,                   //       LOGICAL_MAXIMUM (4095)
    0x75, 0x10,                         //       REPORT_SIZE (16)
    0x55, 0x0e,                         //       UNIT_EXPONENT (-2)
    0x65, 0x13,                         //       UNIT(Inch,EngLinear)
    0x09, 0x30,                         //       USAGE (X)
    0x35, 0x00,                         //       PHYSICAL_MINIMUM (0)
    0x46, 0x90, 0x01,                   //       PHYSICAL_MAXIMUM (400)
    0x95, 0x01,                         //       REPORT_COUNT (1)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x46, 0x13, 0x01,                   //       PHYSICAL_MAXIMUM (275)
    0x09, 0x31,                         //       USAGE (Y)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0xc0,                               //    END_COLLECTION
    0x55, 0x0C,                         //    UNIT_EXPONENT (-4)
    0x66, 0x01, 0x10,                   //    UNIT (Seconds)
    0x47, 0xff, 0xff, 0x00, 0x00,      //     PHYSICAL_MAXIMUM (65535)
    0x27, 0xff, 0xff, 0x00, 0x00,         //  LOGICAL_MAXIMUM (65535)
    0x75, 0x10,                           //  REPORT_SIZE (16)
    0x95, 0x01,                           //  REPORT_COUNT (1)
    0x05, 0x0d,                         //    USAGE_PAGE (Digitizers)
    0x09, 0x56,                         //    USAGE (Scan Time)
    0x81, 0x02,                           //  INPUT (Data,Var,Abs)
    0x09, 0x54,                         //    USAGE (Contact count)
    0x25, 0x7f,                           //  LOGICAL_MAXIMUM (127)
    0x95, 0x01,                         //    REPORT_COUNT (1)
    0x75, 0x08,                         //    REPORT_SIZE (8)
    0x81, 0x02,                         //    INPUT (Data,Var,Abs)
    0x05, 0x09,                         //    USAGE_PAGE (Button)
    0x09, 0x01,                         //    USAGE_(Button 1)
    0x09, 0x02,                         //    USAGE_(Button 2)
    0x09, 0x03,                         //    USAGE_(Button 3)
    0x25, 0x01,                         //    LOGICAL_MAXIMUM (1)
    0x75, 0x01,                         //    REPORT_SIZE (1)
    0x95, 0x03,                         //    REPORT_COUNT (3)
    0x81, 0x02,                         //    INPUT (Data,Var,Abs)
    0x95, 0x05,                          //   REPORT_COUNT (5)
    0x81, 0x03,                         //    INPUT (Cnst,Var,Abs)
    0x05, 0x0d,                         //    USAGE_PAGE (Digitizer)
    0x85, REPORTID_MAX_COUNT,            //   REPORT_ID (Feature)
    0x09, 0x55,                         //    USAGE (Contact Count Maximum)
    0x09, 0x59,                         //    USAGE (Pad TYpe)
    0x75, 0x04,                         //    REPORT_SIZE (4)
    0x95, 0x02,                         //    REPORT_COUNT (2)
    0x25, 0x0f,                         //    LOGICAL_MAXIMUM (15)
    0xb1, 0x02,                         //    FEATURE (Data,Var,Abs)
    0x06, 0x00, 0xff,                   //    USAGE_PAGE (Vendor Defined)
    0x85, REPORTID_PTPHQA,               //    REPORT_ID (PTPHQA)
    0x09, 0xC5,                         //    USAGE (Vendor Usage 0xC5)
    0x15, 0x00,                         //    LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00,                   //    LOGICAL_MAXIMUM (0xff)
    0x75, 0x08,                         //    REPORT_SIZE (8)
    0x96, 0x00, 0x01,                   //    REPORT_COUNT (0x100 (256))
    0xb1, 0x02,                         //    FEATURE (Data,Var,Abs)
    0xc0,                               // END_COLLECTION
    //CONFIG TLC
    0x05, 0x0d,                         //    USAGE_PAGE (Digitizer)
    0x09, 0x0E,                         //    USAGE (Configuration)
    0xa1, 0x01,                         //   COLLECTION (Application)
    0x85, REPORTID_FEATURE,             //   REPORT_ID (Feature)
    0x09, 0x22,                         //   USAGE (Finger)
    0xa1, 0x02,                         //   COLLECTION (logical)
    0x09, 0x52,                         //    USAGE (Input Mode)
    0x15, 0x00,                         //    LOGICAL_MINIMUM (0)
    0x25, 0x0a,                         //    LOGICAL_MAXIMUM (10)
    0x75, 0x08,                         //    REPORT_SIZE (8)
    0x95, 0x01,                         //    REPORT_COUNT (1)
    0xb1, 0x02,                         //    FEATURE (Data,Var,Abs
    0xc0,                               //   END_COLLECTION
    0x09, 0x22,                         //   USAGE (Finger)
    0xa1, 0x00,                         //   COLLECTION (physical)
    0x85, REPORTID_FUNCTION_SWITCH,     //     REPORT_ID (Feature)
    0x09, 0x57,                         //     USAGE(Surface switch)
    0x09, 0x58,                         //     USAGE(Button switch)
    0x75, 0x01,                         //     REPORT_SIZE (1)
    0x95, 0x02,                         //     REPORT_COUNT (2)
    0x25, 0x01,                         //     LOGICAL_MAXIMUM (1)
    0xb1, 0x02,                         //     FEATURE (Data,Var,Abs)
    0x95, 0x06,                         //     REPORT_COUNT (6)
    0xb1, 0x03,                         //     FEATURE (Cnst,Var,Abs)
    0xc0,                               //   END_COLLECTION
    0xc0,                               // END_COLLECTION
    //MOUSE TLC
    0x05, 0x01,                         // USAGE_PAGE (Generic Desktop)
    0x09, 0x02,                         // USAGE (Mouse)
    0xa1, 0x01,                         // COLLECTION (Application)
    0x85, REPORTID_MOUSE,               //   REPORT_ID (Mouse)
    0x09, 0x01,                         //   USAGE (Pointer)
    0xa1, 0x00,                         //   COLLECTION (Physical)
    0x05, 0x09,                         //     USAGE_PAGE (Button)
    0x19, 0x01,                         //     USAGE_MINIMUM (Button 1)
    0x29, 0x02,                         //     USAGE_MAXIMUM (Button 2)
    0x25, 0x01,                         //     LOGICAL_MAXIMUM (1)
    0x75, 0x01,                         //     REPORT_SIZE (1)
    0x95, 0x02,                         //     REPORT_COUNT (2)
    0x81, 0x02,                         //     INPUT (Data,Var,Abs)
    0x95, 0x06,                         //     REPORT_COUNT (6)
    0x81, 0x03,                         //     INPUT (Cnst,Var,Abs)
    0x05, 0x01,                         //     USAGE_PAGE (Generic Desktop)
    0x09, 0x30,                         //     USAGE (X)
    0x09, 0x31,                         //     USAGE (Y)
    0x75, 0x10,                         //     REPORT_SIZE (16)
    0x95, 0x02,                         //     REPORT_COUNT (2)
    0x25, 0x0a,                          //    LOGICAL_MAXIMUM (10)
    0x81, 0x06,                         //     INPUT (Data,Var,Rel)
    0xc0,                               //   END_COLLECTION
    0xc0,                                //END_COLLECTION

샘플 보고서 설명자 발췌 - (대기 시간 모드 기능 보고서)

다음은 Windows 정밀 터치패드 최상위 컬렉션에 대한 설명자에서 발췌한 내용입니다. 이 설명자 발췌는 대기 시간 모드 기능 보고서의 선택적(권장) 지원을 위한 것입니다.

    0x05, 0x0d,                         //    USAGE_PAGE (Digitizer)
    0x85, REPORTID_LATENCY,             //    REPORT_ID (Latency)
    0x09, 0x60,                         //    USAGE (Latency Mode)
    0x75, 0x01,                         //    REPORT_SIZE (1)
    0x95, 0x01,                         //    REPORT_COUNT (1)
    0x15, 0x00,                         //    LOGICAL_MINIMUM (0)
    0x25, 0x01,                         //    LOGICAL_MAXIMUM (1)
    0xb1, 0x02,                         //    FEATURE (Data,Var,Abs)
    0x95, 0x07,                         //    REPORT_COUNT (7)
    0xb1, 0x03,                         //    FEATURE (Cnst,Var,Abs)

샘플 보고서 설명자 발췌 - (햅틱 강도 기능 보고서)

다음은 햅틱 강도 기능 보고서의 선택적 지원을 위해 Windows Precision Touchpad 최상위 컬렉션에 대한 설명자에서 발췌한 내용입니다.

    0x05, 0x0E,                       //   Usage Page (Haptics)
    0x09, 0x01,                       //   Usage (Simple Haptics Controller)
    0xA1, 0x02,                       //   Collection (Logical)
    0x09, 0x23,                       //     Usage (Intensity)
    0x85, CONFIG_PTP_HAPTICS_ID,      //     Report ID (CONFIG_PTP_HAPTICS_ID)
    0x15, 0x00,                       //     Logical Minimum (0)
    0x25, 0x64,                       //     Logical Maximum (100)
    0x75, 0x08,                       //     Report Size (8)
    0x95, 0x01,                       //     Report Count (1)
    0xB1, 0x02,                       //     Feature (Data,Var,Abs)
    0xC0,                             //   End Collection ()

샘플 보고서 설명자 발췌 - (단추 누르기 임계값 기능 보고서)

다음은 단추 누르기 임계값 기능 보고서의 선택적 지원을 위한 Windows Precision Touchpad 최상위 컬렉션에 대한 설명자에서 발췌한 내용입니다.

    0x05, 0x0D,                      //   UsagePage(Digitizers[0x000D])
    0x85, REPORTID_BUTTONPRESSTHR,   //   ReportId(REPORTID_BUTTONPRESSTHR)
    0x09, 0xB0,                      //   UsageId(Button Press Threshold[0x00B0])
    0x35, 0x6E,                      //   PhysicalMinimum(110)
    0x46, 0xBE, 0x00,                //   PhysicalMaximum(190)
    0x66, 0x01, 0x01,                //   Unit('gram', SiLinear, Gram:1)
    0x15, 0x01,                      //   LogicalMinimum(1)
    0x25, 0x03,                      //   LogicalMaximum(3)
    0x75, 0x02,                      //   ReportSize(2)
    0xB1, 0x02,                      //   Feature(Data, Variable, Absolute)
    0x75, 0x08,                      //   ReportSize(8)
    0xB1, 0x03,                      //   Feature(Constant, Variable, Absolute)

샘플 보고서 설명자 발췌 - (분할된 디바이스 인증 상태 기능 보고서)

다음은 디바이스 인증 상태 기능 보고서의 분할된 버전의 Windows Precision Touchpad 최상위 컬렉션에 대한 설명자에서 발췌한 내용입니다. 이렇게 하면 인증 상태 Blob을 8개의 32바이트 세그먼트와 단일 256바이트 세그먼트로 분할할 수 있습니다. 호스트는 SET FEATURE에서 반환할 세그먼트 #을 나타냅니다. 이에 대한 응답으로 디바이스는 GET FEATURE의 연결된 세그먼트와 함께 세그먼트 #을 반환합니다.

    0x06, 0x00, 0xff,                   //     USAGE_PAGE (Vendor Defined)
    0x85, REPORTID_PTPHQA,              //     REPORT_ID (PTPHQA)
    0x09, 0xC6,                         //     USAGE (Vendor usage for segment #)
    0x25, 0x08,                         //     LOGICAL_MAXIMUM (8)
    0x75, 0x08,                         //     REPORT_SIZE (8)
    0x95, 0x01,                         //     REPORT_COUNT (1)
    0xb1, 0x02,                         //     FEATURE (Data,Var,Abs)
    0x09, 0xC7,                         //     USAGE (Vendor Usage)
    0x26, 0xff, 0x00,                   //     LOGICAL_MAXIMUM (0xff)
    0x95, 0x20,                         //     REPORT_COUNT (32)
    0xb1, 0x02,                         //     FEATURE (Data,Var,Abs)

샘플 보고서 설명자 발췌 - (기하 도형이 지원되는 PTP 입력 보고서)

    0x85, REPORTID_TOUCHPAD,            //   REPORT_ID (Touch pad)
    0x09, 0x22,                         //   USAGE (Finger)
    0xa1, 0x02,                         //   COLLECTION (Logical)
    0x15, 0x00,                         //       LOGICAL_MINIMUM (0)
    0x25, 0x01,                         //       LOGICAL_MAXIMUM (1)
    0x09, 0x47,                         //       USAGE (Confidence)
    0x09, 0x42,                         //       USAGE (Tip switch)
    0x95, 0x02,                         //       REPORT_COUNT (2)
    0x75, 0x01,                         //       REPORT_SIZE (1)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x95, 0x01,                         //       REPORT_COUNT (1)
    0x75, 0x02,                         //       REPORT_SIZE (2)
    0x25, 0x02,                         //       LOGICAL_MAXIMUM (2)
    0x09, 0x51,                         //       USAGE (Contact Identifier)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x75, 0x01,                         //       REPORT_SIZE (1)
    0x95, 0x04,                         //       REPORT_COUNT (4)
    0x81, 0x03,                         //       INPUT (Cnst,Var,Abs)
    0x05, 0x01,                         //       USAGE_PAGE (Generic Desktop)
    0x15, 0x00,                         //       LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x0f,                   //       LOGICAL_MAXIMUM (4095)
    0x75, 0x10,                         //       REPORT_SIZE (16)
    0x55, 0x0e,                         //       UNIT_EXPONENT (-2)
    0x65, 0x13,                         //       UNIT(Inch,EngLinear)
    0x09, 0x30,                         //       USAGE (X)
    0x35, 0x00,                         //       PHYSICAL_MINIMUM (0)
    0x46, 0x90, 0x01,                   //       PHYSICAL_MAXIMUM (400)
    0x95, 0x02,                         //       REPORT_COUNT (2)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x46, 0x13, 0x01,                   //       PHYSICAL_MAXIMUM (275)
    0x09, 0x31,                         //       USAGE (Y)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0x05, 0x0d,                         //       USAGE_PAGE (Digitizers)
    0x15, 0x00,                         //       LOGICAL_MINIMUM (0)
    0x25, 0x64,                         //       LOGICAL_MAXIMUM (100)
    0x95, 0x02,                         //       REPORT_COUNT (2)
    0x09, 0x48,                         //       USAGE (Width)
    0x09, 0x49,                         //       USAGE (Height)
    0x81, 0x02,                         //       INPUT (Data,Var,Abs)
    0xc0,                               //    END_COLLECTION

구성 컬렉션

마우스 컬렉션

Windows 정밀 터치패드 컬렉션