Struct ev3dev_lang_rust::Button
source · pub struct Button { /* private fields */ }Available on crate feature
ev3 only.Expand description
Ev3 brick button handler. Opens the corresponding /dev/input file handlers.
This implementation depends on the availability of the EVIOCGKEY ioctl to be able to read the button state buffer. See Linux kernel source in /include/uapi/linux/input.h for details.
use ev3dev_lang_rust::Button;
use std::thread;
use std::time::Duration;
let button = Button::new()?;
loop {
button.process();
println!("Is 'up' pressed: {}", button.is_up());
println!("Pressed buttons: {:?}", button.get_pressed_buttons());
thread::sleep(Duration::from_millis(100));
}Implementations§
source§impl Button
impl Button
sourcepub fn new() -> Ev3Result<Self>
pub fn new() -> Ev3Result<Self>
Ev3 brick button handler. Opens the corresponding /dev/input file handlers.
Examples found in repository?
examples/buttons.rs (line 6)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn process(&self)
pub fn process(&self)
Check for currently pressed buttons. If the new state differs from the old state, call the appropriate button event handlers.
Examples found in repository?
examples/buttons.rs (line 9)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}Get all pressed buttons by name.
Examples found in repository?
examples/buttons.rs (line 20)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn is_up(&self) -> bool
pub fn is_up(&self) -> bool
Check if ‘up’ button is pressed.
Examples found in repository?
examples/buttons.rs (line 13)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn is_down(&self) -> bool
pub fn is_down(&self) -> bool
Check if ‘down’ button is pressed.
Examples found in repository?
examples/buttons.rs (line 14)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn is_left(&self) -> bool
pub fn is_left(&self) -> bool
Check if ‘left’ button is pressed.
Examples found in repository?
examples/buttons.rs (line 15)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn is_right(&self) -> bool
pub fn is_right(&self) -> bool
Check if ‘right’ button is pressed.
Examples found in repository?
examples/buttons.rs (line 16)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn is_enter(&self) -> bool
pub fn is_enter(&self) -> bool
Check if ‘enter’ button is pressed.
Examples found in repository?
examples/buttons.rs (line 17)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}sourcepub fn is_backspace(&self) -> bool
pub fn is_backspace(&self) -> bool
Check if ‘backspace’ button is pressed.
Examples found in repository?
examples/buttons.rs (line 18)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
fn main() -> Ev3Result<()> {
let button = Button::new()?;
loop {
button.process();
println!(
"{}, {}, {}, {}, {}, {}",
button.is_up(),
button.is_down(),
button.is_left(),
button.is_right(),
button.is_enter(),
button.is_backspace(),
);
println!("{:?}", button.get_pressed_buttons());
std::thread::sleep(std::time::Duration::from_secs(1));
}
}Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Button
impl !Send for Button
impl !Sync for Button
impl Unpin for Button
impl !UnwindSafe for Button
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