pub struct GyroSensor { /* private fields */ }Expand description
Stock EV3 Gyro Sensor
§Examples
use ev3dev_rs::pupdevices::GyroSensor;
use ev3dev_rs::parameters::SensorPort;
let gyro_sensor = GyroSensor::new(SensorPort::In1)?;
println!("Heading: {}", gyro_sensor.heading()?);
println!("Velocity: {}", gyro_sensor.rate()?);
println!("Tilt: {}", gyro_sensor.tilt()?);
println!("Tilt Velocity: {}", gyro_sensor.tilt_velocity()?);
Implementations§
Source§impl GyroSensor
impl GyroSensor
Sourcepub fn new(port: SensorPort) -> Ev3Result<Self>
pub fn new(port: SensorPort) -> Ev3Result<Self>
Find a GyroSensor on the given port.
Will return SensorNotFound if no sensor is found
or IncorrectSensorType if the found sensor is not a GyroSensor.
Sourcepub fn heading(&self) -> Ev3Result<i16>
pub fn heading(&self) -> Ev3Result<i16>
Get the current heading of the sensor in degrees (-32768 to 32767).
Sourcepub fn angular_velocity(&self) -> Ev3Result<i16>
pub fn angular_velocity(&self) -> Ev3Result<i16>
Get the current angular velocity of the sensor in degrees per second (-440 to 440).
Sourcepub fn heading_and_velocity(&self) -> Ev3Result<(i16, i16)>
pub fn heading_and_velocity(&self) -> Ev3Result<(i16, i16)>
Get the current heading and angular velocity of the sensor.
This does the same job as calling both heading() and angular_velocity(),
but it is more efficient because it reads them simultaneously.
§Examples
let (heading, velocity) = sensor.heading_and_velocity()?;
assert_eq!(heading, sensor.heading()?);
assert_eq!(velocity, sensor.angular_velocity()?);Sourcepub fn tilt(&self) -> Ev3Result<i16>
pub fn tilt(&self) -> Ev3Result<i16>
Get the current tilt angle of the sensor in degrees (-32768 to 32767).
Sourcepub fn tilt_velocity(&self) -> Ev3Result<i16>
pub fn tilt_velocity(&self) -> Ev3Result<i16>
Get the current tilt velocity of the sensor in degrees per second (-440 to 440).
Auto Trait Implementations§
impl !Freeze for GyroSensor
impl !RefUnwindSafe for GyroSensor
impl Send for GyroSensor
impl !Sync for GyroSensor
impl Unpin for GyroSensor
impl UnwindSafe for GyroSensor
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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Casts the value.
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.