use embedded_can::{Frame, StandardId};
use futures_timer::Delay;
use socketcan::{CanFrame, Error, Result, smol::CanSocket};
use std::{env, time::Duration};
fn main() -> Result<()> {
smol::block_on(async {
let iface = env::args().nth(1).unwrap_or_else(|| "can0".into());
let sock = CanSocket::open(&iface)?;
loop {
let id = StandardId::new(0x100).unwrap();
let frame = CanFrame::new(id, &[0]).unwrap();
println!("Writing on {}", iface);
sock.write_frame(&frame).await?;
println!("Waiting 3 seconds");
Delay::new(Duration::from_secs(3)).await;
}
#[allow(unreachable_code)]
Ok::<(), Error>(())
})
}