hathach 7 лет назад
Родитель
Сommit
71934228d2
3 измененных файлов с 37 добавлено и 41 удалено
  1. 31 33
      examples/device/nrf52840/src/main.c
  2. 1 3
      src/device/usbd.c
  3. 5 5
      src/device/usbd_desc.c

+ 31 - 33
examples/device/nrf52840/src/main.c

@@ -103,7 +103,36 @@ void virtual_com_task(void)
 void usb_hid_task(void)
 {
   /*------------- Keyboard -------------*/
-  if ( tud_hid_keyboard_ready() )
+//  if ( tud_hid_keyboard_ready() )
+//  {
+//    // Poll every 10ms
+//    static tu_timeout_t tm = { .start = 0, .interval = 10 };
+//
+//    if ( !tu_timeout_expired(&tm) ) return; // not enough time
+//    tu_timeout_reset(&tm);
+//
+//    uint32_t const btn = board_buttons();
+//
+//    if ( btn )
+//    {
+//      uint8_t keycode[6] = { 0 };
+//
+//      for(uint8_t i=0; i < 6; i++)
+//      {
+//        if ( btn & (1 << i) ) keycode[i] = HID_KEY_A + i;
+//      }
+//
+//      tud_hid_keyboard_keycode(0, keycode);
+//    }else
+//    {
+//      // Null means all zeroes keycodes
+//      tud_hid_keyboard_keycode(0, NULL);
+//    }
+//  }
+
+
+  /*------------- Mouse -------------*/
+  if ( tud_hid_mouse_ready() )
   {
     // Poll every 10ms
     static tu_timeout_t tm = { .start = 0, .interval = 10 };
@@ -115,40 +144,9 @@ void usb_hid_task(void)
 
     if ( btn )
     {
-      uint8_t keycode[6] = { 0 };
-
-      for(uint8_t i=0; i < 6; i++)
-      {
-        if ( btn & (1 << i) ) keycode[i] = HID_KEY_A + i;
-      }
-
-      tud_hid_keyboard_keycode(0, keycode);
-    }else
-    {
-      // Null means all zeroes keycodes
-      tud_hid_keyboard_keycode(0, NULL);
+      tud_hid_mouse_data(0, 10, 0, 0, 0);
     }
   }
-
-
-  /*------------- Mouse -------------*/
-  //    if ( tud_hid_mouse_ready() )
-  //    {
-  //      // Poll every 10ms
-  //      static tu_timeout_t tm = { .start = 0, .interval = 10 };
-  //
-  //      if ( !tu_timeout_expired(&tm) ) return; // not enough time
-  //      tu_timeout_reset(&tm);
-  //
-  //      uint32_t const btn = board_buttons();
-  //
-  //      if ( btn )
-  //      {
-  //        hid_mouse_report_t report = { .buttons = 0, .x = 10, .y = 0, .wheel = 0 };
-  //        tud_hid_mouse_report(&report);
-  //      }
-  //    }
-
 }
 
 

+ 1 - 3
src/device/usbd.c

@@ -353,8 +353,6 @@ static tusb_error_t proc_control_request_st(uint8_t rhport, tusb_control_request
   error = TUSB_ERROR_NONE;
 
   //------------- Standard Request e.g in enumeration -------------//
-  /* Microsoft Windows will awkwardly get HID Report Descriptor with
-   * Recipient = Device instead of Interface */
   if( TUSB_REQ_RCPT_DEVICE    == p_request->bmRequestType_bit.recipient &&
       TUSB_REQ_TYPE_STANDARD  == p_request->bmRequestType_bit.type )
   {
@@ -398,7 +396,7 @@ static tusb_error_t proc_control_request_st(uint8_t rhport, tusb_control_request
   }
 
   //------------- Class/Interface Specific Request -------------//
-  else if ( TUSB_REQ_RCPT_INTERFACE == p_request->bmRequestType_bit.recipient)
+  else if ( TUSB_REQ_RCPT_INTERFACE == p_request->bmRequestType_bit.recipient )
   {
     if (_usbd_dev.itf2drv[ u16_low_u8(p_request->wIndex) ] < USBD_CLASS_DRIVER_COUNT)
     {

+ 5 - 5
src/device/usbd_desc.c

@@ -118,7 +118,7 @@
 // Keyboard Report Descriptor
 //--------------------------------------------------------------------+
 #if CFG_TUD_HID_KEYBOARD
-ATTR_PACKED uint8_t const _desc_auto_hid_kbd_report[] = {
+uint8_t const _desc_auto_hid_kbd_report[] = {
   HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP     ),
   HID_USAGE      ( HID_USAGE_DESKTOP_KEYBOARD ),
   HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
@@ -170,7 +170,7 @@ ATTR_PACKED uint8_t const _desc_auto_hid_kbd_report[] = {
 // Mouse Report Descriptor
 //--------------------------------------------------------------------+
 #if CFG_TUD_HID_MOUSE
-ATTR_PACKED uint8_t const _desc_auto_hid_mse_report[] = {
+uint8_t const _desc_auto_hid_mse_report[] = {
   HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP     ),
   HID_USAGE      ( HID_USAGE_DESKTOP_MOUSE    ),
   HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
@@ -179,18 +179,18 @@ ATTR_PACKED uint8_t const _desc_auto_hid_mse_report[] = {
     HID_COLLECTION ( HID_COLLECTION_PHYSICAL ),
       HID_USAGE_PAGE  ( HID_USAGE_PAGE_BUTTON ),
         HID_USAGE_MIN    ( 1                                      ),
-        HID_USAGE_MAX    ( 5                                      ),
+        HID_USAGE_MAX    ( 3                                      ),
         HID_LOGICAL_MIN  ( 0                                      ),
         HID_LOGICAL_MAX  ( 1                                      ),
 
         // Left, Right, Middle, Backward, Forward mouse buttons
-        HID_REPORT_COUNT ( 5                                      ),
+        HID_REPORT_COUNT ( 3                                      ),
         HID_REPORT_SIZE  ( 1                                      ),
         HID_INPUT        ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
 
         // 3 bit padding
         HID_REPORT_COUNT ( 1                                      ),
-        HID_REPORT_SIZE  ( 3                                      ),
+        HID_REPORT_SIZE  ( 5                                      ),
         HID_INPUT        ( HID_CONSTANT                           ),
 
       HID_USAGE_PAGE  ( HID_USAGE_PAGE_DESKTOP ),