7 个版本
0.3.1 | 2021年11月17日 |
---|---|
0.3.0 | 2021年2月10日 |
0.2.0 | 2020年11月12日 |
0.1.3 | 2019年2月23日 |
0.1.1 | 2019年1月10日 |
#542 在 异步
3,652 每月下载量
用于 4 crates
14KB
201 行
tokio-socketcan
SocketCAN 对 tokio 的支持,基于 socketcan crate。
示例 echo 服务器
use futures_util::stream::StreamExt;
use tokio_socketcan::{CANSocket, Error};
#[tokio::main]
async fn main() -> Result<(), Error> {
let mut socket_rx = CANSocket::open("vcan0")?;
let socket_tx = CANSocket::open("vcan0")?;
while let Some(Ok(frame)) = socket_rx.next().await {
socket_tx.write_frame(frame)?.await?;
}
Ok(())
}
测试
由于它依赖于存在的虚拟 can 设备 vcan0
,将测试集成到 CI 系统中并非易事。大多数 Linux 系统中添加一个虚拟 can 设备相对容易(需要 root 权限),但将 vcan 设备附加到 CI 的容器中似乎难以找到支持。
尽管如此,在本地运行测试的设置应该是简单的
sudo modprobe vcan
sudo ip link add vcan0 type vcan
sudo ip link set vcan0 up
cargo test
依赖项
~5–14MB
~175K SLoC