35 lines
1.3 KiB
Markdown
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);
|
|
```
|