tokio-socketcan-bcm

LICENSE VERSION docs

The Broadcast Manager protocol provides a command based configuration interface to filter and send (e.g. cyclic) CAN messages in kernel space. Filtering messages in kernel space may significantly reduce the load in an application.

A BCM socket is not intended for sending individual CAN frames. To send invidiual frames use the tokio-socketcan crate.

This crate would not have been possible without the socketcan crate.

Example

```Rust use std::time; use tokiosocketcanbcm::*; use futures_util::stream::StreamExt;

[tokio::main]

async fn main() { let socket = BCMSocket::opennb("vcan0").unwrap(); let ival = time::Duration::frommillis(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);
    ()
}

} ```