sumup_write_by_name/
sumup_write_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::WriteResponse,
8 },
9};
10use std::{collections::HashMap, net::Ipv4Addr};
11
12fn main() {
13 let ams_address = AmsAddress::new(AmsNetId::new(192, 168, 0, 150, 1, 1), 851);
15 let mut client = Client::new(ams_address, None);
18 client.connect().expect("Failed to connect!");
20
21 let mut var_names: HashMap<String, Vec<u8>> = HashMap::new();
23 var_names.insert("Main.counter".to_string(), vec![0, 0]);
24 var_names.insert("Main.mi_uint".to_string(), vec![0, 0]);
25 var_names.insert("Main.mb_bool".to_string(), vec![1]);
26
27 let iterations = 10;
29 let mut results: Vec<HashMap<String, WriteResponse>> = Vec::new();
30 for _ in 0..iterations {
31 match client.sumup_write_by_name(var_names.clone()) {
32 Ok(r) => {
33 results.push(r);
34 }
35 Err(e) => {
36 if e.is::<AdsError>() {
37 if let Some(e) = e.downcast_ref::<AdsError>() {
38 println!("Some Ads Error{:?}", e);
39 if client.connect().is_ok() {
40 println!("Reconnected...");
41 } else {
42 println!("Reconnecting failed...");
43 }
44 }
45 }
46 println!("Other Error{:?}", e);
47 }
48 }
49 }
50
51 for r in results {
52 println!("{:?}", r);
53 }
54
55 }