espressif_idf-extra-components/usb/esp_modem_usb_dte/README.md

35 lines
1.3 KiB
Markdown

# USB DTE plugin for esp_modem
> :warning: **Experimental feature**: USB DTE is under development!
This component extends [esp_modem](https://components.espressif.com/component/espressif/esp_modem) with USB DTE.
## Examples
For example usage see esp_modem examples:
* [console example](https://github.com/espressif/esp-protocols/tree/master/components/esp_modem/examples/modem_console)
* [PPPoS example](https://github.com/espressif/esp-protocols/tree/master/components/esp_modem/examples/pppos_client)
## USB hotplugging and reconnection
USB DTE supports device reconnection and hot-plugging. You must only register callback function for `DEVICE_GONE` event and react accordingly:
C++ with lambda callback:
```cpp
auto dte = create_usb_dte(&dte_config);
dte->set_error_cb([&](terminal_error err) {
if (err == terminal_error::DEVICE_GONE) {
// Signal your application that USB modem device has been disconnected
}
});
```
C:
```c
static void usb_terminal_error_handler(esp_modem_terminal_error_t err) {
if (err == ESP_MODEM_TERMINAL_DEVICE_GONE) {
// Signal your application that USB modem device has been disconnected
}
}
esp_modem_dce_t *dce = esp_modem_new_dev_usb(ESP_MODEM_DCE_BG96, &dte_usb_config, &dce_config, esp_netif);
esp_modem_set_error_cb(dce, usb_terminal_error_handler);
```