hwio_types/defs/complex/speed_controller.rs
1use crate::defs::simple::analog::AnalogOutput;
2use crate::defs::simple::percent::PercentOutput;
3use crate::defs::zeroing::Zeroable;
4pub use measurements::AngularVelocity;
5
6/// Describes the simplest form of speed controller
7pub trait SpeedController: AnalogOutput + Zeroable + PercentOutput {
8
9 /// Set an open-loop velocity.
10 /// This will not be the real output velocity. For more precision,
11 /// `AngularVelocityOutput` should be implemented along with a closed-loop controller.
12 fn set_open_loop_velocity(speed: &AngularVelocity);
13}