5个不稳定版本
0.3.0 | 2020年1月21日 |
---|---|
0.2.2 | 2020年1月14日 |
0.2.1 | 2020年1月13日 |
0.2.0 | 2020年1月13日 |
0.1.0 | 2019年12月3日 |
#1071 in 硬件支持
每月 23 次下载
12KB
171 行
SerialFrame
简单的串行端口帧接收器,异步地通过mpsc通道发送字节数据块。数据块使用选择的分隔符发送。
可用于以异步方式接收串行端口上的行,或接收cobs消息,或从数据块中解析出您需要的任何类型
请参阅示例,以了解仅接收行的示例用法
示例
use serialport::prelude::*;
use simple_logger;
use std::time::Duration;
use serial_frame::{create_line_sender};
fn main() {
// Setup the serialport to act on
let serialport: Box<dyn SerialPort> = init();
// get a Reciever for strings that all end with a newline
let (rx, linestop) = create_line_sender(serialport).unwrap();
// Recieve the lines, stop if timeout
while let Ok(line) = rx.recv_timeout(Duration::from_secs(2)) {
// Inspect the received line
println!("line is: {}", line);
}
// This will end the thread if it not stopped
let e = linestop.stop();
println!("Stop: {:?}", e);
}
fn init() -> Box<dyn SerialPort> {
simple_logger::init_with_level(log::Level::Debug).unwrap();
let mut settings: SerialPortSettings = Default::default();
settings.timeout = Duration::from_millis(100);
let baudrate = 115200;
settings.baud_rate = baudrate;
let serialport = serialport::open_with_settings("/dev/ttyACM0", &settings).unwrap();
serialport
}
依赖项
~2.5–3.5MB
~73K SLoC