Struct serialport::TTYPort
source · [−]pub struct TTYPort { /* private fields */ }
Expand description
A serial port implementation for POSIX TTY ports
The port will be closed when the value is dropped. However, this struct
should not be instantiated directly by using TTYPort::open()
, instead use
the cross-platform serialport::open()
or
serialport::open_with_settings()
.
Implementations
sourceimpl TTYPort
impl TTYPort
sourcepub fn open(builder: &SerialPortBuilder) -> Result<TTYPort>
pub fn open(builder: &SerialPortBuilder) -> Result<TTYPort>
Opens a TTY device as a serial port.
path
should be the path to a TTY device, e.g., /dev/ttyS0
.
Ports are opened in exclusive mode by default. If this is undesireable
behavior, use TTYPort::set_exclusive(false)
.
If the port settings differ from the default settings, characters received
before the new settings become active may be garbled. To remove those
from the receive buffer, call TTYPort::clear(ClearBuffer::Input)
.
Errors
NoDevice
if the device could not be opened. This could indicate that the device is already in use.InvalidInput
ifpath
is not a valid device name.Io
for any other error while opening or initializing the device.
sourcepub fn exclusive(&self) -> bool
pub fn exclusive(&self) -> bool
Returns the exclusivity of the port
If a port is exclusive, then trying to open the same device path again will fail.
sourcepub fn set_exclusive(&mut self, exclusive: bool) -> Result<()>
pub fn set_exclusive(&mut self, exclusive: bool) -> Result<()>
Sets the exclusivity of the port
If a port is exclusive, then trying to open the same device path again will fail.
See the man pages for the tiocexcl and tiocnxcl ioctl’s for more details.
Errors
Io
for any error while setting exclusivity for the port.
sourcepub fn pair() -> Result<(Self, Self)>
pub fn pair() -> Result<(Self, Self)>
Create a pair of pseudo serial terminals
Returns
Two connected TTYPort
objects: (master, slave)
Errors
Attempting any IO or parameter settings on the slave tty after the master tty is closed will return errors.
On some platforms manipulating the master port will fail and only modifying the slave port is possible.
Examples
use serialport::TTYPort;
let (master, slave) = TTYPort::pair().unwrap();
sourcepub fn send_break(&self, duration: BreakDuration) -> Result<()>
pub fn send_break(&self, duration: BreakDuration) -> Result<()>
Sends 0-valued bits over the port for a set duration
sourcepub fn try_clone_native(&self) -> Result<TTYPort>
pub fn try_clone_native(&self) -> Result<TTYPort>
Attempts to clone the SerialPort
. This allow you to write and read simultaneously from the
same serial connection. Please note that if you want a real asynchronous serial port you
should look at mio-serial or
tokio-serial.
Also, you must be very careful when changing the settings of a cloned SerialPort
: since
the settings are cached on a per object basis, trying to modify them from two different
objects can cause some nasty behavior.
This is the same as SerialPort::try_clone()
but returns the concrete type instead.
Errors
This function returns an error if the serial port couldn’t be cloned.
Trait Implementations
sourceimpl FromRawFd for TTYPort
impl FromRawFd for TTYPort
sourceunsafe fn from_raw_fd(fd: RawFd) -> Self
unsafe fn from_raw_fd(fd: RawFd) -> Self
Constructs a new instance of Self
from the given raw file
descriptor. Read more
sourceimpl IntoRawFd for TTYPort
impl IntoRawFd for TTYPort
sourcefn into_raw_fd(self) -> RawFd
fn into_raw_fd(self) -> RawFd
Consumes this object, returning the raw underlying file descriptor. Read more
sourceimpl Read for TTYPort
impl Read for TTYPort
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
1.36.0 · sourcefn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like read
, except that it reads into a slice of buffers. Read more
sourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
1.0.0 · sourcefn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
Read all bytes until EOF in this source, placing them into buf
. Read more
1.0.0 · sourcefn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until EOF in this source, appending them to buf
. Read more
1.6.0 · sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Read the exact number of bytes required to fill buf
. Read more
sourcefn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Pull some bytes from this source into the specified buffer. Read more
sourcefn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Read the exact number of bytes required to fill buf
. Read more
1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Creates a “by reference” adaptor for this instance of Read
. Read more
sourceimpl SerialPort for TTYPort
impl SerialPort for TTYPort
sourcefn baud_rate(&self) -> Result<u32>
fn baud_rate(&self) -> Result<u32>
Returns the port’s baud rate
On some platforms this will be the actual device baud rate, which may differ from the desired baud rate.
sourcefn flow_control(&self) -> Result<FlowControl>
fn flow_control(&self) -> Result<FlowControl>
Returns the flow control mode. Read more
sourcefn set_flow_control(&mut self, flow_control: FlowControl) -> Result<()>
fn set_flow_control(&mut self, flow_control: FlowControl) -> Result<()>
Sets the flow control mode.
sourcefn set_parity(&mut self, parity: Parity) -> Result<()>
fn set_parity(&mut self, parity: Parity) -> Result<()>
Sets the parity-checking mode.
sourcefn set_data_bits(&mut self, data_bits: DataBits) -> Result<()>
fn set_data_bits(&mut self, data_bits: DataBits) -> Result<()>
Sets the character size.
sourcefn set_stop_bits(&mut self, stop_bits: StopBits) -> Result<()>
fn set_stop_bits(&mut self, stop_bits: StopBits) -> Result<()>
Sets the number of stop bits.
sourcefn set_timeout(&mut self, timeout: Duration) -> Result<()>
fn set_timeout(&mut self, timeout: Duration) -> Result<()>
Sets the timeout for future I/O operations.
sourcefn write_request_to_send(&mut self, level: bool) -> Result<()>
fn write_request_to_send(&mut self, level: bool) -> Result<()>
Sets the state of the RTS (Request To Send) control signal. Read more
sourcefn write_data_terminal_ready(&mut self, level: bool) -> Result<()>
fn write_data_terminal_ready(&mut self, level: bool) -> Result<()>
Writes to the Data Terminal Ready pin Read more
sourcefn read_clear_to_send(&mut self) -> Result<bool>
fn read_clear_to_send(&mut self) -> Result<bool>
Reads the state of the CTS (Clear To Send) control signal. Read more
sourcefn read_data_set_ready(&mut self) -> Result<bool>
fn read_data_set_ready(&mut self) -> Result<bool>
Reads the state of the Data Set Ready control signal. Read more
sourcefn read_ring_indicator(&mut self) -> Result<bool>
fn read_ring_indicator(&mut self) -> Result<bool>
Reads the state of the Ring Indicator control signal. Read more
sourcefn read_carrier_detect(&mut self) -> Result<bool>
fn read_carrier_detect(&mut self) -> Result<bool>
Reads the state of the Carrier Detect control signal. Read more
sourcefn bytes_to_read(&self) -> Result<u32>
fn bytes_to_read(&self) -> Result<u32>
Gets the number of bytes available to be read from the input buffer. Read more
sourcefn bytes_to_write(&self) -> Result<u32>
fn bytes_to_write(&self) -> Result<u32>
Get the number of bytes written to the output buffer, awaiting transmission. Read more
sourcefn clear(&self, buffer_to_clear: ClearBuffer) -> Result<()>
fn clear(&self, buffer_to_clear: ClearBuffer) -> Result<()>
Discards all bytes from the serial driver’s input buffer and/or output buffer. Read more
sourcefn try_clone(&self) -> Result<Box<dyn SerialPort>>
fn try_clone(&self) -> Result<Box<dyn SerialPort>>
Attempts to clone the SerialPort
. This allow you to write and read simultaneously from the
same serial connection. Please note that if you want a real asynchronous serial port you
should look at mio-serial or
tokio-serial. Read more
sourcefn clear_break(&self) -> Result<()>
fn clear_break(&self) -> Result<()>
Stop transmitting a break
sourceimpl Write for TTYPort
impl Write for TTYPort
sourcefn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
sourcefn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
1.0.0 · sourcefn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
sourcefn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations
impl RefUnwindSafe for TTYPort
impl Send for TTYPort
impl Sync for TTYPort
impl Unpin for TTYPort
impl UnwindSafe for TTYPort
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more