Skip to content

Commit

Permalink
Transmit test message back and forth
Browse files Browse the repository at this point in the history
  • Loading branch information
sirhcel authored and eldruin committed Aug 7, 2023
1 parent aba2b4d commit 22f854d
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions examples/hardware_check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ fn check_test_message(sender: &mut dyn SerialPort, receiver: &mut dyn SerialPort
match receiver.read_exact(&mut recv_buf) {
Ok(()) => {
assert_eq_hex!(recv_buf, send_buf, "Received message does not match sent",);
println!("success");
println!(" success");
}
Err(e) => println!("FAILED: {:?}", e),
}
Expand All @@ -307,61 +307,68 @@ fn test_dual_ports(port1: &mut dyn serialport::SerialPort, port2: &mut dyn seria
);

let baud_rate = 2_000_000;
print!(" At {},8,n,1,noflow...", baud_rate);
println!(" At {},8,n,1,noflow...", baud_rate);
std::io::stdout().flush().unwrap();
if port1.set_baud_rate(baud_rate).is_ok() && port2.set_baud_rate(baud_rate).is_ok() {
check_test_message(port1, port2);
check_test_message(port2, port1);
} else {
println!("FAILED (does this platform & port support arbitrary baud rates?)");
}

let baud_rate = 115_200;
print!(" At {},8,n,1,noflow...", baud_rate);
println!(" At {},8,n,1,noflow...", baud_rate);
std::io::stdout().flush().unwrap();
if port1.set_baud_rate(baud_rate).is_ok() && port2.set_baud_rate(baud_rate).is_ok() {
check_test_message(port1, port2);
check_test_message(port2, port1);
} else {
println!("FAILED");
}

let baud_rate = 57_600;
print!(" At {},8,n,1,noflow...", baud_rate);
println!(" At {},8,n,1,noflow...", baud_rate);
std::io::stdout().flush().unwrap();
if port1.set_baud_rate(baud_rate).is_ok() && port2.set_baud_rate(baud_rate).is_ok() {
check_test_message(port1, port2);
check_test_message(port2, port1);
} else {
println!("FAILED");
}

let baud_rate = 10_000;
print!(" At {},8,n,1,noflow...", baud_rate);
println!(" At {},8,n,1,noflow...", baud_rate);
std::io::stdout().flush().unwrap();
if port1.set_baud_rate(baud_rate).is_ok() && port2.set_baud_rate(baud_rate).is_ok() {
check_test_message(port1, port2);
check_test_message(port2, port1);
} else {
println!("FAILED (does this platform & port support arbitrary baud rates?)");
}
let baud_rate = 9600;
print!(" At {},8,n,1,noflow...", baud_rate);
println!(" At {},8,n,1,noflow...", baud_rate);
std::io::stdout().flush().unwrap();
if port1.set_baud_rate(baud_rate).is_ok() && port2.set_baud_rate(baud_rate).is_ok() {
check_test_message(port1, port2);
check_test_message(port2, port1);
} else {
println!("FAILED");
}

// Test flow control
port1.set_flow_control(FlowControl::Software).unwrap();
port2.set_flow_control(FlowControl::Software).unwrap();
print!(" At 9600,8,n,1,softflow...");
println!(" At 9600,8,n,1,softflow...");
std::io::stdout().flush().unwrap();
check_test_message(port1, port2);
check_test_message(port2, port1);

port1.set_flow_control(FlowControl::Hardware).unwrap();
port2.set_flow_control(FlowControl::Hardware).unwrap();
print!(" At 9600,8,n,1,hardflow...");
println!(" At 9600,8,n,1,hardflow...");
std::io::stdout().flush().unwrap();
check_test_message(port1, port2);
check_test_message(port2, port1);
}

fn set_defaults(port: &mut dyn serialport::SerialPort) {
Expand Down

0 comments on commit 22f854d

Please sign in to comment.