Skip to content

Commit 6e499d6

Browse files
maciejbocianski0xc0170
authored andcommitted
Update usb test to connect and block itself
Update the basic usb test so it does blocking itself since blocking connect was removed from USBDevice.
1 parent 853d3c4 commit 6e499d6

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

TESTS/usb_device/basic/USBTester.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@
3737
#define MAX_EP_SIZE 64
3838
#define MIN_EP_SIZE 8
3939

40+
#define EVENT_READY (1 << 0)
4041

41-
USBTester::USBTester(USBPhy *phy, uint16_t vendor_id, uint16_t product_id, uint16_t product_release, bool connect_blocking):
42+
43+
USBTester::USBTester(USBPhy *phy, uint16_t vendor_id, uint16_t product_id, uint16_t product_release):
4244
USBDevice(phy, vendor_id, product_id, product_release), reset_count(0), suspend_count(0),
4345
resume_count(0), interface_0_alt_set(NONE), interface_1_alt_set(NONE), configuration_set(NONE)
4446
{
@@ -56,7 +58,8 @@ USBTester::USBTester(USBPhy *phy, uint16_t vendor_id, uint16_t product_id, uint1
5658
configuration_desc(0);
5759

5860
init();
59-
USBDevice::connect(connect_blocking);
61+
USBDevice::connect();
62+
flags.wait_any(EVENT_READY, osWaitForever, false);
6063

6164
}
6265

@@ -105,7 +108,10 @@ const char *USBTester::get_iproduct_desc_string()
105108

106109
void USBTester::callback_state_change(DeviceState new_state)
107110
{
108-
if (new_state != Configured) {
111+
if (new_state == Configured) {
112+
flags.set(EVENT_READY);
113+
} else {
114+
flags.clear(EVENT_READY);
109115
configuration_set = NONE;
110116
interface_0_alt_set = NONE;
111117
interface_1_alt_set = NONE;

TESTS/usb_device/basic/USBTester.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "USBDescriptor.h"
2323
#include "USBDevice_Types.h"
2424
#include "EventQueue.h"
25+
#include "EventFlags.h"
2526

2627
#include "USBDevice.h"
2728

@@ -34,9 +35,8 @@ class USBTester: public USBDevice {
3435
* @param vendor_id Your vendor_id
3536
* @param product_id Your product_id
3637
* @param product_release Your product_release
37-
* @param connect_blocking define if the connection must be blocked if USB not plugged in
3838
*/
39-
USBTester(USBPhy *phy, uint16_t vendor_id, uint16_t product_id, uint16_t product_release, bool connect_blocking);
39+
USBTester(USBPhy *phy, uint16_t vendor_id, uint16_t product_id, uint16_t product_release);
4040

4141
~USBTester();
4242

@@ -107,6 +107,7 @@ class USBTester: public USBDevice {
107107
uint8_t int_out;
108108
uint8_t int_buf[64];
109109
EventQueue *queue;
110+
rtos::EventFlags flags;
110111
volatile uint32_t reset_count;
111112
volatile uint32_t suspend_count;
112113
volatile uint32_t resume_count;

TESTS/usb_device/basic/main.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void control_basic_test()
5151
char str[128] = {};
5252

5353
{
54-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
54+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
5555
sprintf (str, "%s %d %d", serial.get_serial_desc_string(), vendor_id, product_id);
5656
greentea_send_kv("control_basic_test", str);
5757
// Wait for host before terminating
@@ -69,7 +69,7 @@ void control_stall_test()
6969
char _value[128] = {};
7070

7171
{
72-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
72+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
7373
greentea_send_kv("control_stall_test", serial.get_serial_desc_string());
7474
// Wait for host before terminating
7575
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
@@ -86,7 +86,7 @@ void control_sizes_test()
8686
char _value[128] = {};
8787

8888
{
89-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
89+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
9090
greentea_send_kv("control_sizes_test", serial.get_serial_desc_string());
9191
// Wait for host before terminating
9292
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
@@ -103,7 +103,7 @@ void control_stress_test()
103103
char _value[128] = {};
104104

105105
{
106-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
106+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
107107
greentea_send_kv("control_stress_test", serial.get_serial_desc_string());
108108
// Wait for host before terminating
109109
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
@@ -123,7 +123,7 @@ void device_reset_test()
123123
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
124124
if (strcmp(_value, "false") != 0) {
125125

126-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
126+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
127127
serial.clear_reset_count();
128128
greentea_send_kv("device_reset_test", serial.get_serial_desc_string());
129129
while(serial.get_reset_count() == 0);
@@ -169,7 +169,7 @@ void device_soft_reconnection_test()
169169
const uint32_t reconnect_try_count = 3;
170170

171171
{
172-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
172+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
173173

174174
greentea_send_kv("device_soft_reconnection_test", serial.get_serial_desc_string());
175175
// Wait for host before terminating
@@ -211,7 +211,7 @@ void device_suspend_resume_test()
211211
char _value[128] = {};
212212

213213
{
214-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
214+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
215215
greentea_send_kv("device_suspend_resume_test", serial.get_serial_desc_string());
216216
printf("[1] suspend_count: %d resume_count: %d\n", serial.get_suspend_count(), serial.get_resume_count());
217217
serial.clear_suspend_count();
@@ -234,25 +234,25 @@ void repeated_construction_destruction_test()
234234
char _value[128] = {};
235235

236236
{
237-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
237+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
238238
TEST_ASSERT_EQUAL(true, serial.configured());
239239
}
240240

241241
wait_us(MIN_DISCONNECT_TIME_US);
242242
{
243-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
243+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
244244
TEST_ASSERT_EQUAL(true, serial.configured());
245245
}
246246

247247
wait_us(MIN_DISCONNECT_TIME_US);
248248
{
249-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
249+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
250250
TEST_ASSERT_EQUAL(true, serial.configured());
251251
}
252252

253253
wait_us(MIN_DISCONNECT_TIME_US);
254254
{
255-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
255+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
256256
TEST_ASSERT_EQUAL(true, serial.configured());
257257
greentea_send_kv("repeated_construction_destruction_test", serial.get_serial_desc_string());
258258
// Wait for host before terminating
@@ -262,7 +262,7 @@ void repeated_construction_destruction_test()
262262

263263
wait_us(MIN_DISCONNECT_TIME_US);
264264
{
265-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
265+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
266266
TEST_ASSERT_EQUAL(true, serial.configured());
267267
greentea_send_kv("repeated_construction_destruction_test", serial.get_serial_desc_string());
268268
// Wait for host before terminating
@@ -272,7 +272,7 @@ void repeated_construction_destruction_test()
272272

273273
wait_us(MIN_DISCONNECT_TIME_US);
274274
{
275-
USBTester serial(get_phy(), vendor_id, product_id, product_release, true);
275+
USBTester serial(get_phy(), vendor_id, product_id, product_release);
276276
TEST_ASSERT_EQUAL(true, serial.configured());
277277
greentea_send_kv("repeated_construction_destruction_test", serial.get_serial_desc_string());
278278
// Wait for host before terminating

0 commit comments

Comments
 (0)