infrared_sensor/
infrared-sensor.rs1extern crate ev3dev_lang_rust;
2
3use ev3dev_lang_rust::sensors::{BeaconSeeker, InfraredSensor, RemoteControl};
4use ev3dev_lang_rust::Ev3Result;
5
6fn main() -> Ev3Result<()> {
7 let sensor = InfraredSensor::find()?;
8
9 remote(sensor)?;
10 Ok(())
13}
14
15#[allow(dead_code)]
16fn remote(sensor: InfraredSensor) -> Ev3Result<()> {
17 let remote = RemoteControl::new(sensor, 1)?;
18
19 loop {
20 remote.process()?;
21 println!(
22 "Button: {:?},{:?},{:?},{:?},{:?}",
23 remote.is_red_up(),
24 remote.is_red_down(),
25 remote.is_beacon(),
26 remote.is_blue_down(),
27 remote.is_blue_up(),
28 );
29
30 std::thread::sleep(std::time::Duration::from_secs(1));
31 }
32}
33
34#[allow(dead_code)]
35fn seeker(sensor: InfraredSensor) -> Ev3Result<()> {
36 let seeker = BeaconSeeker::new(sensor, 1)?;
37
38 loop {
39 println!("Button: {:?}", seeker.get_heading_and_distance());
40
41 std::thread::sleep(std::time::Duration::from_secs(1));
42 }
43}