pub struct Parameter<S> { /* private fields */ }
Expand description
A parameter that can be read and written by LinuxCNC
Supported parameter types are as follows
Type | Storage | Equivalent linuxcnc_hal_sys function |
---|---|---|
Parameter<f64> | f64 | hal_param_float_new |
Parameter<u32> | u32 | hal_param_u32_new |
Parameter<i32> | i32 | hal_param_s32_new |
Parameter<bool> | bool | hal_param_bit_new |
§Examples
§Create a parameter
This example creates an Parameter
under demo-component.named-parameter
.
use linuxcnc_hal::{
error::ParameterRegisterError,
Parameter,
prelude::*,
HalComponent, RegisterResources, Resources,
};
use std::{
error::Error,
thread,
time::{Duration, Instant},
};
struct MyApp {
parameter: Parameter<f64>,
}
impl Resources for MyApp {
type RegisterError = ParameterRegisterError;
fn register_resources(comp: &RegisterResources) -> Result<Self, Self::RegisterError> {
Ok(MyApp {
parameter: comp.register_parameter("named-parameter")?,
})
}
}
fn main() -> Result<(), Box<dyn Error>> {
let comp: HalComponent<MyApp> = HalComponent::new("demo-component")?;
let MyApp { parameter } = comp.resources();
let start = Instant::now();
// Main control loop
while !comp.should_exit() {
parameter.set_value(123.45f64);
thread::sleep(Duration::from_millis(1000));
}
Ok(())
}
Implementations§
Source§impl Parameter<f64>
impl Parameter<f64>
Sourcepub fn value(&self) -> Result<&<Self as HalParameter>::Storage, StorageError>
pub fn value(&self) -> Result<&<Self as HalParameter>::Storage, StorageError>
Get the value of the parameter
Sourcepub fn set_value(
&self,
value: <Self as HalParameter>::Storage,
) -> Result<(), StorageError>
pub fn set_value( &self, value: <Self as HalParameter>::Storage, ) -> Result<(), StorageError>
Set the value of the parameter
Source§impl Parameter<u32>
impl Parameter<u32>
Sourcepub fn value(&self) -> Result<&<Self as HalParameter>::Storage, StorageError>
pub fn value(&self) -> Result<&<Self as HalParameter>::Storage, StorageError>
Get the value of the parameter
Sourcepub fn set_value(
&self,
value: <Self as HalParameter>::Storage,
) -> Result<(), StorageError>
pub fn set_value( &self, value: <Self as HalParameter>::Storage, ) -> Result<(), StorageError>
Set the value of the parameter
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for Parameter<S>
impl<S> RefUnwindSafe for Parameter<S>where
S: RefUnwindSafe,
impl<S> !Send for Parameter<S>
impl<S> !Sync for Parameter<S>
impl<S> Unpin for Parameter<S>
impl<S> UnwindSafe for Parameter<S>where
S: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more