USB API
Overview​
The USB API provides functions for interacting with USB devices. The API includes functions for checking if a USB device is connected, sending and receiving data over USB CDC, and more.
The header file for this API is part of os/MatrixOS.h and the implementation is in os/system/USB/.
Namespace: USB
​
The USB
namespace contains general USB functions.
MatrixOS::USB::Connected
​
bool USB::Connected(void);
Checks if a USB device is connected.
Returns:
bool
:true
if a USB device is connected;false
otherwise.
CDC
​
The USB::CDC
namespace provides functions for communication over USB as a virtual serial port (CDC).
In the future this will likely migrate into a MatrixOS::Serial namespace with cross port support between USB, UART, BLE, etc.
MatrixOS::USB::CDC::Connected
​
bool USB::CDC::Connected(void);
Checks if the USB CDC is connected.
Returns:
bool
:true
if the USB CDC is connected;false
otherwise.
MatrixOS::USB::CDC::Available
​
uint32_t USB::CDC::Available(void);
Returns the number of bytes available for reading.
Returns:
uint32_t
: Number of bytes available.
MatrixOS::USB::CDC::Poll
​
void USB::CDC::Poll(void);
Processes incoming and outgoing USB CDC data. This function should be called periodically.
MatrixOS::USB::CDC::Print
​
void USB::CDC::Print(string str);
Sends a string over USB CDC without a newline.
Parameters:
str
(string
): The string to send.
MatrixOS::USB::CDC::Println
​
void USB::CDC::Println(string str);
Sends a string over USB CDC with a newline appended.
Parameters:
str
(string
): The string to send.
MatrixOS::USB::CDC::Printf
​
void USB::CDC::Printf(string format, ...);
Sends a formatted string over USB CDC.
Parameters:
format
(string
): The format string....
: Additional arguments for formatting.
MatrixOS::USB::CDC::VPrintf
​
void USB::CDC::VPrintf(string format, va_list valst);
Sends a formatted string over USB CDC using a va_list
.
Parameters:
format
(string
): The format string.valst
(va_list
): A list of arguments for formatting.
MatrixOS::USB::CDC::Flush
​
void USB::CDC::Flush(void);
Flushes the USB CDC output buffer.
MatrixOS::USB::CDC::Read
​
int8_t USB::CDC::Read(void);
Reads a single byte from the USB CDC input buffer.
Returns:
int8_t
: The byte read, or a negative value if no data is available.
MatrixOS::USB::CDC::ReadBytes
​
uint32_t USB::CDC::ReadBytes(void* buffer, uint32_t length);
Reads multiple bytes from the USB CDC input buffer into the provided buffer.
Parameters:
buffer
(void*
): The buffer to store the read data.length
(uint32_t
): The maximum number of bytes to read.
Returns:
uint32_t
: The number of bytes actually read.
MatrixOS::USB::CDC::ReadString
​
string USB::CDC::ReadString(void);
Reads a string from the USB CDC input buffer.
Returns:
string
: The string read from the buffer.
Comments