pub struct Device { /* private fields */ }Expand description
An open connection to a neoRAD-IO2 chain (closed automatically on drop).
Device is Send but not Sync: the underlying C library is not safe for
concurrent calls on the same handle, and blocking mode is process-global.
Note: the underlying C library also keeps process-global state, so using
even separate Device values concurrently across threads is not supported.
Implementations§
Source§impl Device
impl Device
Sourcepub fn request_calibration(
&self,
device: i32,
bank: i32,
header: &mut neoRADIO2frame_calHeader,
) -> Result<()>
pub fn request_calibration( &self, device: i32, bank: i32, header: &mut neoRADIO2frame_calHeader, ) -> Result<()>
Request calibration data (fills nothing; pair with read_calibration_array).
Sourcepub fn read_calibration_array(
&self,
device: i32,
bank: i32,
header: &mut neoRADIO2frame_calHeader,
) -> Result<Vec<f32>>
pub fn read_calibration_array( &self, device: i32, bank: i32, header: &mut neoRADIO2frame_calHeader, ) -> Result<Vec<f32>>
Read calibration values into a Vec<f32>.
Sourcepub fn request_calibration_points(
&self,
device: i32,
bank: i32,
header: &mut neoRADIO2frame_calHeader,
) -> Result<()>
pub fn request_calibration_points( &self, device: i32, bank: i32, header: &mut neoRADIO2frame_calHeader, ) -> Result<()>
Request calibration points.
Sourcepub fn read_calibration_points_array(
&self,
device: i32,
bank: i32,
header: &mut neoRADIO2frame_calHeader,
) -> Result<Vec<f32>>
pub fn read_calibration_points_array( &self, device: i32, bank: i32, header: &mut neoRADIO2frame_calHeader, ) -> Result<Vec<f32>>
Read calibration points into a Vec<f32>.
Sourcepub fn write_calibration(
&self,
device: i32,
bank: i32,
header: &mut neoRADIO2frame_calHeader,
values: &[f32],
) -> Result<()>
pub fn write_calibration( &self, device: i32, bank: i32, header: &mut neoRADIO2frame_calHeader, values: &[f32], ) -> Result<()>
Write calibration values.
Sourcepub fn write_calibration_successful(&self, device: i32, bank: i32) -> Result<()>
pub fn write_calibration_successful(&self, device: i32, bank: i32) -> Result<()>
Whether the last write_calibration completed.
Sourcepub fn write_calibration_points(
&self,
device: i32,
bank: i32,
header: &mut neoRADIO2frame_calHeader,
values: &[f32],
) -> Result<()>
pub fn write_calibration_points( &self, device: i32, bank: i32, header: &mut neoRADIO2frame_calHeader, values: &[f32], ) -> Result<()>
Write calibration points.
Sourcepub fn write_calibration_points_successful(
&self,
device: i32,
bank: i32,
) -> Result<()>
pub fn write_calibration_points_successful( &self, device: i32, bank: i32, ) -> Result<()>
Whether the last write_calibration_points completed.
Sourcepub fn store_calibration(&self, device: i32, bank: i32) -> Result<()>
pub fn store_calibration(&self, device: i32, bank: i32) -> Result<()>
Store calibration to flash.
Sourcepub fn is_calibration_stored(&self, device: i32, bank: i32) -> Result<bool>
pub fn is_calibration_stored(&self, device: i32, bank: i32) -> Result<bool>
Whether calibration is stored.
Sourcepub fn calibration_is_valid(&self, device: i32, bank: i32) -> Result<bool>
pub fn calibration_is_valid(&self, device: i32, bank: i32) -> Result<bool>
Whether calibration is valid.
Sourcepub fn clear_calibration(&self, device: i32, bank: i32) -> Result<()>
pub fn clear_calibration(&self, device: i32, bank: i32) -> Result<()>
Clear stored calibration.
Sourcepub fn request_calibration_info(&self, device: i32, bank: i32) -> Result<()>
pub fn request_calibration_info(&self, device: i32, bank: i32) -> Result<()>
Request calibration info.
Sourcepub fn read_calibration_info(
&self,
device: i32,
bank: i32,
) -> Result<neoRADIO2frame_calHeader>
pub fn read_calibration_info( &self, device: i32, bank: i32, ) -> Result<neoRADIO2frame_calHeader>
Read calibration info header.
Source§impl Device
impl Device
Sourcepub fn find() -> Result<Vec<DeviceInfo>>
pub fn find() -> Result<Vec<DeviceInfo>>
Enumerate attached neoRAD-IO2 USB devices.
Source§impl Device
impl Device
Sourcepub fn chain_identify(&self) -> Result<()>
pub fn chain_identify(&self) -> Result<()>
Identify the device chain.
Sourcepub fn chain_is_identified(&self) -> Result<bool>
pub fn chain_is_identified(&self) -> Result<bool>
Whether the chain has been identified.
Sourcepub fn chain_count(&self, identify: bool) -> Result<i32>
pub fn chain_count(&self, identify: bool) -> Result<i32>
Number of devices in the chain. identify re-identifies first.
Sourcepub fn app_start(&self, device: i32, bank: i32) -> Result<()>
pub fn app_start(&self, device: i32, bank: i32) -> Result<()>
Start application firmware on device/bank (bank is a bitmask).
Source§impl Device
impl Device
Sourcepub fn serial_number(&self, device: i32, bank: i32) -> Result<u32>
pub fn serial_number(&self, device: i32, bank: i32) -> Result<u32>
Serial number (base-10) of device/bank.
Sourcepub fn manufacturer_date(
&self,
device: i32,
bank: i32,
) -> Result<(i32, i32, i32)>
pub fn manufacturer_date( &self, device: i32, bank: i32, ) -> Result<(i32, i32, i32)>
Manufacturing date (year, month, day).
Sourcepub fn firmware_version(&self, device: i32, bank: i32) -> Result<(i32, i32)>
pub fn firmware_version(&self, device: i32, bank: i32) -> Result<(i32, i32)>
Firmware version (major, minor).
Sourcepub fn hardware_revision(&self, device: i32, bank: i32) -> Result<(i32, i32)>
pub fn hardware_revision(&self, device: i32, bank: i32) -> Result<(i32, i32)>
Hardware revision (major, minor).
Sourcepub fn device_type(&self, device: i32, bank: i32) -> Result<u32>
pub fn device_type(&self, device: i32, bank: i32) -> Result<u32>
Device type code (see DeviceType::from_raw).
Source§impl Device
impl Device
Sourcepub fn request_sensor_data(
&self,
device: i32,
bank: i32,
cal: CalType,
) -> Result<()>
pub fn request_sensor_data( &self, device: i32, bank: i32, cal: CalType, ) -> Result<()>
Request a fresh sensor sample for device/bank.
Sourcepub fn read_sensor_float(&self, device: i32, bank: i32) -> Result<f32>
pub fn read_sensor_float(&self, device: i32, bank: i32) -> Result<f32>
Read a single sensor value as f32.
Sourcepub fn read_sensor_array(&self, device: i32, bank: i32) -> Result<Vec<i32>>
pub fn read_sensor_array(&self, device: i32, bank: i32) -> Result<Vec<i32>>
Read the raw sensor sample as up to 64 integer values (device/mode specific).
Sourcepub fn write_sensor(&self, device: i32, bank: i32, data: &[u8]) -> Result<()>
pub fn write_sensor(&self, device: i32, bank: i32, data: &[u8]) -> Result<()>
Write sensor/actuator data for device/bank.
Sourcepub fn write_sensor_successful(&self, device: i32, bank: i32) -> Result<()>
pub fn write_sensor_successful(&self, device: i32, bank: i32) -> Result<()>
Whether the last write_sensor completed.
Source§impl Device
impl Device
Sourcepub fn toggle_led(
&self,
device: i32,
bank: i32,
mode: LedMode,
led_enables: i32,
ms: i32,
) -> Result<()>
pub fn toggle_led( &self, device: i32, bank: i32, mode: LedMode, led_enables: i32, ms: i32, ) -> Result<()>
Toggle LEDs on device/bank.
Sourcepub fn toggle_led_successful(&self, device: i32, bank: i32) -> Result<()>
pub fn toggle_led_successful(&self, device: i32, bank: i32) -> Result<()>
Whether the last toggle_led completed.
Sourcepub fn request_settings(&self, device: i32, bank: i32) -> Result<()>
pub fn request_settings(&self, device: i32, bank: i32) -> Result<()>
Request the device settings (call before read_settings).
Sourcepub fn read_settings(
&self,
device: i32,
bank: i32,
) -> Result<neoRADIO2_settings>
pub fn read_settings( &self, device: i32, bank: i32, ) -> Result<neoRADIO2_settings>
Read the raw device settings struct.
Sourcepub fn write_settings(
&self,
device: i32,
bank: i32,
settings: &neoRADIO2_settings,
) -> Result<()>
pub fn write_settings( &self, device: i32, bank: i32, settings: &neoRADIO2_settings, ) -> Result<()>
Write the raw device settings struct.
Sourcepub fn write_settings_successful(&self, device: i32, bank: i32) -> Result<()>
pub fn write_settings_successful(&self, device: i32, bank: i32) -> Result<()>
Whether the last write_settings completed.
Sourcepub fn write_default_settings(&self, device: i32, bank: i32) -> Result<()>
pub fn write_default_settings(&self, device: i32, bank: i32) -> Result<()>
Restore default settings on device/bank.
Sourcepub fn request_statistics(&self, device: i32, bank: i32) -> Result<()>
pub fn request_statistics(&self, device: i32, bank: i32) -> Result<()>
Request performance statistics.
Sourcepub fn read_statistics(
&self,
device: i32,
bank: i32,
) -> Result<neoRADIO2_PerfStatistics>
pub fn read_statistics( &self, device: i32, bank: i32, ) -> Result<neoRADIO2_PerfStatistics>
Read raw performance statistics.
Sourcepub fn status(
&self,
device: i32,
bank: i32,
bitfield: bool,
ty: StatusType,
) -> Result<CommandStatus>
pub fn status( &self, device: i32, bank: i32, bitfield: bool, ty: StatusType, ) -> Result<CommandStatus>
Query a command status.