pub struct TTYPort { /* private fields */ }
Expand description
A TTY port
Implementations§
Source§impl TTYPort
impl TTYPort
Sourcepub fn new(
path: String,
settings: Option<SerialPortSettings>,
) -> SerialResult<Self>
pub fn new( path: String, settings: Option<SerialPortSettings>, ) -> SerialResult<Self>
Creates a new TTY port
Examples found in repository?
examples/port_list.rs (lines 44-50)
11fn main() {
12
13 #[cfg(windows)]
14 {
15 let mut scanner = port_lister::COMPortLister{};
16 for port in scanner.list_devices().unwrap() {
17 println!("Found port:");
18 println!("\tPort: {}", port.get_port());
19 println!("\tDescription: {}", port.get_desc());
20 println!("\tManufacturer: {}", port.get_manufacturer());
21 }
22 }
23
24 #[cfg(unix)]
25 {
26 let mut scanner = port_lister::TTYPortScanner{};
27 for port in scanner.list_devices().unwrap() {
28 println!("Found port:");
29 println!("\tPort: {}", port.get_port());
30 println!("\tDescription: {}", port.get_desc());
31 println!("\tManufacturer: {}", port.get_manufacturer());
32 }
33 }
34
35 #[cfg(windows)]
36 let p = COMPort::new("COM7".into(), Some(
37 SerialPortSettings::default()
38 .baud(115200)
39 .read_timeout(Some(100))
40 .write_timeout(Some(100))
41 .set_flow_control(FlowControl::None)
42 ));
43 #[cfg(unix)]
44 let p = TTYPort::new("/dev/ttyUSB0".into(), Some(
45 SerialPortSettings::default()
46 .baud(115200)
47 .read_timeout(Some(100))
48 .write_timeout(Some(100))
49 .set_flow_control(FlowControl::None)
50 ));
51 match p {
52 Ok(mut port) => {
53 let clone_r = port.try_clone().unwrap();
54 let mut clone_w = port.try_clone().unwrap();
55 println!("Port open OK!");
56 let test_msg: &[u8] = "#07E11092\n".as_bytes();
57 let mut buf_reader = BufReader::new(clone_r);
58 let mut b = String::new();
59 loop {
60 if buf_reader.read_line(&mut b).is_ok() {
61 print!("IN : {}", b);
62 b.clear();
63 println!("OUT: {:02X?}", test_msg);
64 if let Err(e) = clone_w.write(test_msg) {
65 eprintln!("Write error {}", e)
66 }
67 } else {
68 std::thread::sleep(std::time::Duration::from_millis(50));
69 }
70 }
71 },
72 Err(e) => {
73 eprintln!("Cannot open com port {}", e)
74 }
75 }
76}
Trait Implementations§
Source§impl Read for TTYPort
impl Read for TTYPort
Source§fn 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 · Source§fn 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 moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Reads the exact number of bytes required to fill
cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moreSource§impl SerialPort for TTYPort
impl SerialPort for TTYPort
Source§fn reconfigure_port(&mut self) -> SerialResult<()>
fn reconfigure_port(&mut self) -> SerialResult<()>
Reconfigures an open port with the current settings
Source§fn close(self) -> SerialResult<()>
fn close(self) -> SerialResult<()>
Closes the port
Source§fn set_buffer_size(
&mut self,
_rx_size: usize,
_tx_size: usize,
) -> SerialResult<()>
fn set_buffer_size( &mut self, _rx_size: usize, _tx_size: usize, ) -> SerialResult<()>
Sets Tx and Rx buffer size. A sensible value for these is 4096 bytes
Source§fn set_output_flow_control(&self, enable: bool) -> SerialResult<()>
fn set_output_flow_control(&self, enable: bool) -> SerialResult<()>
Sets flow control state manually
Source§fn set_data_terminal_ready(&mut self, enable: bool) -> SerialResult<()>
fn set_data_terminal_ready(&mut self, enable: bool) -> SerialResult<()>
Sets data terminal flag
Source§fn set_request_to_send(&mut self, enable: bool) -> SerialResult<()>
fn set_request_to_send(&mut self, enable: bool) -> SerialResult<()>
Sets request to send flag
Source§fn set_break_state(&mut self, enable: bool) -> SerialResult<()>
fn set_break_state(&mut self, enable: bool) -> SerialResult<()>
Sets break state flag
Source§fn read_clear_to_send(&self) -> SerialResult<bool>
fn read_clear_to_send(&self) -> SerialResult<bool>
Reads clear to send flag
Source§fn read_data_set_ready(&self) -> SerialResult<bool>
fn read_data_set_ready(&self) -> SerialResult<bool>
Reads data set ready flag
Source§fn read_ring_indicator(&self) -> SerialResult<bool>
fn read_ring_indicator(&self) -> SerialResult<bool>
Reads ring indicator flag
Source§fn read_carrier_detect(&self) -> SerialResult<bool>
fn read_carrier_detect(&self) -> SerialResult<bool>
Reads carrier detect flag
Source§fn bytes_to_read(&self) -> SerialResult<usize>
fn bytes_to_read(&self) -> SerialResult<usize>
Returns number of bytes left to read in serial buffer
Source§fn bytes_to_write(&self) -> SerialResult<usize>
fn bytes_to_write(&self) -> SerialResult<usize>
Returns number of bytes left to write in serial buffer
Source§fn try_clone(&mut self) -> SerialResult<Box<dyn SerialPort>>
fn try_clone(&mut self) -> SerialResult<Box<dyn SerialPort>>
Tries to clone the port. Read more
Source§fn clear_input_buffer(&mut self) -> SerialResult<()>
fn clear_input_buffer(&mut self) -> SerialResult<()>
Clears serial input buffer
Source§fn clear_output_buffer(&mut self) -> SerialResult<()>
fn clear_output_buffer(&mut self) -> SerialResult<()>
Clears serial output buffer
Source§impl Write for TTYPort
impl Write for TTYPort
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn 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
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for TTYPort
impl RefUnwindSafe for TTYPort
impl Send for TTYPort
impl Sync for TTYPort
impl Unpin for TTYPort
impl UnwindSafe for TTYPort
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more