Update USBTester for the new USB API

Update the class USBTester so it works with the new zero-copy
USBDevice API.
pull/9768/head
Russ Butler 2018-03-17 20:05:12 -05:00
parent 09c1d2cf1e
commit aedeee068a
2 changed files with 12 additions and 12 deletions

View File

@ -145,8 +145,10 @@ void USBTester::callback_set_configuration(uint8_t configuration)
// Configure endpoints > 0 // Configure endpoints > 0
endpoint_add(int_in, MAX_EP_SIZE, USB_EP_TYPE_INT); 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); 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_in, MAX_EP_SIZE, USB_EP_TYPE_BULK);
endpoint_add(bulk_out, MAX_EP_SIZE, USB_EP_TYPE_BULK, &USBTester::epbulk_out_callback); 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); 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_in, MAX_EP_SIZE, USB_EP_TYPE_INT);
endpoint_add(int_out, MAX_EP_SIZE, USB_EP_TYPE_INT, &USBTester::epint_out_callback); 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_in, MAX_EP_SIZE, USB_EP_TYPE_BULK);
endpoint_add(bulk_out, MAX_EP_SIZE, USB_EP_TYPE_BULK, &USBTester::epbulk_out_callback); 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); complete_set_interface(true);
return; 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_in, MIN_EP_SIZE, USB_EP_TYPE_INT);
endpoint_add(int_out, MIN_EP_SIZE, USB_EP_TYPE_INT, &USBTester::epint_out_callback); 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_in, MIN_EP_SIZE, USB_EP_TYPE_BULK);
endpoint_add(bulk_out, MIN_EP_SIZE, USB_EP_TYPE_BULK, &USBTester::epbulk_out_callback); 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); complete_set_interface(true);
return; return;
@ -350,20 +356,12 @@ const uint8_t *USBTester::configuration_desc()
void USBTester::epint_out_callback(usb_ep_t endpoint) void USBTester::epint_out_callback(usb_ep_t endpoint)
{ {
uint8_t buffer[65]; read_finish(endpoint);
uint32_t size = 0; read_start(endpoint, int_buf, sizeof(int_buf));
if (!read(endpoint, buffer, sizeof(buffer), &size)) {
return;
}
} }
void USBTester::epbulk_out_callback(usb_ep_t endpoint) void USBTester::epbulk_out_callback(usb_ep_t endpoint)
{ {
uint8_t buffer[65]; read_finish(endpoint);
uint32_t size = 0; read_start(endpoint, bulk_buf, sizeof(bulk_buf));
if (!read(endpoint, buffer, sizeof(buffer), &size)) {
return;
}
} }

View File

@ -73,8 +73,10 @@ protected:
protected: protected:
uint8_t bulk_in; uint8_t bulk_in;
uint8_t bulk_out; uint8_t bulk_out;
uint8_t bulk_buf[64];
uint8_t int_in; uint8_t int_in;
uint8_t int_out; uint8_t int_out;
uint8_t int_buf[64];
EventQueue *queue; EventQueue *queue;
virtual void callback_state_change(DeviceState new_state); virtual void callback_state_change(DeviceState new_state);