Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Дескриптор кнопки hidgame  (Прочитано 4473 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ллирик
Помогающий

ru
Offline Offline
Пол: Мужской

« : 27-06-2019 00:59 » 

Подскажите, пожалуйста, какой дескриптор образуется в этом коде:
Код:
  /*
  * Now the buttons
  */
  for( Idx = 0x0; Idx < DeviceExtension->nButtons; Idx++ )
  {
  /* Report size is 1 bit for button */
  NEXT_BYTE(pucReport,  HIDP_GLOBAL_REPORT_SIZE);
  NEXT_BYTE(pucReport,  0x1);

  NEXT_BYTE(pucReport,  HIDP_LOCAL_USAGE_4);
  NEXT_BYTE(pucReport,  (UCHAR)(Idx + 1) );
  NEXT_BYTE(pucReport,  0x0);
  NEXT_BYTE(pucReport,  HID_USAGE_PAGE_BUTTON);
  NEXT_BYTE(pucReport,  0x0);

  /* Data field */
  NEXT_BYTE(pucReport,  HIDP_MAIN_INPUT_1);
  NEXT_BYTE(pucReport,  ITEM_BUTTON);

  /* 7 bits of constant data */
  NEXT_BYTE(pucReport,  HIDP_GLOBAL_REPORT_SIZE);
  NEXT_BYTE(pucReport,  0x7);
  NEXT_BYTE(pucReport,  HIDP_MAIN_INPUT_1);
  NEXT_BYTE(pucReport,  ITEM_PADDING);

  HGM_DBGPRINT( FILE_HIDJOY | HGM_GEN_REPORT, \
  ("HGM_GenerateReport:Button %u on",Idx ) ) ;
  }

  if( Idx < MAX_BUTTONS )
  {
  /* Constant report for 8 * unused buttons bits */
  NEXT_BYTE(pucReport,  HIDP_GLOBAL_REPORT_SIZE);
  NEXT_BYTE(pucReport,  (UCHAR)((MAX_BUTTONS-Idx)*8) );

  /* Constant Field */
  NEXT_BYTE(pucReport,  HIDP_MAIN_INPUT_1);
  NEXT_BYTE(pucReport,  ITEM_PADDING);
Обычные дескрипторы, вроде этого:
Код:
  HID_USAGE_PAGE(BUTTONS),
   HID_USAGE_MINIMUM(1, 1),
   HID_USAGE_MAXIMUM(1, 3),
   HID_LOGICAL_MINIMUM(1, 0),
   HID_LOGICAL_MAXIMUM(1, 1),
   HID_REPORT_COUNT(3),
   HID_REPORT_SIZE(1),
   HID_INPUT(DATA, VARIABLE, ABSOLUTE),
   HID_REPORT_COUNT(1),
   HID_REPORT_SIZE(5),
   HID_INPUT(CONSTANT),
почему-то вызывают сбой в других драйверах винды
« Последнее редактирование: 27-06-2019 12:32 от Ллирик » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 01-07-2019 15:56 » 

попробуйте при помощи  HID Descriptor Tool посмотреть. или вручную по полям вручную...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines