write_by_name_example/
write_by_name_example.rs

1#![allow(unused_imports)]
2use rust_ads_client::client::Client;
3use ads_proto::proto::ams_address::{AmsAddress, AmsNetId};
4use std::net::Ipv4Addr;
5
6fn main() {
7    //Create client. If route = None then targed is local machine
8    let ams_address = AmsAddress::new(AmsNetId::new(192, 168, 0, 150, 1, 1), 851);
9    //let ipv4 = Ipv4Addr::new(192, 168, 0, 150);
10    //let mut client = Client::new(ams_address, Some(ipv4));
11    let mut client = Client::new(ams_address, None);
12    //Connect client
13    client.connect().expect("Failed to connect!");
14
15    //var name and length
16    let var = "Main.counter";
17
18    //Write "1111" to var "Main.counter"
19    let value: u16 = 1111;
20    let data: Vec<u8> = value.to_le_bytes().to_vec();
21    let write_result = client
22        .write_by_name(var, data)
23        .expect("Failed to write value!");
24
25    println!("Write result -> {:?}", write_result.result);
26    println!("Command ID -> {:?}", write_result.command_id);
27
28    //var name and length
29    let var = "Main.mi_uint";
30
31    //Write "65530" to var "Main.mi_uint"
32    let value: u16 = 65530;
33    let data: Vec<u8> = value.to_le_bytes().to_vec();
34    let write_result = client
35        .write_by_name(var, data)
36        .expect("Failed to write value!");
37
38    println!("Write result -> {:?}", write_result.result);
39    println!("Command ID -> {:?}", write_result.command_id);
40
41    //Release handle if not needed anymore
42    let result = client.release_handle(var);
43    println!("{:?}", result);
44}