Compare commits

..

3 Commits

Author SHA1 Message Date
e68cc8bcbc fix borrowing issue and make everything compile 2023-06-07 11:46:30 +02:00
alban
08debc3899 wip 2023-06-06 22:56:39 +02:00
alban
3588e3f4a2 wip 2023-06-05 21:21:35 +02:00
2 changed files with 35 additions and 4 deletions

14
src/device.old Normal file
View File

@ -0,0 +1,14 @@
mod device;
mod helios;
use crate::conf::{Conf, DacFamily, EtherDreamConf, HeliosConf};
use crate::device::device::Device;
use crate::device::helios::HeliosDevice;
pub fn device_factory(config: Conf) -> Box<dyn Device> {
let device = match config.dac {
DacFamily::Helios(conf) => Box::new(HeliosDevice { conf }),
DacFamily::Etherdream(conf) => todo!(),
};
device
}

View File

@ -21,6 +21,12 @@ pub struct HeliosDevice {
}
impl HeliosDevice {
/// This is fabulous doc !
/// # Woot
///
/// ` some example `
///
pub fn new(conf: &HeliosConf) -> LJResult<Self> {
let id = conf.id;
let controller = NativeHeliosDacController::new()?;
@ -28,12 +34,23 @@ impl HeliosDevice {
let Some(device) = devices.into_iter().nth(id as usize) else {
return Err(Box::new(LJError::HeliosDeviceMissing));
};
let dac = device.open()?;
let dac = device.open()?;
Ok(Self {
conf: (*conf).clone(), dac,
conf: (*conf).clone(),
dac,
})
}
}
//
// fn get_helios_device() -> LJResult<NativeHeliosDac> {
// let controller = NativeHeliosDacController::new()?;
// let devices = controller.list_devices()?;
// let Some(device) = devices.into_iter().next() else {
// return Err(Box::new(LJError::HeliosDeviceMissing));
// };
// let device = device.open()?;
// Ok(device)
// }
impl Device for HeliosDevice {
fn status(&self) -> Status {
@ -56,7 +73,7 @@ impl Device for HeliosDevice {
}
fn stop(&mut self) -> LJResult<()> {
self.dac.stop()?;
Ok(())
self.dac.stop()?;
Ok(())
}
}