diff --git a/examples/ping_1d.rs b/examples/ping_1d.rs new file mode 100644 index 000000000..b6dda223b --- /dev/null +++ b/examples/ping_1d.rs @@ -0,0 +1,45 @@ +use ping_rs::{ + device::{Ping1D, PingDevice}, + error::PingError, +}; +use tokio_serial::SerialPortBuilderExt; + +#[tokio::main] +async fn main() -> Result<(), PingError> { + let mut port = tokio_serial::new("/dev/ttyUSB1", 115200).open_native_async()?; + #[cfg(unix)] + port.set_exclusive(false)?; + + let ping1d = Ping1D::new(port); + + let mut subscribed = ping1d.subscribe(); + tokio::spawn(async move { + loop { + let received = subscribed.recv().await; + match received { + Ok(msg) => println!("Subscribed channel received: \n Start: \n {msg:?} \n Ending"), + Err(_e) => break, + } + } + }); + + match ping1d.get_firmware().await { + Ok(version) => { + println!("Firmware version: {:?}", version); + } + Err(err) => { + eprintln!("Error getting firmware version: {:?}", err); + } + } + + match ping1d.get_device_id().await { + Ok(version) => { + println!("Device id: {:?}", version); + } + Err(err) => { + eprintln!("Error getting device id: {:?}", err); + } + } + + Ok(()) +}