read_by_name_example/
read_by_name_example.rs1#![allow(unused_imports)]
2use rust_ads_client::client::Client;
3use ads_proto::{
4 error::AdsError,
5 proto::ams_address::{AmsAddress, AmsNetId},
6};
7use std::net::Ipv4Addr;
8
9fn main() {
10 let ams_address = AmsAddress::new(AmsNetId::new(192, 168, 0, 150, 1, 1), 851);
12 let mut client = Client::new(ams_address, None);
15 client.connect().expect("Failed to connect!");
17
18 let var = "Main.counter";
20 let len = 2;
21
22 let iterations = 10;
24 println!("Read var {:?} {:?} times", var, iterations);
25 for _ in 0..iterations {
26 match client.read_by_name(var, len) {
27 Ok(r) => {
28 println!("{:?}", r);
29 }
30 Err(e) => {
31 if e.is::<AdsError>() {
32 if let Some(e) = e.downcast_ref::<AdsError>() {
33 println!("Ads Error{:?}", e);
34 if client.connect().is_ok() {
35 println!("Reconnected...");
36 } else {
37 println!("Reconnecting failed...");
38 }
39 }
40 }
41 println!("Other Error{:?}", e);
42 }
43 }
44 }
45
46 let result = client.release_handle(var);
48 println!("{:?}", result.unwrap());
49}