diff --git a/Adafruit_USBD_CDC.cpp b/Adafruit_USBD_CDC.cpp index 0218feb..b3b2399 100644 --- a/Adafruit_USBD_CDC.cpp +++ b/Adafruit_USBD_CDC.cpp @@ -67,6 +67,38 @@ void Adafruit_USBD_CDC::end(void) // nothing to do } +uint32_t Adafruit_USBD_CDC::baud(void) +{ + cdc_line_coding_t coding; + tud_cdc_get_line_coding(&coding); + + return coding.bit_rate; +} + +uint8_t Adafruit_USBD_CDC::stopbits(void) +{ + cdc_line_coding_t coding; + tud_cdc_get_line_coding(&coding); + + return coding.stop_bits; +} + +uint8_t Adafruit_USBD_CDC::paritytype(void) +{ + cdc_line_coding_t coding; + tud_cdc_get_line_coding(&coding); + + return coding.parity; +} + +uint8_t Adafruit_USBD_CDC::numbits(void) +{ + cdc_line_coding_t coding; + tud_cdc_get_line_coding(&coding); + + return coding.data_bits; +} + Adafruit_USBD_CDC::operator bool() { bool ret = tud_cdc_connected(); diff --git a/Adafruit_USBD_CDC.h b/Adafruit_USBD_CDC.h index f582292..6b4663d 100644 --- a/Adafruit_USBD_CDC.h +++ b/Adafruit_USBD_CDC.h @@ -41,6 +41,12 @@ class Adafruit_USBD_CDC : public Stream, public Adafruit_USBD_Interface void begin(uint32_t baud, uint8_t config); void end(void); + // return line coding set by host + uint32_t baud(void); + uint8_t stopbits(void); + uint8_t paritytype(void); + uint8_t numbits(void); + virtual int available(void); virtual int peek(void); virtual int read(void);