usb: Define CdcAcmDevice methods as virtual
Virtual methods can be overridden by derived class.
This commit is contained in:
parent
fd9ecc13c1
commit
76a75a9d47
|
@ -357,7 +357,7 @@ static esp_err_t cdc_acm_find_and_open_usb_device(uint16_t vid, uint16_t pid, in
|
|||
TimeOut_t connection_timeout;
|
||||
vTaskSetTimeOutState(&connection_timeout);
|
||||
|
||||
while (true) {
|
||||
do {
|
||||
ESP_LOGD(TAG, "Checking list of connected USB devices");
|
||||
uint8_t dev_addr_list[10];
|
||||
int num_of_devices;
|
||||
|
@ -380,12 +380,8 @@ static esp_err_t cdc_acm_find_and_open_usb_device(uint16_t vid, uint16_t pid, in
|
|||
}
|
||||
usb_host_device_close(p_cdc_acm_obj->cdc_acm_client_hdl, current_device);
|
||||
}
|
||||
|
||||
if (xTaskCheckForTimeOut(&connection_timeout, &timeout_ticks) != pdFALSE) {
|
||||
break; // Timeout elapsed and the device is not connected
|
||||
}
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
}
|
||||
} while (xTaskCheckForTimeOut(&connection_timeout, &timeout_ticks) == pdFALSE);
|
||||
|
||||
// Timeout was reached, clean-up
|
||||
free(*dev);
|
||||
|
@ -769,9 +765,10 @@ esp_err_t cdc_acm_host_open_vendor_specific(uint16_t vid, uint16_t pid, uint8_t
|
|||
|
||||
// Find underlying USB device
|
||||
cdc_dev_t *cdc_dev;
|
||||
ESP_GOTO_ON_ERROR(
|
||||
cdc_acm_find_and_open_usb_device(vid, pid, dev_config->connection_timeout_ms, &cdc_dev),
|
||||
exit, TAG, "USB device with VID: 0x%04X, PID: 0x%04X not found", vid, pid);
|
||||
ret = cdc_acm_find_and_open_usb_device(vid, pid, dev_config->connection_timeout_ms, &cdc_dev);
|
||||
if (ESP_OK != ret) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
// Open procedure for CDC-ACM non-compliant devices:
|
||||
const usb_config_desc_t *config_desc;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
version: "1.0.2"
|
||||
version: "1.0.3"
|
||||
description: USB Host CDC-ACM driver
|
||||
url: https://github.com/espressif/idf-extra-components/tree/master/usb/usb_host_cdc_acm
|
||||
dependencies:
|
||||
|
|
|
@ -275,7 +275,7 @@ class CdcAcmDevice {
|
|||
public:
|
||||
// Operators
|
||||
CdcAcmDevice() : cdc_hdl(NULL) {};
|
||||
~CdcAcmDevice()
|
||||
virtual ~CdcAcmDevice()
|
||||
{
|
||||
// Close CDC-ACM device, if it wasn't explicitly closed
|
||||
if (this->cdc_hdl != NULL) {
|
||||
|
@ -300,29 +300,29 @@ public:
|
|||
|
||||
inline esp_err_t close()
|
||||
{
|
||||
esp_err_t err = cdc_acm_host_close(this->cdc_hdl);
|
||||
const esp_err_t err = cdc_acm_host_close(this->cdc_hdl);
|
||||
if (err == ESP_OK) {
|
||||
this->cdc_hdl = NULL;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
inline esp_err_t line_coding_get(cdc_acm_line_coding_t *line_coding)
|
||||
virtual inline esp_err_t line_coding_get(cdc_acm_line_coding_t *line_coding) const
|
||||
{
|
||||
return cdc_acm_host_line_coding_get(this->cdc_hdl, line_coding);
|
||||
}
|
||||
|
||||
inline esp_err_t line_coding_set(cdc_acm_line_coding_t *line_coding)
|
||||
virtual inline esp_err_t line_coding_set(cdc_acm_line_coding_t *line_coding)
|
||||
{
|
||||
return cdc_acm_host_line_coding_set(this->cdc_hdl, line_coding);
|
||||
}
|
||||
|
||||
inline esp_err_t set_control_line_state(bool dtr, bool rts)
|
||||
virtual inline esp_err_t set_control_line_state(bool dtr, bool rts)
|
||||
{
|
||||
return cdc_acm_host_set_control_line_state(this->cdc_hdl, dtr, rts);
|
||||
}
|
||||
|
||||
inline esp_err_t send_break(uint16_t duration_ms)
|
||||
virtual inline esp_err_t send_break(uint16_t duration_ms)
|
||||
{
|
||||
return cdc_acm_host_send_break(this->cdc_hdl, duration_ms);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue