4个版本 (1个稳定版)
1.0.0 | 2020年9月23日 |
---|---|
0.2.0 | 2019年3月19日 |
0.1.1 | 2019年3月13日 |
0.1.0 | 2019年3月12日 |
#839 in 异步
每月下载 27次
在 dbcc 中使用
26KB
472 代码行
tokio-socketcan-bcm
广播管理器协议提供了一个基于命令的配置接口,以在内核空间中过滤和发送(例如循环的)CAN消息。在内核空间中过滤消息可以显著减少应用程序的负载。
BCM套接字不适用于发送单个CAN帧。要发送单个帧,请使用 tokio-socketcan crate。
没有 socketcan crate,这个crate将无法实现。
示例
use std::time;
use tokio_socketcan_bcm::*;
use futures_util::stream::StreamExt;
#[tokio::main]
async fn main() {
let socket = BCMSocket::open_nb("vcan0").unwrap();
let ival = time::Duration::from_millis(0);
// create a stream of messages that filters by the can frame id 0x123
let mut can_frame_stream = socket
.filter_id_incoming_frames(0x123.into(), ival, ival)
.unwrap();
while let Some(frame) = can_frame_stream.next().await {
println!("Frame {:?}", frame);
()
}
}
依赖项
~8.5MB
~158K SLoC