78 lines
1.7 KiB
Rust
78 lines
1.7 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;
|
|
|
|
// Module re-exports
|
|
pub use daqconfig::{DaqChannel, DaqConfig};
|
|
pub use datatype::DataType;
|
|
pub use deviceinfo::DeviceInfo;
|
|
pub use qty::Qty;
|
|
pub use streamhandler::StreamHandler;
|
|
pub use streammgr::StreamMgr;
|
|
pub use streammsg::InStreamMsg;
|
|
pub use streamstatus::StreamStatus;
|
|
|
|
#[cfg(feature = "record")]
|
|
pub use record::*;
|
|
|
|
use strum_macros::Display;
|
|
|
|
use crate::config::*;
|
|
use super::*;
|
|
/// 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,
|
|
}
|