use ethercat::{Master, MasterAccess}; fn main() -> Result<(), std::io::Error> { let mut master = Master::open(0, MasterAccess::ReadWrite)?; let args: Vec = std::env::args().collect(); if args.len() < 3 { eprintln!("Usage: foe-read "); return Err(std::io::Error::new( std::io::ErrorKind::Other, "Not enough arguments", )); } let slave_idx: ethercat::SlavePos = args[1] .parse::() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))? .into(); let foe_name = &args[2]; let res = master.foe_read(slave_idx, foe_name)?; println!("FoE data: {:x?}, {} bytes", res, res.len()); Ok(()) }