pub struct LinearController<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> {
pub actuator: ActuonixLinear<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>,
pub pid: Pid,
pub mode: LinearMode,
pub target_position_mm: f32,
pub min_position_mm: f32,
pub max_position_mm: f32,
pub on_target_tolerance_mm: f32,
}Expand description
PID position controller for an Actuonix linear actuator. Call step periodically.
Fields§
§actuator: ActuonixLinear<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>§pid: Pid§mode: LinearMode§target_position_mm: f32§min_position_mm: f32§max_position_mm: f32§on_target_tolerance_mm: f32Implementations§
Source§impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
Sourcepub fn new(
actuator: ActuonixLinear<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>,
pid: Pid,
min_position_mm: f32,
max_position_mm: f32,
on_target_tolerance_mm: f32,
) -> Self
pub fn new( actuator: ActuonixLinear<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>, pid: Pid, min_position_mm: f32, max_position_mm: f32, on_target_tolerance_mm: f32, ) -> Self
Create a new linear controller with PID gains and limits.
Sourcepub fn set_target_position_mm(&mut self, mm: f32)
pub fn set_target_position_mm(&mut self, mm: f32)
Set a new target position (mm), automatically clamped to limits.
Auto Trait Implementations§
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> Freeze for LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> RefUnwindSafe for LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> Send for LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> Sync for LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> Unpin for LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
impl<const CS_P: char, const CS_N: u8, const SLP_P: char, const SLP_N: u8, const DIS_P: char, const DIS_N: u8, Pwm1, Pwm2, ReadPos> UnwindSafe for LinearController<CS_P, CS_N, SLP_P, SLP_N, DIS_P, DIS_N, Pwm1, Pwm2, ReadPos>
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