#![allow(unused_imports)]
use rust_ads_client::client::Client;
use ads_proto::{
error::AdsError,
proto::ams_address::{AmsAddress, AmsNetId},
};
use std::net::Ipv4Addr;
fn main() {
let ams_address = AmsAddress::new(AmsNetId::new(192, 168, 0, 150, 1, 1), 851);
let mut client = Client::new(ams_address, None);
client.connect().expect("Failed to connect!");
let var = "Main.counter";
let len = 2;
let iterations = 10;
println!("Read var {:?} {:?} times", var, iterations);
for _ in 0..iterations {
match client.read_by_name(var, len) {
Ok(r) => {
println!("{:?}", r);
}
Err(e) => {
if e.is::<AdsError>() {
if let Some(e) = e.downcast_ref::<AdsError>() {
println!("Ads Error{:?}", e);
if client.connect().is_ok() {
println!("Reconnected...");
} else {
println!("Reconnecting failed...");
}
}
}
println!("Other Error{:?}", e);
}
}
}
let result = client.release_handle(var);
println!("{:?}", result.unwrap());
}