USB::CDC::Device Class Reference

Serial device implementation, in ACM mode. More...

#include <Device.h>

Inheritance diagram for USB::CDC::Device:
Collaboration diagram for USB::CDC::Device:

Public Member Functions

 Device (uint8_t idx, const char *name)
 
size_t setRxBufferSize (size_t size) override
 Sets receiving buffer size. More...
 
virtual size_t setTxBufferSize (size_t size) override
 Sets transmit buffer size. More...
 
int available () override
 Return the total length of the stream. More...
 
bool isFinished () override
 Check if all data has been read. More...
 
int read () override
 Read one character and moves the stream pointer. More...
 
size_t readBytes (char *buffer, size_t length) override
 Read chars from stream into buffer. More...
 
int peek () override
 Read a character without advancing the stream pointer. More...
 
void clear (SerialMode mode=SERIAL_FULL) override
 Clear the serial port transmit/receive buffers. More...
 
void flush () override
 
size_t write (const uint8_t *buffer, size_t size) override
 Write chars to stream. More...
 
- Public Member Functions inherited from USB::DeviceInterface
 DeviceInterface (uint8_t instance, const char *name)
 Constructor. More...
 
const char * getName () const
 
- Public Member Functions inherited from USB::CDC::UsbSerial
void setTxWait (bool wait)
 Governs write behaviour when UART transmit buffers are full. More...
 
uint16_t readMemoryBlock (char *buf, int max_len) override
 Read a block of memory. More...
 
bool seek (int len) override
 Move read cursor. More...
 
void systemDebugOutput (bool enabled)
 Configure serial port for system debug output and redirect output from debugf. More...
 
bool onDataReceived (DataReceived callback)
 
bool onTransmitComplete (TransmitComplete callback)
 
unsigned getStatus ()
 Get status error flags and clear them. More...
 
void handleEvent (Event event)
 
- Public Member Functions inherited from ReadWriteStream
size_t write (uint8_t charToWrite) override
 From Stream class: We don't write using this stream. More...
 
virtual size_t copyFrom (IDataSourceStream *source, size_t size=SIZE_MAX)
 Copy data from a source stream. More...
 
virtual size_t write (uint8_t c)=0
 Writes a single character to output stream. More...
 
size_t write (const char *str)
 Writes a c-string to output stream. More...
 
virtual size_t write (const uint8_t *buffer, size_t size)
 Writes characters from a buffer to output stream. More...
 
size_t write (const char *buffer, size_t size)
 Writes characters from a buffer to output stream. More...
 
- Public Member Functions inherited from IDataSourceStream
virtual StreamType getStreamType () const
 Get the stream type. More...
 
virtual bool isValid () const
 Determine if the stream object contains valid data. More...
 
virtual int seekFrom (int offset, SeekOrigin origin)
 Change position in stream. More...
 
virtual String id () const
 Returns unique id of the resource. More...
 
virtual String getName () const
 Returns name of the resource. More...
 
virtual MimeType getMimeType () const
 Get MIME type for stream content. More...
 
String readString (size_t maxLen) override
 Overrides Stream method for more efficient reading. More...
 
virtual bool moveString (String &s)
 Memory-based streams may be able to move content into a String. More...
 
virtual size_t readBytes (char *buffer, size_t length)
 Read chars from stream into buffer. More...
 
size_t readBytes (uint8_t *buffer, size_t length)
 
- Public Member Functions inherited from Stream
 Stream ()
 
void setTimeout (unsigned long timeout)
 Set maximum milliseconds to wait for stream data, default is 1 second. More...
 
bool find (const char *target)
 Read data from the stream until the target string is found. More...
 
bool find (const char *target, size_t length)
 Read data from the stream until the target string of given length is found. More...
 
bool findUntil (const char *target, const char *terminator)
 As find() but search ends if the terminator string is found. More...
 
bool findUntil (const char *target, size_t targetLen, const char *terminate, size_t termLen)
 As findUntil(const char*, const char*) but search ends if the terminate string is found. More...
 
long parseInt ()
 Returns the first valid (long) integer value from the current position. More...
 
float parseFloat ()
 float version of parseInt More...
 
size_t readBytes (uint8_t *buffer, size_t length)
 
size_t readBytesUntil (char terminator, char *buffer, size_t length)
 As readBytes() with terminator character. More...
 
String readStringUntil (char terminator)
 
virtual int indexOf (char c)
 
- Public Member Functions inherited from Print
virtual ~Print ()
 
int getWriteError ()
 Gets last error. More...
 
void clearWriteError ()
 Clears the last write error. More...
 
size_t write (const char *str)
 Writes a c-string to output stream. More...
 
size_t write (const char *buffer, size_t size)
 Writes characters from a buffer to output stream. More...
 
size_t print (char c)
 Prints a single character to output stream. More...
 
size_t print (const char str[])
 Prints a c-string to output stream. More...
 
size_t print (double num, int digits=2)
 Print a floating-point number to output stream. More...
 
template<typename T >
std::enable_if< has_printTo< T >::value, size_t >::type print (const T &obj)
 Prints a Printable object to output stream. More...
 
size_t print (const String &s)
 Prints a String to output stream. More...
 
