atem-connection-rs/atem-test/src/bin/socket2.rs

49 lines
1.2 KiB
Rust

use atem_connection_rs::atem_lib::{atem_field::PrgI, atem_socket_two::tokio::TokioBackend};
use clap::Parser;
use color_eyre::Report;
/// ATEM Rust Library Test App
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
/// IP of the ATEM to connect to
#[arg(short, long)]
ip: String,
}
#[tokio::main]
async fn main() {
let args = Args::parse();
setup_logging().unwrap();
let mut s = TokioBackend::new(args.ip.parse().unwrap()).await.unwrap();
s.connect().await.expect("aa");
let mut buf = [0u8; 2048];
loop {
let p = s.recv(&mut buf).await.unwrap();
let prg: Vec<PrgI> = p.fields::<PrgI>().collect::<Result<_, _>>().unwrap();
if !prg.is_empty() {
println!("{:?}", prg);
}
}
}
fn setup_logging() -> Result<(), Report> {
if std::env::var("RUST_LIB_BACKTRACE").is_err() {
unsafe {
std::env::set_var("RUST_LIB_BACKTRACE", "1");
}
}
color_eyre::install()?;
if std::env::var("RUST_LOG").is_err() {
unsafe {
std::env::set_var("RUST_LOG", "debug");
}
}
env_logger::init();
Ok(())
}