@@ -112,17 +112,9 @@ ESPUSB::ESPUSB(size_t task_stack_size, uint8_t event_task_priority)
112112,webusb_enabled(false )
113113,webusb_url(" espressif.github.io/arduino-esp32/webusb.html" )
114114,_started(false )
115+ ,_task_stack_size(task_stack_size)
116+ ,_event_task_priority(event_task_priority)
115117{
116- esp_event_loop_args_t event_task_args = {
117- .queue_size = 5 ,
118- .task_name = " arduino_usb_events" ,
119- .task_priority = event_task_priority,
120- .task_stack_size = task_stack_size,
121- .task_core_id = tskNO_AFFINITY
122- };
123- if (esp_event_loop_create (&event_task_args, &arduino_usb_event_loop_handle) != ESP_OK) {
124- log_e (" esp_event_loop_create failed" );
125- }
126118}
127119
128120ESPUSB::~ESPUSB (){
@@ -133,6 +125,18 @@ ESPUSB::~ESPUSB(){
133125}
134126
135127bool ESPUSB::begin (){
128+ if (!arduino_usb_event_loop_handle) {
129+ esp_event_loop_args_t event_task_args = {
130+ .queue_size = 5 ,
131+ .task_name = " arduino_usb_events" ,
132+ .task_priority = _event_task_priority,
133+ .task_stack_size = _task_stack_size,
134+ .task_core_id = tskNO_AFFINITY
135+ };
136+ if (esp_event_loop_create (&event_task_args, &arduino_usb_event_loop_handle) != ESP_OK) {
137+ log_e (" esp_event_loop_create failed" );
138+ }
139+ }
136140 if (!_started){
137141 tinyusb_device_config_t tinyusb_device_config = {
138142 .vid = vid,
0 commit comments