template<typename E >
std::enable_if< std::is_enum< E >::value &&!std::is_convertible< E, int >::value, size_t >::type print (E value)
 enums can be printed as strings provided they have a toString(E) implementation. More...
 
size_t println ()
 Prints a newline to output stream. More...
 
template<typename... Args>
size_t println (const Args &... args)
 Print value plus newline to output stream. More...
 
size_t printf (const char *fmt,...)
 Prints a formatted c-string to output stream. More...
 
size_t print (unsigned long num, uint8_t base=DEC)
 
template<typename... Args>
size_t print (unsigned long num, Args... args)
 
template<typename... Args>
size_t print (const unsigned long long &num, Args... args)
 
size_t print (long num, uint8_t base=DEC)
 
template<typename... Args>
size_t print (long num, Args... args)
 
template<typename... Args>
size_t print (const long long &num, Args... args)
 
template<typename... Args>
size_t print (unsigned int num, Args... args)
 
template<typename... Args>
size_t print (unsigned char num, Args... args)
 
template<typename... Args>
size_t print (int num, Args... args)
 

Additional Inherited Members

- Public Types inherited from USB::CDC::UsbSerial
using DataReceived = StreamDataReceivedDelegate
 
using TransmitComplete = Delegate< void(UsbSerial &device)>
 
- Protected Member Functions inherited from USB::CDC::UsbSerial
void queueFlush ()
 
- Protected Member Functions inherited from Stream
int timedRead ()
 
int timedPeek ()
 
int peekNextDigit ()
 returns the next numeric digit in the stream or -1 if timeout More...
 
long parseInt (char skipChar)
 Like regular parseInt() but the given skipChar is ignored. More...
 
float parseFloat (char skipChar)
 Like parseInt(skipChar) for float. More...
 
- Protected Member Functions inherited from Print
void setWriteError (int err=1)
 
- Protected Attributes inherited from USB::DeviceInterface
uint8_t inst
 
const char * name
 
- Protected Attributes inherited from USB::CDC::UsbSerial
uart_options_t options {_BV(UART_OPT_TXWAIT)}
 
- Protected Attributes inherited from Stream
uint16_t receiveTimeout = 1000
 number of milliseconds to wait for the next char before aborting timed read More...
 

Detailed Description

Serial device implementation, in ACM mode.

Constructor & Destructor Documentation

◆ Device()

USB::CDC::Device::Device ( uint8_t  idx,
const char *  name 
)

Member Function Documentation

◆ available()

int USB::CDC::Device::available ( )
inlineoverridevirtual

Return the total length of the stream.

Return values
int-1 is returned when the size cannot be determined

Reimplemented from IDataSourceStream.

◆ clear()

void USB::CDC::Device::clear ( SerialMode  mode = SERIAL_FULL)
inlineoverridevirtual

Clear the serial port transmit/receive buffers.

Parameters
modeWhether to flush TX, RX or both (the default)
Note
All un-read buffered data is removed and any error condition cleared

Implements USB::CDC::UsbSerial.

◆ flush()

void USB::CDC::Device::flush ( )
inlineoverridevirtual

Reimplemented from IDataSourceStream.

◆ isFinished()

bool USB::CDC::Device::isFinished ( )
inlineoverridevirtual

Check if all data has been read.

Return values
boolTrue on success.

Implements IDataSourceStream.

◆ peek()

int USB::CDC::Device::peek ( )
inlineoverridevirtual

Read a character without advancing the stream pointer.

Return values
intThe character that was read or -1 if none is available

Reimplemented from IDataSourceStream.

◆ read()

int USB::CDC::Device::read ( )
inlineoverridevirtual

Read one character and moves the stream pointer.

Return values
Thecharacter that was read or -1 if none is available

Reimplemented from IDataSourceStream.

◆ readBytes()

size_t USB::CDC::Device::readBytes ( char *  buffer,
size_t  length 
)
inlineoverridevirtual

Read chars from stream into buffer.

Terminates if length characters have been read or timeout (see setTimeout). Returns the number of characters placed in the buffer (0 means no valid data found).

Note
Inherited classes may provide more efficient implementations without timeout.

Reimplemented from IDataSourceStream.

◆ setRxBufferSize()

size_t USB::CDC::Device::setRxBufferSize ( size_t  size)
inlineoverridevirtual

Sets receiving buffer size.

Parameters
sizerequested size
Return values
size_tactual size

Implements USB::CDC::UsbSerial.

◆ setTxBufferSize()

virtual size_t USB::CDC::Device::setTxBufferSize ( size_t  size)
inlineoverridevirtual

Sets transmit buffer size.

Parameters
sizerequested size
Return values
size_tactual size

Implements USB::CDC::UsbSerial.

◆ write()

size_t USB::CDC::Device::write ( const uint8_t *  buffer,
size_t  size 
)
overridevirtual

Write chars to stream.

Parameters
bufferPointer to buffer to write to the stream
sizeQuantity of chars to write
Return values
size_tQuantity of chars written to stream
Note
Although this is defined in the Print class, ReadWriteStream uses this as the core output method so descendants are required to implement it

Implements ReadWriteStream.


The documentation for this class was generated from the following file: