16 个版本
使用旧的 Rust 2015
0.4.0 | 2017年7月2日 |
---|---|
0.3.4 | 2016年6月2日 |
0.3.3 | 2016年3月20日 |
0.3.2 | 2015年11月6日 |
0.0.2 | 2015年3月29日 |
在 操作系统 类别下排名 620
每月下载量 51,322
在 111 个 包(59 个直接)中使用
7KB
Serial
serial
包为 Rust 程序提供对串行端口的访问。串行端口被定义为特质,以便通过自定义实现进行扩展。Unix TTY 设备和 Windows COM 端口默认支持。
兼容性
serial
包与 Windows 以及任何实现了 termios API 的 Unix 操作系统兼容。以下平台已确认兼容
- Linux (x86_64, armv6l)
- OS X (x86_64)
- FreeBSD (amd64)
- OpenBSD (amd64)
- Windows (x86_64)
使用方法
在 Cargo.toml
中将 serial
添加为依赖项
[dependencies]
serial = "0.4"
导入 serial
包及其 serial::prelude
模块。当与串行端口一起工作时,serial::prelude
模块中的特质非常有用,并且它们不太可能与其他包冲突。
要打开串行端口,请使用任何可转换为 OsStr
类型的类型调用 serial::open()
。有了打开的串行端口,您可以使用 SerialPort
特质与之交互。通过依赖这些特质,您的代码将支持串行端口的未来实现,包括自定义实现。
extern crate serial;
use std::env;
use std::io;
use std::time::Duration;
use std::io::prelude::*;
use serial::prelude::*;
fn main() {
for arg in env::args_os().skip(1) {
let mut port = serial::open(&arg).unwrap();
interact(&mut port).unwrap();
}
}
fn interact<T: SerialPort>(port: &mut T) -> io::Result<()> {
try!(port.reconfigure(&|settings| {
try!(settings.set_baud_rate(serial::Baud9600));
settings.set_char_size(serial::Bits8);
settings.set_parity(serial::ParityNone);
settings.set_stop_bits(serial::Stop1);
settings.set_flow_control(serial::FlowNone);
Ok(())
}));
try!(port.set_timeout(Duration::from_millis(1000)));
let mut buf: Vec<u8> = (0..255).collect();
try!(port.write(&buf[..]));
try!(port.read(&mut buf[..]));
Ok(())
}
交叉编译
交叉编译 serial
包只需要在 --target
选项中为 cargo build
提供目标。以下是为 arm-unknown-linux-gnueabihf
(树莓派) 交叉编译的示例
cargo build --target=arm-unknown-linux-gnueabihf
许可证
版权所有 © 2015 David Cuddeback
在 MIT 许可证 下分发。