0

아래 설명자를 사용하여 HID 블루투스에서 키패드로 키 값을 전송합니다.보고서 ID가있는 HID에서 키보드 값을 보내는 방법은 무엇입니까?

USAGE_PAGE(1),  0x01,  
    USAGE(1),   0x06,  
    COLLECTION(1),  0x01,  
    REPORT_ID(1),  0x02, 
    USAGE_PAGE(1),  0x07,  
    USAGE_MINIMUM(1), (byte) 0xE0, 
    USAGE_MAXIMUM(1), (byte) 0xE7, 
    LOGICAL_MINIMUM(1), 0x00, 
    LOGICAL_MAXIMUM(1), 0x01, 
    REPORT_SIZE(1),  0x01,  
    REPORT_COUNT(1), 0x08, 
    INPUT(1),   0x02,  
    REPORT_COUNT(1), 0x01,  
    REPORT_SIZE(1),  0x08, 
    INPUT(1),   0x01,  
    REPORT_COUNT(1), 0x05,  
    REPORT_SIZE(1),  0x01, 
    USAGE_PAGE(1),  0x08,  
    USAGE_MINIMUM(1), 0x01,  
    USAGE_MAXIMUM(1), 0x05,  
    OUTPUT(1),   0x02,  
    REPORT_COUNT(1), 0x01,  
    REPORT_SIZE(1),  0x03, 
    OUTPUT(1),   0x01,  
    REPORT_COUNT(1), 0x06,  
    REPORT_SIZE(1),  0x08, 
    LOGICAL_MINIMUM(1), 0x00, 
    LOGICAL_MAXIMUM(1), 0x65,  
    USAGE_PAGE(1),  0x07,  
    USAGE_MINIMUM(1), 0x00, 
    USAGE_MAXIMUM(1), 0x65, 
    INPUT(1),   0x00,  
    END_COLLECTION(0), 

내가 직면하고있는 문제는 데이터를 보낼 수 있지만 동일한 데이터가 무한히 전송되고 있다는 것입니다.

수정 자 바이트를 2로 설정하면 모든 것이 제대로 작동합니다. 즉, 대문자가 특정 키 누르기를 위해 전송되지만, 소문자 데이터를 보내면 무한한 시간이 전송됩니다.

답변

0

키를 놓는 것을 잊어 버린 경우 키 입력이 "무한 수"로 표시됩니다. 배열에는 현재 눌려져있는 키 (최대 6 개)가 들어 있습니다. "no event displayed"인덱스로 버퍼를 지울 필요가 있습니다.이 경우 인덱스는 0x00입니다. 이 작업을 수행하지 않으면 호스트가 "typ-o-matic"키 반복 기능을 구현할 가능성이 높습니다. 즉 일반 키보드에서 키를 길게 누르면 표시됩니다.

+0

답변 주셔서 감사합니다. @aja. 키를 공개하는 중에도이 오류가 발생했습니다. ID 0x00의 클라이언트에게 빈 보고서를 보내고 있었기 때문에 키보드 ID를 빈 보고서와 함께 보내야한다는 것을 알았습니다. –