notification_example/
notification_example.rs1#![allow(unused_imports)]
2use rust_ads_client::client::Client;
3use ads_proto::proto::{
4 ads_transition_mode::AdsTransMode,
5 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
16 client.connect().expect("Failed to connect!");
18
19 let var = "Main.counter";
21 let len = 2;
22
23 let rx = client
25 .add_device_notification(var, len, AdsTransMode::OnChange, 1, 1)
26 .unwrap();
27
28 println!("Receive data...\n");
30 let mut list = Vec::new();
31 for _ in 1..10 {
32 let result = rx.recv();
33 if let Ok(r) = result.unwrap() {
34 list.push(r.ads_stamp_headers);
35 }
36 }
37
38 println!("Print revceived data:\n");
39 for r in list {
40 println!("{:?}", r);
41 }
42
43 println!("\nDelete the notification");
45 let response = client.delete_device_notification(var);
46 println!("{:?}", response);
47}