Device (Front) | Device (Back) | Device (Powered)
:-------------------------:|:-------------------------:|:------------------------:|
|
|
Device: https://www.waveshare.com/wiki/1.3inchOLEDHAT
bash
cargo add ws-oled-driver
-- or --
toml
[dependencies]
ws-oled-driver = "0.0.4"
bash
cargo build --target arm-unknown-linux-gnueabihf --release
NOTE: THE ws_oled_driver::gfx
library is a work in progress. Since there is direct access available to the Display { memory: Vec<u8> }
field, which is the display buffer, you may directly modify the buffer to create visuals and use the display.render()?
function to render it to the display.
```rust use wsoleddriver::Device; /* HAT Device / use ws_oled_driver::gfx; / Graphics */ use anyhow::Result;
fn main() -> Result<()> { let mut device = Device::new()?; device.initialize_components()?;
/* FILL DISPLAY */ gfx::fill(&mut device.display, 0xFF); device.display.render()?;
Ok(()) } ```
```rust use anyhow::Result; use wsoleddriver::joystick; use wsoleddriver::Device; /* HAT Device */
fn main() -> Result<()> { let mut device = Device::new()?; device.initialize_components()?;
loop {
if let Some(joystick_state) = device.joystick.read() {
match joystick_state {
joystick::State::Up => {
println!("You Pressed Up");
}
joystick::State::Down => {
println!("You Pressed Down");
}
joystick::State::Left => {
println!("You Pressed Left");
}
joystick::State::Right => {
println!("You Pressed Right");
}
joystick::State::Click => {
println!("You Clicked!");
}
}
}
}
}
```
```rust use wsoleddriver::Device; /* HAT Device */ use wsoleddriver::button::State; use anyhow::Result;
fn main() -> Result<()> { let mut device = Device::new()?; device.initialize_components()?;
loop { if let Some(buttonstate) = device.buttoncontroller.read() { match button_state { State::Key1 => println!("Key1 pressed"), State::Key2 => println!("Key2 pressed"), State::Key3 => println!("Key3 pressed"), } } else { println!("Nothing Pressed!") } } }
```