add test for mouse_open
add hid descriptor for mouse & mouse interface to descriptor_test refractor extract function hidh_interface_status fix error with MACRO HID_REPORT_ITEM with zero data size --> redundant semicolon
This commit is contained in:
		@@ -47,6 +47,10 @@
 | 
			
		||||
 | 
			
		||||
extern hidh_interface_info_t mouse_data[TUSB_CFG_HOST_DEVICE_MAX];
 | 
			
		||||
hidh_interface_info_t *p_hidh_mouse;
 | 
			
		||||
 | 
			
		||||
tusb_descriptor_interface_t const *p_mouse_interface_desc = &desc_configuration.mouse_interface;
 | 
			
		||||
tusb_descriptor_endpoint_t  const *p_mouse_endpoint_desc  = &desc_configuration.mouse_endpoint;
 | 
			
		||||
 | 
			
		||||
uint8_t dev_addr;
 | 
			
		||||
 | 
			
		||||
void setUp(void)
 | 
			
		||||
@@ -77,6 +81,7 @@ void test_mouse_init(void)
 | 
			
		||||
  TEST_ASSERT_MEM_ZERO(mouse_data, sizeof(hidh_interface_info_t)*TUSB_CFG_HOST_DEVICE_MAX);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//------------- is supported -------------//
 | 
			
		||||
void test_mouse_is_supported_fail_unplug(void)
 | 
			
		||||
{
 | 
			
		||||
  tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_UNPLUG);
 | 
			
		||||
