2014-11-22 10 views
11

다른 키보드 레이아웃에 대한 16 진수 키보드 스캔 코드 목록을 어디에서 찾을 수 있습니까?16 진수 키보드 스캔 코드 및 USB HID 키보드 설명서 목록

echo -ne "\x00\x00\x00\x38\x00\x00\x00\x00" > /dev/hidg0 
echo -ne "\x00\x00\x00\x00\x00\x00\x00\x00" > /dev/hidg0 

슬래시에 대한 (/ 일) :

나는 탈출 진수 키 스캔 코드와 HID 장치 다음에 bash는 명령 echo -ne와 (가짜)의 USB HID 키보드를 통해 키 코드를 보내고있다 미국 키보드 레이아웃. 내 키보드 레이아웃에

(CH)가 슬래시에 대한

echo -ne "\x00\x00\x00\x24\x00\x00\x00\x00" > /dev/hidg0 
echo -ne "\x00\x00\x00\x00\x00\x00\x00\x00" > /dev/hidg0 

입니다. 그래서 나는 이들 모두를위한 목록이 존재해야만한다고 생각합니다. 그러나 다른 키보드 레이아웃이 아닌 US layout에 대한 목록을 찾을 수있었습니다.

두 번째 줄은 키 입력을 중지하지만이 이스케이프 시퀀스의 구문을 이해하지 못합니다. 나는 첫 번째 \x00x02으로 변경하면 입력 된 키가 "shift"될 것이라는 것을 안다. 그런데 왜 6 가지 수정자를 추가 할 수 있습니까? 그들은 ctrl, alt, ... 서 있습니까? 그리고 그것은 어떤 의미입니까?

이 구문에 대한 문서는 정말 멋지다. 나는 아직 그것을 찾을 수 없었다.

+0

슬래시에 대한 스캔 코드에 따르면 키보드가 체코 어 qwertz가 아닌 독일어 T2라고합니다. 'x24'코드는 T2의 슬래시가 미국에서 7 위와 같은 기계적 위치에 해당하지만 체코 버전에서는 'x2F'가됩니다 (미국의 [')와 같음). – jiggunjer

+0

뚜렷한 구약, 그러나 CH는 스위스의 ISO 코드 (Confoederatio Helvetica)이며, 체코 어는 CZ입니다. – Erik

답변

28

은 "스캔 코드"(그들이 사용 코드에 정말 인덱스입니다) 제 10 장에 USB HID Usage Tables 사양에 usb.org에 게시된다 "키보드 (I은 넥서스 7 2012 년 칼리 Nethunter을 사용하고 있습니다)/키패드 페이지 (0x07) ". 일반적인 키보드 보고서 레이아웃은 부록 B "부팅 인터페이스 설명자"섹션 "B.1 프로토콜 1 (키보드)"의 USB Device Class Specification for HID에서 찾을 수 있습니다. 의 USB 사양은 키보드 레이아웃을 정의하지 않습니다

Byte 0: Keyboard modifier bits (SHIFT, ALT, CTRL etc) 
Byte 1: reserved 
Byte 2-7: Up to six keyboard usage indexes representing the keys that are 
      currently "pressed". 
      Order is not important, a key is either pressed (present in the 
      buffer) or not pressed. 

참고로 키보드 보고서 형식을 설명

. 특정 키 기능에 할당 된 사용 코드를 나열합니다. 문자 "a"는 예를 들어 사용 코드 0x04입니다. 대문자 "A"를 원한다면 "Left Shift"(또는 "Right Shift")를 선택하기 위해 Byte 0 수정 자 비트를 설정해야합니다.

보고서 버퍼의 정확한 형식은 키보드를 USB 포트에 꽂았을 때 호스트 컴퓨터로 전송되는 보고서 설명자에 따라 달라 지므로 위의 예는 단지 일반적인 예입니다.

+0

감사합니다. 10 장은 HID 키보드가 하드웨어에서 특정 키 스트로크를 보내는 데 유용합니다. 예를 들어 마이크로 칩 HID 키보드 데모는 'a'키와 일치하는 4를 보냅니다. –

+0

경고 : QWERTY 키보드에만 해당됩니다. AZERTY 키보드에서 4는 'a'키가 아닌 'q'키와 연결됩니다. 즉, 코드는 지역 키보드 레이아웃에 따라 달라집니다. –

+0

@PierrePoliakoff 영어 키보드에 해당하는 * 기계식 레이아웃을 기반으로 코드가 * 고정 * (또는 있어야 함)라고 말한 것 같습니다. 예 : 동일한 키는 인쇄 된 문자에 관계없이 동일한 사용 ID를 생성합니다. – jiggunjer