84 lines
1.8 KiB
Rust
84 lines
1.8 KiB
Rust
//! Data acquisition model. Provides abstract layers around DAQ devices.
|
|
|
|
mod api;
|
|
mod daqconfig;
|
|
mod datatype;
|
|
mod deviceinfo;
|
|
mod qty;
|
|
|
|
#[cfg(feature = "record")]
|
|
mod record;
|
|
|
|
mod streamcmd;
|
|
mod streamdata;
|
|
mod streamhandler;
|
|
mod streammgr;
|
|
mod streammsg;
|
|
mod streamstatus;
|
|
|
|
pub use daqconfig::*;
|
|
pub use datatype::*;
|
|
pub use deviceinfo::*;
|
|
pub use qty::*;
|
|
pub use streamcmd::*;
|
|
pub use streamdata::*;
|
|
pub use streamhandler::*;
|
|
pub use streammgr::*;
|
|
pub use streammsg::*;
|
|
pub use streamstatus::*;
|
|
|
|
#[cfg(feature = "record")]
|
|
pub use record::*;
|
|
|
|
use strum_macros::Display;
|
|
|
|
cfg_if::cfg_if! {
|
|
if #[cfg(feature = "python-bindings")] {
|
|
use pyo3::exceptions::PyValueError;
|
|
use pyo3::prelude::*;
|
|
use pyo3::{pymodule, pyclass, types::PyModule, PyResult};
|
|
} else {} }
|
|
|
|
/// Stream types that can be started
|
|
///
|
|
#[cfg_attr(feature = "python-bindings", pyclass)]
|
|
#[derive(PartialEq, Clone, Copy)]
|
|
pub enum StreamType {
|
|
/// Input-only stream
|
|
Input,
|
|
/// Output-only stream
|
|
Output,
|
|
/// Input and output at the same time
|
|
Duplex,
|
|
}
|
|
|
|
/// Errors that happen in a stream
|
|
#[derive(strum_macros::EnumMessage, Debug, Clone, Display, Copy)]
|
|
pub enum StreamError {
|
|
/// Input overrun
|
|
#[strum(
|
|
message = "InputOverrun Error",
|
|
detailed_message = "Input buffer overrun"
|
|
)]
|
|
InputOverrunError,
|
|
|
|
/// Output underrun
|
|
#[strum(
|
|
message = "OutputUnderrunError",
|
|
detailed_message = "Output buffer underrun"
|
|
)]
|
|
OutputUnderrunError,
|
|
|
|
/// Driver specific error
|
|
#[strum(message = "DriverError", detailed_message = "Driver error")]
|
|
DriverError,
|
|
|
|
/// Device
|
|
#[strum(detailed_message = "Device not available (anymore)")]
|
|
DeviceNotAvailable,
|
|
|
|
/// Logic error (something weird happened)
|
|
#[strum(detailed_message = "Logic error")]
|
|
LogicError,
|
|
}
|