nanonis_rs/client/
auto_approach.rs1use super::NanonisClient;
2use crate::error::NanonisError;
3use crate::types::NanonisValue;
4
5impl NanonisClient {
6 pub fn auto_approach_open(&mut self) -> Result<(), NanonisError> {
8 self.quick_send("AutoApproach.Open", vec![], vec![], vec![])?;
9 Ok(())
10 }
11
12 pub fn auto_approach_on_off_set(&mut self, on_off: bool) -> Result<(), NanonisError> {
14 let value = if on_off { 1u16 } else { 0u16 };
15 self.quick_send(
16 "AutoApproach.OnOffSet",
17 vec![NanonisValue::U16(value)],
18 vec!["H"],
19 vec![],
20 )?;
21 Ok(())
22 }
23
24 pub fn auto_approach_on_off_get(&mut self) -> Result<bool, NanonisError> {
26 let result = self.quick_send("AutoApproach.OnOffGet", vec![], vec![], vec!["H"])?;
27 match result.first() {
28 Some(value) => {
29 let status = value.as_u16()?;
30 Ok(status == 1)
31 }
32 None => Err(NanonisError::Protocol(
33 "No auto-approach status returned".to_string(),
34 )),
35 }
36 }
37}