diff options
| author | hathach <[email protected]> | 2013-02-05 13:57:06 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-02-05 13:57:06 +0700 |
| commit | aeccdfde3f4462fae5e3b9cbb4eae76526bdb204 (patch) | |
| tree | b70a35ec9335c085817aa11208b7e37a7c02fc91 /tests/test/support | |
| parent | aa040c4c984039ba9b5820aa15fd0264582bc207 (diff) | |
remove TUSB prefix for class enum definitions
add most of HID USAGE TABLE and definitions etc ...
Diffstat (limited to 'tests/test/support')
| -rw-r--r-- | tests/test/support/descriptor_test.c | 159 | ||||
| -rw-r--r-- | tests/test/support/descriptor_test.h | 109 |
2 files changed, 268 insertions, 0 deletions
diff --git a/tests/test/support/descriptor_test.c b/tests/test/support/descriptor_test.c new file mode 100644 index 000000000..bbc5c72c6 --- /dev/null +++ b/tests/test/support/descriptor_test.c @@ -0,0 +1,159 @@ +/* + * descriptor_test.c + * + * Created on: Feb 5, 2013 + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +#include "tusb_option.h" +#include "descriptor_test.h" + +TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) +tusb_descriptor_device_t desc_device = +{ + .bLength = sizeof(tusb_descriptor_device_t), + .bDescriptorType = TUSB_DESC_DEVICE, + .bcdUSB = 0x0200, + .bDeviceClass = 0x00, + .bDeviceSubClass = 0x00, + .bDeviceProtocol = 0x00, + + .bMaxPacketSize0 = 64, + + .idVendor = 0x1FC9, + .idProduct = 0x4000, + .bcdDevice = 0x0100, + + .iManufacturer = 0x01, + .iProduct = 0x02, + .iSerialNumber = 0x03, + + .bNumConfigurations = 0x02 +} ; +// +TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) +const uint8_t keyboard_report_descriptor[] = { + HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ), + HID_USAGE ( HID_USAGE_DESKTOP_KEYBOARD ), + HID_COLLECTION ( HID_COLLECTION_APPLICATION ), + HID_USAGE_PAGE ( HID_USAGE_PAGE_KEYBOARD ), + HID_USAGE_MIN ( 224 ), + HID_USAGE_MAX ( 231 ), + HID_LOGICAL_MIN ( 0 ), + HID_LOGICAL_MAX ( 1 ), + + HID_REPORT_COUNT ( 8 ), /* 8 bits */ + HID_REPORT_SIZE ( 1 ), + HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), /* maskable modifier key */ + + HID_REPORT_COUNT ( 1 ), + HID_REPORT_SIZE ( 8 ), + HID_INPUT ( HID_CONSTANT ), /* reserved */ + + HID_USAGE_PAGE ( HID_USAGE_PAGE_LED ), + HID_USAGE_MIN ( 1 ), + HID_USAGE_MAX ( 5 ), + HID_REPORT_COUNT ( 5 ), + HID_REPORT_SIZE ( 1 ), + HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), /* 5-bit Led report */ + + HID_REPORT_COUNT ( 1 ), + HID_REPORT_SIZE ( 3 ), /* led padding */ + 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_REPORT_COUNT ( 6 ), + HID_REPORT_SIZE ( 8 ), + HID_INPUT ( HID_DATA | HID_ARRAY | HID_ABSOLUTE ), /* keycodes array 6 items */ + HID_COLLECTION_END +}; + +TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) +const app_configuration_desc_t desc_configuration = +{ + .configuration = + { + .bLength = sizeof(tusb_descriptor_configuration_t), + .bDescriptorType = TUSB_DESC_CONFIGURATION, + + .wTotalLength = sizeof(app_configuration_desc_t) - 1, // exclude termination + .bNumInterfaces = 1, + + .bConfigurationValue = 1, + .iConfiguration = 0x00, + .bmAttributes = TUSB_DESC_CONFIG_ATT_BUS_POWER, + .bMaxPower = TUSB_DESC_CONFIG_POWER_MA(100) + }, + + ///// USB HID Keyboard interface + .keyboard_interface = + { + .bLength = sizeof(tusb_descriptor_interface_t), + .bDescriptorType = TUSB_DESC_INTERFACE, + .bInterfaceNumber = 1, + .bAlternateSetting = 0x00, + .bNumEndpoints = 1, + .bInterfaceClass = TUSB_CLASS_HID, + .bInterfaceSubClass = HID_SUBCLASS_BOOT, + .bInterfaceProtocol = HID_PROTOCOL_KEYBOARD, + .iInterface = 0x00 + }, + + .keyboard_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(keyboard_report_descriptor) + }, + + .keyboard_endpoint = + { + .bLength = sizeof(tusb_descriptor_endpoint_t), + .bDescriptorType = TUSB_DESC_ENDPOINT, + .bEndpointAddress = 0x81, + .bmAttributes = { .xfer = TUSB_XFER_INTERRUPT }, + .wMaxPacketSize = 0x08, + .bInterval = 0x0A + }, + + .ConfigDescTermination = 0, +}; diff --git a/tests/test/support/descriptor_test.h b/tests/test/support/descriptor_test.h new file mode 100644 index 000000000..71f6351c9 --- /dev/null +++ b/tests/test/support/descriptor_test.h @@ -0,0 +1,109 @@ +/* + * descriptor_test.h + * + * Created on: Feb 5, 2013 + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +/** \file + * \brief TBD + * + * \note TBD + */ + +/** \ingroup TBD + * \defgroup TBD + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_TEST_DESCRIPTOR_H_ +#define _TUSB_TEST_DESCRIPTOR_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +#include "common/common.h" +#include "class/hid.h" + +typedef struct +{ + tusb_descriptor_configuration_t configuration; + +#if 0 //&& IAD_DESC_REQUIRED + tusb_descriptor_interface_association_t CDC_IAD; +#endif + +#if 0 //&& TUSB_CFG_DEVICE_CDC + //CDC - Serial + //CDC Control Interface + tusb_descriptor_interface_t CDC_CCI_Interface; + CDC_HEADER_DESCRIPTOR CDC_Header; + CDC_ABSTRACT_CONTROL_MANAGEMENT_DESCRIPTOR CDC_ACM; + CDC_UNION_1SLAVE_DESCRIPTOR CDC_Union; + tusb_descriptor_endpoint_t CDC_NotificationEndpoint; + + //CDC Data Interface + tusb_descriptor_interface_t CDC_DCI_Interface; + tusb_descriptor_endpoint_t CDC_DataOutEndpoint; + tusb_descriptor_endpoint_t CDC_DataInEndpoint; +#endif + +#if 1 // || TUSB_CFG_DEVICE_HID_KEYBOARD + //Keyboard HID Interface + 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 + + unsigned char ConfigDescTermination; +} app_configuration_desc_t; + +extern tusb_descriptor_device_t desc_device; + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_TEST_DESCRIPTOR_H_ */ + +/** @} */ |
