A virtual Arduino Stream
device.
The Pipe class implements the Arduino Stream
class to provide a virtual
device through which you can transfer data. You "send" data to it through the
standard Arduino print()
, println()
etc methods, and you can read from it
in the same way you read from Serial
.
It's like having a serial port that talks to itself (loopback) without having an actual serial port there.
The included example sketch, aimed at running on a chipKIT UNO32, implements a
buffered UART interface to the Serial device. It takes over the normal interrupt
vector of UART1 (mapped, on the UNO32, to Serial
) and implements its own buffering
strategy for transmission and reception. Each direction has its own Pipe
for transferring
the data to/from the ISR. Writing to the UART has write "blocking" turned on (when the pipe
is full the program waits for data to be read from the other end - only useful for
interrupts) so you don't lose data.