device_lock_and_operation_mode/
device_lock_and_operation_mode.rs1use opendaq::{Instance, OperationModeType};
4
5fn main() -> opendaq::Result<()> {
6 let instance = Instance::new()?;
7 let device = instance
8 .add_device("daqref://device0")?
9 .expect("reference device");
10
11 let modes: Vec<String> = device
12 .available_operation_modes()?
13 .into_iter()
14 .filter_map(|mode| OperationModeType::from_raw(mode as u32))
15 .map(|mode| format!("{mode:?}"))
16 .collect();
17 println!("Available operation modes: {}", modes.join(", "));
18 println!("Current operation mode: {:?}", device.operation_mode()?);
19
20 device.set_operation_mode(OperationModeType::Operation)?;
21 device.lock()?;
22 println!("After setting Operation: {:?}", device.operation_mode()?);
23 println!("Device locked: {}", device.is_locked()?);
24
25 device.unlock()?;
26 device.set_operation_mode(OperationModeType::SafeOperation)?;
27 println!();
28 println!("Device locked: {}", device.is_locked()?);
29 println!("Final operation mode: {:?}", device.operation_mode()?);
30 Ok(())
31}