diff --git a/cores/arduino/USB/CDC.cpp b/cores/arduino/USB/CDC.cpp index 5a111dce9ba042b29acc429a469406a5040d80ec..4aa8071a4447ce1d82843595dd4a9c82d7534820 100644 --- a/cores/arduino/USB/CDC.cpp +++ b/cores/arduino/USB/CDC.cpp @@ -202,6 +202,13 @@ int Serial_::available(void) return (uint32_t)(CDC_SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % CDC_SERIAL_BUFFER_SIZE; } +int Serial_::availableForWrite(void) +{ + // return the number of bytes left in the current bank, + // always EP size - 1, because bank is flushed on every write + return (EPX_SIZE - 1); +} + int Serial_::peek(void) { ring_buffer *buffer = &cdc_rx_buffer; diff --git a/cores/arduino/USB/USBAPI.h b/cores/arduino/USB/USBAPI.h index 1de82660882fabfc5edaab5f869b69be10c629c2..716edbfd529900c8d390f7e07bf9b31068a86f04 100644 --- a/cores/arduino/USB/USBAPI.h +++ b/cores/arduino/USB/USBAPI.h @@ -118,6 +118,7 @@ public: void end(void); virtual int available(void); + virtual int availableForWrite(void); virtual void accept(void); virtual int peek(void); virtual int read(void);