use std::env;
use motorcortex_rust::blocking::Request;
use motorcortex_rust::{ConnectionOptions, Result, parse_url};
fn main() -> Result<()> {
let mut args = env::args().skip(1);
let url = args.next().unwrap_or_else(|| "wss://127.0.0.1:5568:5567".into());
let cert = args.next().unwrap_or_else(|| "tests/mcx.cert.crt".into());
let user = args.next().unwrap_or_else(|| "root".into());
let pass = args.next().unwrap_or_default();
let path = args
.next()
.unwrap_or_else(|| "root/Control/dummyDouble".into());
let (req_url, _sub_url) = parse_url(&url)?;
let opts = ConnectionOptions::new(cert, 5_000, 5_000);
let req = Request::connect_to(&req_url, opts)?;
req.login(&user, &pass)?;
req.request_parameter_tree()?;
let value: f64 = req.get_parameter(&path)?;
println!("{path} = {value}");
req.disconnect()?;
Ok(())
}