# atport **Repository Path**: yangxijing/atport ## Basic Information - **Project Name**: atport - **Description**: AT Command Port - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-12-28 - **Last Updated**: 2024-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AT Command Port ## example ```rust #[macro_use] extern crate log; #[macro_use] extern crate sscanf; use atport::usart::Usart; use atport::ATPort; use std::time::Duration; fn main() { let global_filter = tracing_subscriber::EnvFilter::from_default_env().add_directive("debug".parse().unwrap()); tracing_subscriber::fmt() .with_env_filter(global_filter) .init(); info!("Hello, world!"); let port = serialport::new("COM25", 115200) .timeout(Duration::from_millis(1)) .open() .unwrap(); let mut atport = ATPort::new(Usart::new(port).start_recv(), 128); atport.send("AT").unwrap(); println!( "{:?}", atport.recv_timeout_equal("OK", Duration::from_millis(1000)) ); atport.send("AT").unwrap(); println!( "{:?}", atport.recv_timeout_equal("OK", Duration::from_millis(1000)) ); atport.send("AT+TEMPERATURE?").unwrap(); if let Ok(s) = atport.recv_timeout_prefix("+TEMPERATURE:", Duration::from_millis(100)) { println!("temperature: {:?}", sscanf!(s, "+TEMPERATURE:{f64}")); } while let Some(s) = atport.urc_pop() { println!("urc: {:?}", s); } } ``` ```log Finished dev [unoptimized + debuginfo] target(s) in 0.04s Running `target\debug\atport.exe` 2023-12-28T03:09:49.984403Z INFO atport: Hello, world! 2023-12-28T03:09:49.985883Z DEBUG atport::usart: TX: "AT" 2023-12-28T03:09:50.015708Z DEBUG atport::usart: RX: "OK" Ok("OK") 2023-12-28T03:09:50.015897Z DEBUG atport::usart: TX: "AT" 2023-12-28T03:09:50.046065Z DEBUG atport::usart: RX: "OK" Ok("OK") 2023-12-28T03:09:50.046645Z DEBUG atport::usart: TX: "AT+TEMPERATURE?" 2023-12-28T03:09:50.076994Z DEBUG atport::usart: RX: "+TEMPERATURE:27.000000" temperature: Ok(27.0) ```