rust-port/wifi-densepose-rs/crates/ruv-neural/ruv-neural-sensor/README.md
Sensor data acquisition for NV diamond, OPM, EEG, and simulated sources.
ruv-neural-sensor provides uniform sensor interfaces for multiple neural
magnetometry and electrophysiology sensor types. Each sensor backend implements
the SensorSource trait from ruv-neural-core, producing MultiChannelTimeSeries
data. The crate also includes calibration utilities and real-time signal quality
monitoring.
simulator feature, default): Synthetic multi-channel data
generation with configurable alpha rhythm injection, noise floor control, and
event injection (spikes, artifacts)nv_diamond feature): Nitrogen-vacancy diamond magnetometer
interface with configurable sensitivity and channel layoutopm feature): Optically pumped magnetometer array with configurable
geometryeeg feature): Electroencephalography sensor interfaceuse ruv_neural_sensor::simulator::{SimulatedSensorArray, SensorEvent};
use ruv_neural_sensor::{SensorSource, SensorType};
// Create a simulated 16-channel array at 1000 Hz
let mut sim = SimulatedSensorArray::new(16, 1000.0);
sim.inject_alpha(100.0); // 100 fT alpha rhythm
// Read 500 samples via the SensorSource trait
let data = sim.read_chunk(500).unwrap();
assert_eq!(data.num_channels, 16);
assert_eq!(data.num_samples, 500);
// Inject a spike event
sim.inject_event(SensorEvent::Spike {
channel: 0,
amplitude_ft: 500.0,
sample_offset: 100,
});
// Calibrate channels
use ruv_neural_sensor::calibration::{CalibrationData, calibrate_channel};
let cal = CalibrationData {
gains: vec![2.0],
offsets: vec![10.0],
noise_floors: vec![1.0],
};
let corrected = calibrate_channel(100.0, 0, &cal); // (100 - 10) * 2 = 180
// Monitor signal quality
use ruv_neural_sensor::quality::QualityMonitor;
let mut monitor = QualityMonitor::new(2);
let qualities = monitor.check_quality(&[&data.data[0], &data.data[1]]);
| Module | Key Types / Functions |
|---|---|
simulator | SimulatedSensorArray, SensorEvent |
nv_diamond | NvDiamondArray, NvDiamondConfig |
opm | OpmArray, OpmConfig |
eeg | EegArray, EegConfig |
calibration | CalibrationData, calibrate_channel, cross_calibrate |
quality | QualityMonitor, SignalQuality |
| Feature | Default | Description |
|---|---|---|
simulator | Yes | Synthetic test data generator |
nv_diamond | No | NV diamond magnetometer backend |
opm | No | Optically pumped magnetometer backend |
eeg | No | EEG sensor backend |
Depends on ruv-neural-core for the SensorSource trait and MultiChannelTimeSeries
type. Produced data feeds into ruv-neural-signal for preprocessing and filtering.
MIT OR Apache-2.0