use xum1541::device::remoteusb::DEFAULT_PORT;
use xum1541::{Device, Error, UsbDevice, UsbDeviceServer};
#[allow(unused_imports)]
use log::{debug, error, info, trace, warn};
use std::net::{IpAddr, SocketAddr};
use std::str::FromStr;
fn execute() -> Result<(), Error> {
info!("Create USB Device");
let device = UsbDevice::new(None)?;
let addr = "0.0.0.0";
info!(
"Create Remote USB Device to listen on {}:{}",
addr, DEFAULT_PORT
);
let ip_addr = IpAddr::from_str(addr).map_err(|e| Error::Args {
message: format!("Failed to parse address: {e}"),
})?;
let bind_addr = SocketAddr::new(ip_addr, DEFAULT_PORT);
let mut device = UsbDeviceServer::new(device, bind_addr)?;
info!("Server: Listen for remote connection");
let result = device.serve();
info!("Exiting server");
result
}
fn main() {
env_logger::builder().init();
match execute() {
Ok(()) => std::process::exit(0),
Err(e) => {
error!("Error: {e}");
std::process::exit(1);
}
}
}