sumup_read_by_name/
sumup_read_by_name.rs1#![allow(unused_imports)]
2use rust_ads_client::client::Client;
3use ads_proto::{
4 error::AdsError,
5 proto::{
6 ams_address::{AmsAddress, AmsNetId},
7 response::ReadResponse,
8 },
9};
10use std::{collections::HashMap, net::Ipv4Addr};
11fn main() {
12 let ams_address = AmsAddress::new(AmsNetId::new(192, 168, 0, 150, 1, 1), 851);
14 let mut client = Client::new(ams_address, None);
17 client.connect().expect("Failed to connect!");
19
20 let mut var_names = HashMap::new();
22 var_names.insert("Main.counter".to_string(), 2);
23 var_names.insert("Main.mi_uint".to_string(), 2);
24 var_names.insert("Main.mb_bool".to_string(), 1);
25
26 let iterations = 10;
28 let mut results: Vec<HashMap<String, ReadResponse>> = Vec::new();
29 for _ in 0..iterations {
30 match client.sumup_read_by_name(&var_names) {
31 Ok(r) => {
32 results.push(r);
33 }
34 Err(e) => {
35 if e.is::<AdsError>() {
36 if let Some(e) = e.downcast_ref::<AdsError>() {
37 println!("Some Ads Error: {:?}", e);
38 if client.connect().is_ok() {
39 println!("Reconnected...");
40 } else {
41 println!("Reconnecting failed...");
42 }
43 }
44 }
45 println!("Other Error: {:?}", e);
46 }
47 }
48 }
49
50 for r in results {
51 println!("{:?}", r);
52 }
53}