QMK 펌웨어가 키보드에 대해 수행하는 작업을 구현하려고 하지만 소프트웨어를 사용하고 있습니다. 그래서 키프레임을 끄고 일부 키프레임을 다른 키프레임, 레이어 등으로 교체하고 싶습니다.
검색을 하면 가장 먼저 떠오르는 것은이 예. 문제는 바이너리를 실행하는 터미널에 포커스가 있을 때만 테스트 실행이 작동한다는 것입니다. 그리고 윈도우 시스템을 우회하고 싶습니다.
또한 코드에 이 배열이 표시되는데 어떻게 채우는지 모르겠습니다.
static unsigned char rdesc[] = {
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x02, /* USAGE (Mouse) */
0xa1, 0x01, /* COLLECTION (Application) */
0x09, 0x01, /* USAGE (Pointer) */
0xa1, 0x00, /* COLLECTION (Physical) */
0x85, 0x01, /* REPORT_ID (1) */
0x05, 0x09, /* USAGE_PAGE (Button) */
0x19, 0x01, /* USAGE_MINIMUM (Button 1) */
0x29, 0x03, /* USAGE_MAXIMUM (Button 3) */
0x15, 0x00, /* LOGICAL_MINIMUM (0) */
0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
0x95, 0x03, /* REPORT_COUNT (3) */
0x75, 0x01, /* REPORT_SIZE (1) */
0x81, 0x02, /* INPUT (Data,Var,Abs) */
0x95, 0x01, /* REPORT_COUNT (1) */
0x75, 0x05, /* REPORT_SIZE (5) */
0x81, 0x01, /* INPUT (Cnst,Var,Abs) */
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x30, /* USAGE (X) */
0x09, 0x31, /* USAGE (Y) */
0x09, 0x38, /* USAGE (WHEEL) */
0x15, 0x81, /* LOGICAL_MINIMUM (-127) */
0x25, 0x7f, /* LOGICAL_MAXIMUM (127) */
0x75, 0x08, /* REPORT_SIZE (8) */
0x95, 0x03, /* REPORT_COUNT (3) */
0x81, 0x06, /* INPUT (Data,Var,Rel) */
0xc0, /* END_COLLECTION */
0xc0, /* END_COLLECTION */
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x06, /* USAGE (Keyboard) */
0xa1, 0x01, /* COLLECTION (Application) */
0x85, 0x02, /* REPORT_ID (2) */
0x05, 0x08, /* USAGE_PAGE (Led) */
0x19, 0x01, /* USAGE_MINIMUM (1) */
0x29, 0x03, /* USAGE_MAXIMUM (3) */
0x15, 0x00, /* LOGICAL_MINIMUM (0) */
0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
0x95, 0x03, /* REPORT_COUNT (3) */
0x75, 0x01, /* REPORT_SIZE (1) */
0x91, 0x02, /* Output (Data,Var,Abs) */
0x95, 0x01, /* REPORT_COUNT (1) */
0x75, 0x05, /* REPORT_SIZE (5) */
0x91, 0x01, /* Output (Cnst,Var,Abs) */
0xc0, /* END_COLLECTION */
};
이 문제에 대한 더 이상 문서를 찾을 수 없습니다. 이 시점에서는 내가 하고 싶은 일을 할 수 있을지조차 확신할 수 없습니다. 비슷한 걸 본 적이 있어요모나드나는 일하러 갈 수 없습니다.
마지막으로 내 질문은 다음과 같습니다.
rdesc
키보드에 배열을 채우는 방법은 무엇입니까 ?- 윈도우 시스템을 우회하는 방법은 무엇입니까?
- UHID에 대한 문서는 어디서 찾을 수 있나요?
답변1
나는 이것을 스스로 알아내려고 노력하고 있으며 이 게시물을 계속 탐색하고 있습니다. 찾은 것 같아요. 여기 rdisc 변수는 다음과 같습니다.HID 보고서 설명자. 이 커널 문서 페이지에는 다음 내용이 나와 있습니다.
HID 보고서 설명자의 형식은 USB 구현자 포럼 HID 웹페이지에서 제공되는 두 가지 문서로 설명됩니다.
커널 문서는 구체적으로 다음 링크로 연결됩니다.HID USB 장치 클래스 정의그리고HID 사용표.
이렇게 하면 첫 번째 문제가 해결됩니다. 세 번째 질문에는 다음이 있습니다.이 문서, UHID는 기본적으로 사용자 공간 HID 드라이버를 위한 접착제일 뿐이고 일반 HID 문서에서 더 많은 정보를 얻을 수 있기 때문에 이는 드물다. 죄송합니다. 두 번째 질문에 어떻게 답변해야 할지 모르겠습니다.