InfraredSensor

Struct InfraredSensor 

Source
pub struct InfraredSensor { /* private fields */ }
Expand description

Stock EV3 Infrared Sensor

Note that this sensor does not support direct measurement of distance and that the proximity() percentage does not scale linearly with distance.

If you want to get an accurate distance measurement, you should use anUltrasonicSensor.

Implementations§

Source§

impl InfraredSensor

Source

pub fn new(port: SensorPort) -> Ev3Result<Self>

Find an InfraredSensor on the given port.

Will return SensorNotFound if no sensor is found or IncorrectSensorType if the found sensor is not an InfraredSensor.

Source

pub fn proximity(&self) -> Ev3Result<u8>

Get the proximity value of the sensor as a percentage (0 to 100).

100% is approximately 70cm/27in.

Note that this sensor does not support direct measurement of distance and that the percentage does not scale linearly with distance.

If you want to get an accurate distance measurement, you should use an UltrasonicSensor.

Source

pub fn get_remote_channel_1_buttons(&self) -> Ev3Result<HashSet<Button>>

Get a HashSet of buttons currently pressed on the remote control channel 1.

Note that the set will be empty if three or more buttons are pressed.

Source

pub fn get_remote_channel_2_buttons(&self) -> Ev3Result<HashSet<Button>>

Get a HashSet of buttons currently pressed on the remote control channel 2.

Note that the set will be empty if three or more buttons are pressed.

Source

pub fn get_remote_channel_3_buttons(&self) -> Ev3Result<HashSet<Button>>

Get a HashSet of buttons currently pressed on the remote control channel 3.

Note that the set will be empty if three or more buttons are pressed.

Source

pub fn get_remote_channel_4_buttons(&self) -> Ev3Result<HashSet<Button>>

Get a HashSet of buttons currently pressed on the remote control channel 4.

Note that the set will be empty if three or more buttons are pressed.

Source

pub fn seek_channel_1(&self) -> Ev3Result<(i8, i8)>

Seeks a remote control in beacon mode on channel 1.

The first value is heading (-25 to 25), and the second value is distance as a percentage (-128 and 0 to 100).

The distance is -128 when the remote is out of range.

§Examples
let (heading, distance) = infrared_sensor.seek_channel_1()?;
Source

pub fn seek_channel_2(&self) -> Ev3Result<(i8, i8)>

Seeks a remote control in beacon mode on channel 2.

The first value is heading (-25 to 25), and the second value is distance as a percentage (-128 and 0 to 100).

The distance is -128 when the remote is out of range.

§Examples
let (heading, distance) = infrared_sensor.seek_channel_2()?;
Source

pub fn seek_channel_3(&self) -> Ev3Result<(i8, i8)>

Seeks a remote control in beacon mode on channel 3.

The first value is heading (-25 to 25), and the second value is distance as a percentage (-128 and 0 to 100).

The distance is -128 when the remote is out of range.

§Examples
let (heading, distance) = infrared_sensor.seek_channel_3()?;
Source

pub fn seek_channel_4(&self) -> Ev3Result<(i8, i8)>

Seeks a remote control in beacon mode on channel 4.

The first value is heading (-25 to 25), and the second value is distance as a percentage (-128 and 0 to 100).

The distance is -128 when the remote is out of range.

§Examples
let (heading, distance) = infrared_sensor.seek_channel_4()?;

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> StrictAs for T

Source§

fn strict_as<Dst>(self) -> Dst
where T: StrictCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> StrictCastFrom<Src> for Dst
where Src: StrictCast<Dst>,

Source§

fn strict_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.