use linuxcnc_hal::{
error::ParameterRegisterError, HalComponent, Parameter, RegisterResources, Resources,
};
use std::{error::Error, thread, time::Duration};
struct Comp {
ro: Parameter<f64>,
rw: Parameter<u32>,
}
impl Resources for Comp {
type RegisterError = ParameterRegisterError;
fn register_resources(comp: &RegisterResources) -> Result<Self, Self::RegisterError> {
Ok(Comp {
ro: comp.register_readonly_parameter("ro")?,
rw: comp.register_parameter("rw")?,
})
}
}
fn main() -> Result<(), Box<dyn Error>> {
rtapi_logger::init().ok();
let comp: HalComponent<Comp> = HalComponent::new("params")?;
let resources = comp.resources();
while !comp.should_exit() {
resources.ro.set_value(1.234)?;
println!("RW: {:?}", resources.rw.value());
thread::sleep(Duration::from_millis(1000));
}
Ok(())
}