From aedeee068a8096add0827aa85a3fbc8daa853c46 Mon Sep 17 00:00:00 2001 From: Russ Butler Date: Sat, 17 Mar 2018 20:05:12 -0500 Subject: [PATCH] Update USBTester for the new USB API Update the class USBTester so it works with the new zero-copy USBDevice API. --- TESTS/usb_device/basic/USBTester.cpp | 22 ++++++++++------------ TESTS/usb_device/basic/USBTester.h | 2 ++ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/TESTS/usb_device/basic/USBTester.cpp b/TESTS/usb_device/basic/USBTester.cpp index 5ccd7c6822..3235a3f855 100644 --- a/TESTS/usb_device/basic/USBTester.cpp +++ b/TESTS/usb_device/basic/USBTester.cpp @@ -145,8 +145,10 @@ void USBTester::callback_set_configuration(uint8_t configuration) // Configure endpoints > 0 endpoint_add(int_in, MAX_EP_SIZE, USB_EP_TYPE_INT); endpoint_add(int_out, MAX_EP_SIZE, USB_EP_TYPE_INT, &USBTester::epint_out_callback); + read_start(int_out, int_buf, sizeof(int_buf)); endpoint_add(bulk_in, MAX_EP_SIZE, USB_EP_TYPE_BULK); endpoint_add(bulk_out, MAX_EP_SIZE, USB_EP_TYPE_BULK, &USBTester::epbulk_out_callback); + read_start(bulk_out, bulk_buf, sizeof(bulk_buf)); complete_set_configuration(true); } @@ -161,8 +163,10 @@ void USBTester::callback_set_interface(uint16_t interface, uint8_t alternate) endpoint_add(int_in, MAX_EP_SIZE, USB_EP_TYPE_INT); endpoint_add(int_out, MAX_EP_SIZE, USB_EP_TYPE_INT, &USBTester::epint_out_callback); + read_start(int_out, int_buf, sizeof(int_buf)); endpoint_add(bulk_in, MAX_EP_SIZE, USB_EP_TYPE_BULK); endpoint_add(bulk_out, MAX_EP_SIZE, USB_EP_TYPE_BULK, &USBTester::epbulk_out_callback); + read_start(bulk_out, bulk_buf, sizeof(bulk_buf)); complete_set_interface(true); return; @@ -175,8 +179,10 @@ void USBTester::callback_set_interface(uint16_t interface, uint8_t alternate) endpoint_add(int_in, MIN_EP_SIZE, USB_EP_TYPE_INT); endpoint_add(int_out, MIN_EP_SIZE, USB_EP_TYPE_INT, &USBTester::epint_out_callback); + read_start(int_out, int_buf, sizeof(int_buf)); endpoint_add(bulk_in, MIN_EP_SIZE, USB_EP_TYPE_BULK); endpoint_add(bulk_out, MIN_EP_SIZE, USB_EP_TYPE_BULK, &USBTester::epbulk_out_callback); + read_start(bulk_out, bulk_buf, sizeof(bulk_buf)); complete_set_interface(true); return; @@ -350,20 +356,12 @@ const uint8_t *USBTester::configuration_desc() void USBTester::epint_out_callback(usb_ep_t endpoint) { - uint8_t buffer[65]; - uint32_t size = 0; - - if (!read(endpoint, buffer, sizeof(buffer), &size)) { - return; - } + read_finish(endpoint); + read_start(endpoint, int_buf, sizeof(int_buf)); } void USBTester::epbulk_out_callback(usb_ep_t endpoint) { - uint8_t buffer[65]; - uint32_t size = 0; - - if (!read(endpoint, buffer, sizeof(buffer), &size)) { - return; - } + read_finish(endpoint); + read_start(endpoint, bulk_buf, sizeof(bulk_buf)); } diff --git a/TESTS/usb_device/basic/USBTester.h b/TESTS/usb_device/basic/USBTester.h index 0e527af98a..7b56d3171e 100644 --- a/TESTS/usb_device/basic/USBTester.h +++ b/TESTS/usb_device/basic/USBTester.h @@ -73,8 +73,10 @@ protected: protected: uint8_t bulk_in; uint8_t bulk_out; + uint8_t bulk_buf[64]; uint8_t int_in; uint8_t int_out; + uint8_t int_buf[64]; EventQueue *queue; virtual void callback_state_change(DeviceState new_state);