This commit is contained in:
saji 2024-07-03 18:33:04 -05:00
parent c1b1f2106a
commit 227147e411
5 changed files with 3046 additions and 58 deletions

3060
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -3,9 +3,14 @@ name = "pi-frame-server"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
[features]
gui = [ "dep:eframe" ]
eink = [ "dep:epd-waveshare", "dep:linux-embedded-hal" ]
[dependencies] [dependencies]
anyhow = "1.0.86" anyhow = "1.0.86"
clap = { version = "4.5.7", features = ["derive"] } clap = { version = "4.5.7", features = ["derive"] }
eframe = "0.28.0"
epd-waveshare = { git = "https://github.com/caemor/epd-waveshare.git" } epd-waveshare = { git = "https://github.com/caemor/epd-waveshare.git" }
image = "0.25.1" image = "0.25.1"
linux-embedded-hal = { version = "0.4.0" } linux-embedded-hal = { version = "0.4.0" }

View file

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
set +x set +x
cross build --target aarch64-unknown-linux-gnu cross build --target aarch64-unknown-linux-gnu --release
rsync -aczP target/aarch64-unknown-linux-gnu/debug/pi-frame-server 192.168.0.186: rsync -aczP target/aarch64-unknown-linux-gnu/release/pi-frame-server 192.168.0.186:
# scp target/aarch64-unknown-linux-gnu/debug/pi-frame-server 192.168.0.186: # scp target/aarch64-unknown-linux-gnu/debug/pi-frame-server 192.168.0.186:
ssh 192.168.0.186 ./pi-frame-server load ssh 192.168.0.186 ./pi-frame-server load

View file

@ -1,43 +1,11 @@
use epd_waveshare::{epd7in3f::Epd7in3f, prelude::WaveshareDisplay}; use epd_waveshare::{epd7in3f::Epd7in3f, prelude::WaveshareDisplay};
use linux_embedded_hal::spidev::SpiModeFlags; use linux_embedded_hal::spidev::SpiModeFlags;
use linux_embedded_hal::spidev::SpidevOptions; use linux_embedded_hal::spidev::SpidevOptions;
use linux_embedded_hal::{CdevPin, Delay, SpidevBus, SpidevDevice}; use linux_embedded_hal::{CdevPin, Delay, SpidevDevice};
use linux_embedded_hal::gpio_cdev::{Chip, LineRequestFlags}; use linux_embedded_hal::gpio_cdev::{Chip, LineRequestFlags};
use anyhow::Result; use anyhow::Result;
pub fn demo() -> Result<()> {
let mut spi = SpidevDevice::open("/dev/spidev0.0")?;
let spi_options = SpidevOptions::new()
.bits_per_word(8)
.max_speed_hz(10_000_000)
.mode(SpiModeFlags::SPI_MODE_0)
.build();
spi.configure(&spi_options)?;
let mut gpiochip = Chip::new("/dev/gpiochip0")?;
let busy_pin = CdevPin::new(gpiochip.get_line(24)?.request(
LineRequestFlags::INPUT,
0,
"frametool",
)?)?;
let dc_pin = CdevPin::new(gpiochip.get_line(25)?.request(
LineRequestFlags::OUTPUT,
0,
"frametool",
)?)?;
let rst_pin = CdevPin::new(gpiochip.get_line(17)?.request(
LineRequestFlags::OUTPUT,
0,
"frametool",
)?)?;
let mut delay = Delay {};
let mut panel = Epd7in3f::new(&mut spi, busy_pin, dc_pin, rst_pin, &mut delay, None)?;
panel.show_7block(&mut spi, &mut delay)?;
Ok(())
}
pub struct DisplayWrapper { pub struct DisplayWrapper {
spi: SpidevDevice, spi: SpidevDevice,
gpiochip: Chip, gpiochip: Chip,
@ -86,3 +54,4 @@ impl DisplayWrapper {
Ok(()) Ok(())
} }
} }

0
src/ui.rs Normal file
View file