diff --git a/porting/espressif/el_serial_esp.cpp b/porting/espressif/el_serial_esp.cpp index b426dcae..a02f21df 100644 --- a/porting/espressif/el_serial_esp.cpp +++ b/porting/espressif/el_serial_esp.cpp @@ -27,15 +27,13 @@ #include +#include #include namespace edgelab { SerialEsp::SerialEsp(usb_serial_jtag_driver_config_t driver_config) - : _driver_config(driver_config), - _send_lock(), - _size(driver_config.rx_buffer_size), - _rb_rx(nullptr) {} + : _driver_config(driver_config), _send_lock(), _size(driver_config.rx_buffer_size), _rb_rx(nullptr) {} SerialEsp::~SerialEsp() { deinit(); } @@ -85,8 +83,8 @@ char SerialEsp::get_char() { std::size_t SerialEsp::get_line(char* buffer, size_t size, const char delim) { if (!this->_is_present) return 0; - size_t rlen = 0; - char rbuf[32] = {0}; // Most commands are less than 32 bytes long + size_t rlen = 0; + char rbuf[32] = {0}; // Most commands are less than 32 bytes long do { rlen = usb_serial_jtag_read_bytes(rbuf, sizeof(rbuf), 1 / portTICK_PERIOD_MS); this->_rb_rx->put(rbuf, rlen); @@ -127,6 +125,9 @@ std::size_t SerialEsp::send_bytes(const char* buffer, size_t size) { size -= bytes_to_send; } + // ! https://github.com/espressif/esp-idf/issues/13162 + fsync(fileno(stdout)); + return sent; }