Skip to content

Commit d7de810

Browse files
committed
Add availableForWrite method to Serial.
1 parent e873acd commit d7de810

File tree

4 files changed

+18
-0
lines changed

4 files changed

+18
-0
lines changed

cores/nRF5/Adafruit_TinyUSB_Core/Adafruit_USBD_CDC.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ size_t Adafruit_USBD_CDC::write(const uint8_t *buffer, size_t size)
125125
return size - remain;
126126
}
127127

128+
size_t Adafruit_USBD_CDC::availableForWrite(void)
129+
{
130+
return tud_cdc_availableForWrite();
131+
}
132+
128133
extern "C"
129134
{
130135

cores/nRF5/Adafruit_TinyUSB_Core/Adafruit_USBD_CDC.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class Adafruit_USBD_CDC : public Stream, Adafruit_USBD_Interface
5050
size_t write(const char *buffer, size_t size) {
5151
return write((const uint8_t *)buffer, size);
5252
}
53+
size_t availableForWrite(void);
5354
operator bool();
5455
};
5556

cores/nRF5/Adafruit_TinyUSB_Core/tinyusb/src/class/cdc/cdc_device.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,11 @@ bool tud_cdc_n_write_flush (uint8_t itf)
190190
return true;
191191
}
192192

193+
uint32_t tud_cdc_n_availableForWrite (uint8_t itf)
194+
{
195+
return CFG_TUD_CDC_TX_BUFSIZE - tu_fifo_count(&_cdcd_itf[itf].tx_ff);
196+
}
197+
193198

194199
//--------------------------------------------------------------------+
195200
// USBD Driver API

cores/nRF5/Adafruit_TinyUSB_Core/tinyusb/src/class/cdc/cdc_device.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ uint32_t tud_cdc_n_write_char (uint8_t itf, char ch);
6666
uint32_t tud_cdc_n_write (uint8_t itf, void const* buffer, uint32_t bufsize);
6767
uint32_t tud_cdc_n_write_str (uint8_t itf, char const* str);
6868
bool tud_cdc_n_write_flush (uint8_t itf);
69+
uint32_t tud_cdc_n_availableForWrite (uint8_t itf);
6970

7071
//--------------------------------------------------------------------+
7172
// Application API (Interface0)
@@ -85,6 +86,7 @@ static inline uint32_t tud_cdc_write_char (char ch);
8586
static inline uint32_t tud_cdc_write (void const* buffer, uint32_t bufsize);
8687
static inline uint32_t tud_cdc_write_str (char const* str);
8788
static inline bool tud_cdc_write_flush (void);
89+
static inline uint32_t tud_cdc_availableForWrite(void);
8890

8991
//--------------------------------------------------------------------+
9092
// Application Callback API (weak is optional)
@@ -170,6 +172,11 @@ static inline bool tud_cdc_write_flush (void)
170172
return tud_cdc_n_write_flush(0);
171173
}
172174

175+
static inline uint32_t tud_cdc_availableForWrite(void)
176+
{
177+
return tud_cdc_n_availableForWrite(0);
178+
}
179+
173180
/** @} */
174181
/** @} */
175182

0 commit comments

Comments
 (0)