autocore_std/motion/mod.rs
1//! CiA 402 motion control: axis abstraction, traits, and types.
2//!
3//! This module provides a generic motion control layer for CiA 402
4//! (CANopen drive profile) servo drives.
5//!
6//! # Architecture
7//!
8//! - [`cia402`] — Base CiA 402 types (state machine, modes, control/status traits)
9//! - [`AxisView`] — Generic PDO field interface that drive views implement
10//! - [`AxisConfig`] — Unit conversion, jog defaults, position limits
11//! - [`Axis`] — Stateful motion controller managing CiA 402 protocol internally
12
13/// CiA 402 base types: state machine, modes, control/status word traits.
14pub mod cia402;
15
16/// Generic hardware interface for CiA 402 servo drives.
17pub mod axis_view;
18
19/// Axis configuration: unit conversion, jog defaults, limits.
20pub mod axis_config;
21
22/// Homing methods: hardware-delegated and software-implemented.
23pub mod homing;
24
25/// Stateful motion controller for CiA 402 servo drives.
26pub mod axis;
27
28/// Seek-to-probe: jog an axis until a sensor triggers.
29pub mod seek_probe;
30
31/// Closed-loop pressure/force control for Profile Position axes.
32pub mod pressure_control;
33
34/// Move an axis until a specific load is reached.
35pub mod move_to_load;
36
37/// Vendor-neutral CiA 402 PP snapshot (owned values, no lifetimes).
38pub mod pp_snapshot;
39
40/// Generic wait-for-axis-done function block.
41pub mod axis_wait;
42
43pub use cia402::*;
44pub use axis_view::{AxisView, AxisHandle};
45pub use axis_config::AxisConfig;
46pub use homing::HomingMethod;
47pub use axis::Axis;
48pub use seek_probe::SeekProbe;
49pub use pressure_control::{PressureControl, PressureControlConfig};
50pub use move_to_load::MoveToLoad;
51pub use pp_snapshot::Cia402PpSnapshot;
52pub use axis_wait::{AxisWait, WaitStatus};