pub struct Device {
pub display: Display,
pub joystick: Joystick,
pub button_controller: ButtonController,
}
Expand description
§Device
the Device
struct offers an organized way to access various componenets on the Waveshare OLED
Display Hat. It has three fields, display
, joystick
and button_controller
- The
display
field is an instance of theDisplay
struct that let’s you initialze and control the display - The
joystick
is an instance of theJoystick
struct that let’s you initalize and read input from the joystick on the device. - The button_controller field is an instance of the ButtonController Struct that let’s you initalize and read input from the three buttons on the device
§Usage
use ws_oled_driver::Device;
let mut device = Device::new()?.initialize_components()?;
Fields§
§display: Display
§joystick: Joystick
Implementations§
Source§impl Device
impl Device
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Creates a new Device
. It returns Result<Device, anyhow::Error>
.
Examples found in repository?
More examples
examples/button_control.rs (line 6)
5fn main() -> Result<()> {
6 let mut device = Device::new()?;
7 device.initialize_components()?;
8
9 loop {
10 if let Some(button_state) = device.button_controller.read() {
11 match button_state {
12 State::Key1 => println!("Key1 pressed"),
13 State::Key2 => println!("Key2 pressed"),
14 State::Key3 => println!("Key3 pressed"),
15 }
16 }
17 else {
18 println!("Nothing Pressed!")
19 }
20 }
21}
examples/joystick_control.rs (line 6)
5fn main() -> Result<()> {
6 let mut device = Device::new()?;
7 device.initialize_components()?;
8
9 loop {
10 if let Some(joystick_state) = device.joystick.read() {
11 match joystick_state {
12 joystick::State::Up => {
13 println!("You Pressed Up");
14 }
15 joystick::State::Down => {
16 println!("You Pressed Down");
17 }
18 joystick::State::Left => {
19 println!("You Pressed Left");
20 }
21 joystick::State::Right => {
22 println!("You Pressed Right");
23 }
24 joystick::State::Click => {
25 println!("You Clicked!");
26 }
27 }
28 }
29 }
30}
Sourcepub fn initialize_components(&mut self) -> Result<()>
pub fn initialize_components(&mut self) -> Result<()>
Intializes components - display, joystick & buttons.
Examples found in repository?
More examples
examples/button_control.rs (line 7)
5fn main() -> Result<()> {
6 let mut device = Device::new()?;
7 device.initialize_components()?;
8
9 loop {
10 if let Some(button_state) = device.button_controller.read() {
11 match button_state {
12 State::Key1 => println!("Key1 pressed"),
13 State::Key2 => println!("Key2 pressed"),
14 State::Key3 => println!("Key3 pressed"),
15 }
16 }
17 else {
18 println!("Nothing Pressed!")
19 }
20 }
21}
examples/joystick_control.rs (line 7)
5fn main() -> Result<()> {
6 let mut device = Device::new()?;
7 device.initialize_components()?;
8
9 loop {
10 if let Some(joystick_state) = device.joystick.read() {
11 match joystick_state {
12 joystick::State::Up => {
13 println!("You Pressed Up");
14 }
15 joystick::State::Down => {
16 println!("You Pressed Down");
17 }
18 joystick::State::Left => {
19 println!("You Pressed Left");
20 }
21 joystick::State::Right => {
22 println!("You Pressed Right");
23 }
24 joystick::State::Click => {
25 println!("You Clicked!");
26 }
27 }
28 }
29 }
30}
Auto Trait Implementations§
impl Freeze for Device
impl !RefUnwindSafe for Device
impl Send for Device
impl !Sync for Device
impl Unpin for Device
impl !UnwindSafe for Device
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