@@ -96,8 +101,28 @@ void test_mouse_is_supported_ok(void)
 | 
			
		||||
  TEST_ASSERT_TRUE( tusbh_hid_mouse_is_supported(dev_addr) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void test_mouse_open_ok(void)
 | 
			
		||||
{
 | 
			
		||||
  uint16_t length=0;
 | 
			
		||||
  pipe_handle_t pipe_hdl = {.dev_addr = dev_addr, .xfer_type = TUSB_XFER_INTERRUPT, .index = 2};
 | 
			
		||||
 | 
			
		||||
  hidh_init();
 | 
			
		||||
 | 
			
		||||
  hcd_pipe_open_ExpectAndReturn(dev_addr, p_mouse_endpoint_desc, TUSB_CLASS_HID, pipe_hdl);
 | 
			
		||||
 | 
			
		||||
  //------------- Code Under TEST -------------//
 | 
			
		||||
  TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, hidh_open_subtask(dev_addr, p_mouse_interface_desc, &length));
 | 
			
		||||
 | 
			
		||||
  TEST_ASSERT_PIPE_HANDLE(pipe_hdl, p_hidh_mouse->pipe_hdl);
 | 
			
		||||
  TEST_ASSERT_EQUAL(8, p_hidh_mouse->report_size);
 | 
			
		||||
  TEST_ASSERT_EQUAL(sizeof(tusb_descriptor_interface_t) + sizeof(tusb_hid_descriptor_hid_t) + sizeof(tusb_descriptor_endpoint_t),
 | 
			
		||||
                    length);
 | 
			
		||||
 | 
			
		||||
  tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_CONFIGURED);
 | 
			
		||||
  TEST_ASSERT_TRUE( tusbh_hid_keyboard_is_supported(dev_addr) );
 | 
			
		||||
  TEST_ASSERT_EQUAL(TUSB_INTERFACE_STATUS_READY, p_hidh_mouse->status);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -92,10 +92,10 @@ const uint8_t keyboard_report_descriptor[] = {
 | 
			
		||||
      HID_OUTPUT       ( HID_CONSTANT                            ),
 | 
			
		||||
 | 
			
		||||
    HID_USAGE_PAGE (HID_USAGE_PAGE_KEYBOARD),
 | 
			
		||||
      HID_USAGE_MIN    ( 0                                       ),
 | 
			
		||||
      HID_USAGE_MAX    ( 101                                     ),
 | 
			
		||||
      HID_LOGICAL_MIN  ( 0                                       ),
 | 
			
		||||
      HID_LOGICAL_MAX  ( 101                                     ),
 | 
			
		||||
      HID_USAGE_MIN    ( 0                                   ),
 | 
			
		||||
      HID_USAGE_MAX    ( 101                                 ),
 | 
			
		||||
      HID_LOGICAL_MIN  ( 0                                   ),
 | 
			
		||||
      HID_LOGICAL_MAX  ( 101                                 ),
 | 
			
		||||
 | 
			
		||||
      HID_REPORT_COUNT ( 6                                   ),
 | 
			
		||||
      HID_REPORT_SIZE  ( 8                                   ),
 | 
			
		||||
@@ -103,6 +103,42 @@ const uint8_t keyboard_report_descriptor[] = {
 | 
			
		||||
  HID_COLLECTION_END
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
 | 
			
		||||
const uint8_t mouse_report_descriptor[] = {
 | 
			
		||||
  HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP     ),
 | 
			
		||||
  HID_USAGE      ( HID_USAGE_DESKTOP_MOUSE    ),
 | 
			
		||||
  HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
 | 
			
		||||
    HID_USAGE      (HID_USAGE_DESKTOP_POINTER),
 | 
			
		||||
 | 
			
		||||
    HID_COLLECTION ( HID_COLLECTION_PHYSICAL ),
 | 
			
		||||
      HID_USAGE_PAGE  ( HID_USAGE_PAGE_BUTTON ),
 | 
			
		||||
        HID_USAGE_MIN    ( 1                                      ),
 | 
			
		||||
        HID_USAGE_MAX    ( 3                                      ),
 | 
			
		||||
        HID_LOGICAL_MIN  ( 0                                      ),
 | 
			
		||||
        HID_LOGICAL_MAX  ( 1                                      ),
 | 
			
		||||
 | 
			
		||||
        HID_REPORT_COUNT ( 3                                      ), /* Left, Right and Middle mouse*/
 | 
			
		||||
        HID_REPORT_SIZE  ( 1                                      ),
 | 
			
		||||
        HID_INPUT        ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
 | 
			
		||||
 | 
			
		||||
        HID_REPORT_COUNT ( 1                                      ),
 | 
			
		||||
        HID_REPORT_SIZE  ( 5                                      ),
 | 
			
		||||
        HID_INPUT        ( HID_CONSTANT                           ), /* reserved */
 | 
			
		||||
 | 
			
		||||
      HID_USAGE_PAGE  ( HID_USAGE_PAGE_DESKTOP ),
 | 
			
		||||
        HID_USAGE        ( HID_USAGE_DESKTOP_X                    ),
 | 
			
		||||
        HID_USAGE        ( HID_USAGE_DESKTOP_Y                    ),
 | 
			
		||||
        HID_LOGICAL_MIN  ( 0x81                                   ), /* -127 */
 | 
			
		||||
        HID_LOGICAL_MAX  ( 0x7f                                   ), /* 127  */
 | 
			
		||||
 | 
			
		||||
        HID_REPORT_COUNT ( 2                                      ), /* X, Y position */
 | 
			
		||||
        HID_REPORT_SIZE  ( 8                                      ),
 | 
			
		||||
        HID_INPUT        ( HID_DATA | HID_VARIABLE | HID_RELATIVE ), /* relative values */
 | 
			
		||||
    HID_COLLECTION_END,
 | 
			
		||||
 | 
			
		||||
  HID_COLLECTION_END
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
 | 
			
		||||
const app_configuration_desc_t desc_configuration =
 | 
			
		||||
{
 | 
			
		||||
@@ -120,7 +156,7 @@ const app_configuration_desc_t desc_configuration =
 | 
			
		||||
        .bMaxPower           = TUSB_DESC_CONFIG_POWER_MA(100)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    ///// USB HID Keyboard interface
 | 
			
		||||
    //------------- HID Keyboard -------------//
 | 
			
		||||
    .keyboard_interface =
 | 
			
		||||
    {
 | 
			
		||||
        .bLength            = sizeof(tusb_descriptor_interface_t),
 | 
			
		||||
@@ -155,5 +191,41 @@ const app_configuration_desc_t desc_configuration =
 | 
			
		||||
        .bInterval        = 0x0A
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    //------------- HID Mouse -------------//
 | 
			
		||||
    .mouse_interface =
 | 
			
		||||
    {
 | 
			
		||||
        .bLength            = sizeof(tusb_descriptor_interface_t),
 | 
			
		||||
        .bDescriptorType    = TUSB_DESC_INTERFACE,
 | 
			
		||||
        .bInterfaceNumber   = 2,
 | 
			
		||||
        .bAlternateSetting  = 0x00,
 | 
			
		||||
        .bNumEndpoints      = 1,
 | 
			
		||||
        .bInterfaceClass    = TUSB_CLASS_HID,
 | 
			
		||||
        .bInterfaceSubClass = HID_SUBCLASS_BOOT,
 | 
			
		||||
        .bInterfaceProtocol = HID_PROTOCOL_MOUSE,
 | 
			
		||||
        .iInterface         = 0x00
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    .mouse_hid =
 | 
			
		||||
    {
 | 
			
		||||
        .bLength           = sizeof(tusb_hid_descriptor_hid_t),
 | 
			
		||||
        .bDescriptorType   = HID_DESC_HID,
 | 
			
		||||
        .bcdHID            = 0x0111,
 | 
			
		||||
        .bCountryCode      = HID_Local_NotSupported,
 | 
			
		||||
        .bNumDescriptors   = 1,
 | 
			
		||||
        .bReportType       = HID_DESC_REPORT,
 | 
			
		||||
        .wReportLength     = sizeof(mouse_report_descriptor)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    .mouse_endpoint =
 | 
			
		||||
    {
 | 
			
		||||
        .bLength          = sizeof(tusb_descriptor_endpoint_t),
 | 
			
		||||
        .bDescriptorType  = TUSB_DESC_ENDPOINT,
 | 
			
		||||
        .bEndpointAddress = 0x82,
 | 
			
		||||
        .bmAttributes     = { .xfer = TUSB_XFER_INTERRUPT },
 | 
			
		||||
        .wMaxPacketSize   = 0x08,
 | 
			
		||||
        .bInterval        = 0x0A
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    .ConfigDescTermination = 0,
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -81,19 +81,15 @@ typedef struct
 | 
			
		||||
  tusb_descriptor_endpoint_t                     CDC_DataInEndpoint;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if 1 // || TUSB_CFG_DEVICE_HID_KEYBOARD
 | 
			
		||||
  //Keyboard HID Interface
 | 
			
		||||
  //------------- HID Keyboard -------------//
 | 
			
		||||
  tusb_descriptor_interface_t                    keyboard_interface;
 | 
			
		||||
  tusb_hid_descriptor_hid_t                      keyboard_hid;
 | 
			
		||||
  tusb_descriptor_endpoint_t                     keyboard_endpoint;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if 0 // && TUSB_CFG_DEVICE_HID_MOUSE
 | 
			
		||||
  //Mouse HID Interface
 | 
			
		||||
  tusb_descriptor_interface_t                    HID_MouseInterface;
 | 
			
		||||
  HID_DESCRIPTOR                              HID_MouseHID;
 | 
			
		||||
  tusb_descriptor_endpoint_t                     HID_MouseEndpoint;
 | 
			
		||||
#endif
 | 
			
		||||
  //------------- HID Mouse -------------//
 | 
			
		||||
  tusb_descriptor_interface_t                    mouse_interface;
 | 
			
		||||
  tusb_hid_descriptor_hid_t                      mouse_hid;
 | 
			
		||||
  tusb_descriptor_endpoint_t                     mouse_endpoint;
 | 
			
		||||
 | 
			
		||||
  unsigned char                               ConfigDescTermination;
 | 
			
		||||
} app_configuration_desc_t;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user