hub.USB_VCP – USB_VCP

This class allows you to send and receive data from another device using USB.

class hub.USB_VCP(id=0)

Create a stream-like object representing the USB virtual comm port. It can be used to read and write data over USB to the connected host.

Only id=0 can be used.

init(flow=- 1)None

Configures the USB VCP port.

Keyword Arguments

flow – Sets the flow control setting as a bitwise-or of USB_VCP.RTS (read behavior) and USB_VCP.CTS (write behavior). If this argument is -1, nothing happens.

setinterrupt(chr: int)None

Sets the character which interrupts running Python code. This is set to 3 (CTRL-C) by default. When this character is received over the VCP port, a KeyboardInterrupt exception is raised.

Choose -1 to disable this interrupt. This is useful when you want to send raw bytes over the VCP port.

isconnected()bool

Checks if there is an active connection.

Returns

True if connected, False if not.

any()bool

Checks if characters are waiting to be read.

Returns

True if any characters are waiting, False if not.

close()None

This method does nothing. It exists so that this object can act as a file.

read()Optional[bytes]
read(nbytes: int)Optional[bytes]

Reads data from the port in a non-blocking way.

Parameters

nbytes – How many bytes to read at most. If no value is given, it reads all available data.

Returns

The received bytes, or None if no pending data is available.

readinto(buf)Optional[int]
readinto(buf, maxlen: int)Optional[int]

Reads data from the port into an existing buffer in a non-blocking way.

Parameters

maxlen – How many bytes to read. At most min(maxlen, len(buf)) bytes will be read.

Returns

The number of bytes stored into buf, or None if no pending data is available.

readline()Optional[bytes]

Reads a whole line from the serial device.

Returns

The data including the trailing newline character, or None if no pending data is available.

readlines()list

Reads as much data as possible from the serial device and breaks it into lines.

Returns

Returns a list of bytes objects, each object being one of the lines. Each line includes the newline character. Returns an empty list if no pending data is available.

write(buf: bytes)int

Writes the given bytes to the serial device.

Returns

The number of bytes written.

recv(data: Union[int, bytearray], timeout=5000)int

Receives data on the bus.

Parameters
  • data – Either an integer specifying the number of bytes to receive, or a mutable buffer, to be be filled with received bytes.

  • timeout – Timeout in milliseconds to wait for the incoming data.

Returns

A new buffer with received bytes if data was an integer, or the number of bytes read into the buffer if a buffer was given.

send(data: Union[int, bytes], timeout=5000)int

Send data on the bus.

Parameters
  • data – An integer or buffer object to write.

  • timeout – Timeout in milliseconds to wait for the data to be sent.

Returns

The number of bytes sent.

RTS = 1
CTS = 2