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
displayfield is an instance of theDisplaystruct that let’s you initialze and control the display - The
joystickis an instance of theJoystickstruct 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: JoystickImplementations§
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 UnsafeUnpin 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