#[test]
fn test_pulse_engine_get_status() {
let mock_response = [
0xAA, 0x85, 0x00, 0x01, 0x08, 0x00, 0x42, 0x00, ];
assert_eq!(mock_response[1], 0x85); assert_eq!(mock_response[2], 0x00); assert_eq!(mock_response[3], 0x01); assert_eq!(mock_response[4], 0x08); }
#[cfg(feature = "hardware-tests")]
#[test]
fn test_pulse_engine_status_hardware() -> Result<()> {
let device_count = enumerate_usb_devices()?;
let mut device = if device_count > 0 {
connect_to_device(0)?
} else {
let network_devices = enumerate_network_devices(2000)?;
if network_devices.is_empty() {
println!("No devices found, skipping hardware test");
return Ok(());
}
let target_device = network_devices
.iter()
.find(|d| d.serial_number == 32223)
.unwrap_or(&network_devices[0]);
println!(
"Connecting to network device: serial={}",
target_device.serial_number
);
connect_to_network_device(target_device)?
};
device.get_device_data()?;
let response = device.send_request(0x85, 0x00, 0, 0, 0)?;
assert!(response.len() >= 64); assert_eq!(response[1], 0x85); assert_eq!(response[2], 0x00);
device.get_pulse_engine_status()?;
println!(
"Pulse engine state: {}",
device.pulse_engine_v2.pulse_engine_state
);
println!("Enabled axes: {}", device.pulse_engine_v2.info.nr_of_axes);
println!(
"Activated: {}",
device.pulse_engine_v2.pulse_engine_activated
);
println!(
"Max frequency: {} kHz",
device.pulse_engine_v2.info.max_pulse_frequency
);
println!("Buffer depth: {}", device.pulse_engine_v2.info.buffer_depth);
Ok(())
}