MCPcopy Create free account
hub / github.com/OpenEPaperLink/OpenEPaperLink / usbEventCallback

Function usbEventCallback

ESP32_AP-Flasher/src/usbflasher.cpp:236–298  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234
235#ifdef HAS_USB
236static void usbEventCallback(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
237 if (event_base == ARDUINO_USB_EVENTS) {
238 arduino_usb_event_data_t* data = (arduino_usb_event_data_t*)event_data;
239 switch (event_id) {
240 case ARDUINO_USB_STARTED_EVENT:
241 Serial.println("USB PLUGGED");
242 resetFlasherState();
243 break;
244 case ARDUINO_USB_STOPPED_EVENT:
245 Serial.println("USB UNPLUGGED");
246 resetFlasherState();
247 break;
248 case ARDUINO_USB_SUSPEND_EVENT:
249 Serial.printf("USB SUSPENDED: remote_wakeup_en: %u\r\n", data->suspend.remote_wakeup_en);
250 break;
251 case ARDUINO_USB_RESUME_EVENT:
252 Serial.println("USB RESUMED");
253 break;
254 default:
255 ets_printf("other USB event %d\n", event_id);
256 break;
257 }
258 } else if (event_base == ARDUINO_USB_CDC_EVENTS) {
259 arduino_usb_cdc_event_data_t* data = (arduino_usb_cdc_event_data_t*)event_data;
260 switch (event_id) {
261 case ARDUINO_USB_CDC_CONNECTED_EVENT:
262 ets_printf("CDC CONNECTED\n");
263 resetFlasherState();
264 usbConnectedStartTime = millis();
265 break;
266 case ARDUINO_USB_CDC_DISCONNECTED_EVENT:
267 ets_printf("CDC DISCONNECTED\n");
268 resetFlasherState();
269 break;
270 case ARDUINO_USB_CDC_LINE_STATE_EVENT:
271 ets_printf("CDC LINE STATE: dtr: %u, rts: %u\n", data->line_state.dtr, data->line_state.rts);
272 if (data->line_state.dtr == 0) resetFlasherState();
273 break;
274 case ARDUINO_USB_CDC_LINE_CODING_EVENT:
275 ets_printf("CDC LINE CODING: bit_rate: %u, data_bits: %u, stop_bits: %u, parity: %u\n", data->line_coding.bit_rate, data->line_coding.data_bits, data->line_coding.stop_bits, data->line_coding.parity);
276 resetFlasherState();
277 break;
278 case ARDUINO_USB_CDC_RX_EVENT:
279 // Serial.printf("CDC RX [%u]:", data->rx.len);
280 {
281 uint8_t buf[data->rx.len];
282 size_t len = cmdSerial.read(buf, data->rx.len);
283 if (serialPassthroughState) {
284 Serial2.write(buf, len);
285 } else {
286 flasherDataHandler(buf, len, TRANSPORT_USB);
287 }
288 }
289 break;
290 case ARDUINO_USB_CDC_RX_OVERFLOW_EVENT:
291 Serial.printf("CDC RX Overflow of %d bytes", data->rx_overflow.dropped_bytes);
292 break;
293

Callers

nothing calls this directly

Calls 6

flasherDataHandlerFunction · 0.85
printlnMethod · 0.80
printfMethod · 0.80
resetFlasherStateFunction · 0.70
readMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected