diff options
| author | Xavier Del Campo <xavi92psx@gmail.com> | 2018-12-31 00:28:46 +0100 |
|---|---|---|
| committer | Xavier Del Campo <xavi92psx@gmail.com> | 2018-12-31 00:28:46 +0100 |
| commit | 42f2476aeebc5eb5a9366a6a366c9678eba6eb1b (patch) | |
| tree | 2098f4cdd976edae82d841f56298a6030512a792 /src/app.rs | |
| parent | b47361f283777f266970f9c082782ebac6c04aef (diff) | |
| download | rspsxserial-42f2476aeebc5eb5a9366a6a366c9678eba6eb1b.tar.gz | |
Some more work, but it still does not compile
Diffstat (limited to 'src/app.rs')
| -rw-r--r-- | src/app.rs | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -53,7 +53,19 @@ fn setup_tcp(tcp_addr : &String) -> io::Result<()> { } fn serial_comm(addr : Option<&String>, port_name : &String, baud_rate : Option<&String>) -> io::Result<()> { - let port = serial_init(addr, port_name, baud_rate).unwrap(); + use transfer; + use transfer::TransferState; + + let mut port = serial_init(addr, port_name, baud_rate).unwrap(); + + let mut state = TransferState::FirstContact; + + loop { + state = match state { + TransferState::FirstContact => transfer::first_contact(&mut port), + _ => TransferState::Finished + } + } Ok(()) } @@ -67,13 +79,19 @@ fn serial_init(addr : Option<&String>, port_name : &String, baud_rate : Option<& // a SystemPort instance will be returned. let port = serial::open(port_name); + // This variable will be bound to a SystemPort + // instance if everything could be configured successfully. let mut port_unwrapped; let baud = match baud_rate { - None => serial::Baud4800, + // Assign default baud rate if no + // option was specified. + None => serial::Baud115200, Some(b) => { match b.parse() { + // Parse user-specific baud rate. Ok(s) => serial::BaudRate::from_speed(s), + // Could not parse input baud rate. Err(_) => return Err(io::Error::new(io::ErrorKind::Other, "Invalid baudrate")), } } |
