Rudimentary image displaying
This commit is contained in:
parent
7d736fa378
commit
e374a6e5dc
5 changed files with 59 additions and 23 deletions
33
Cargo.lock
generated
33
Cargo.lock
generated
|
@ -298,6 +298,7 @@ dependencies = [
|
||||||
"linux-embedded-hal",
|
"linux-embedded-hal",
|
||||||
"profont",
|
"profont",
|
||||||
"ssd1675",
|
"ssd1675",
|
||||||
|
"tinybmp",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -354,6 +355,12 @@ dependencies = [
|
||||||
"void",
|
"void",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memchr"
|
||||||
|
version = "2.3.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memoffset"
|
name = "memoffset"
|
||||||
version = "0.6.5"
|
version = "0.6.5"
|
||||||
|
@ -416,6 +423,16 @@ dependencies = [
|
||||||
"memoffset",
|
"memoffset",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nom"
|
||||||
|
version = "6.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9c5c51b9083a3c620fa67a2a635d1ce7d95b897e957d6b28ff9a5da960a103a6"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num"
|
name = "num"
|
||||||
version = "0.1.42"
|
version = "0.1.42"
|
||||||
|
@ -750,6 +767,22 @@ dependencies = [
|
||||||
"weezl",
|
"weezl",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tinybmp"
|
||||||
|
version = "0.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "44873aee48dd30712dc2610209902a78b9033a0148ac03c6c3e73e4ca2f49838"
|
||||||
|
dependencies = [
|
||||||
|
"embedded-graphics",
|
||||||
|
"nom",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "version_check"
|
||||||
|
version = "0.9.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "void"
|
name = "void"
|
||||||
version = "1.0.2"
|
version = "1.0.2"
|
||||||
|
|
|
@ -9,6 +9,7 @@ authors = ["Felix Wittwer <dev@felixwittwer.de>"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
embedded-graphics = "0.7.1"
|
embedded-graphics = "0.7.1"
|
||||||
|
tinybmp = "0.3.3"
|
||||||
profont = "0.5.0"
|
profont = "0.5.0"
|
||||||
#ssd1675 = { git = "https://github.com/Feliix42/ssd1675" }
|
#ssd1675 = { git = "https://github.com/Feliix42/ssd1675" }
|
||||||
ssd1675 = { path = "../ssd1675" }
|
ssd1675 = { path = "../ssd1675" }
|
||||||
|
|
BIN
rain2.bmp
Normal file
BIN
rain2.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 402 B |
|
@ -1,33 +1,22 @@
|
||||||
|
use embedded_graphics::prelude::*;
|
||||||
|
use embedded_graphics_simulator::{OutputSettings, SimulatorDisplay, Window};
|
||||||
use ssd1675::Color;
|
use ssd1675::Color;
|
||||||
use embedded_graphics::{
|
|
||||||
pixelcolor::BinaryColor,
|
|
||||||
prelude::*,
|
|
||||||
primitives::{Circle, Line, Rectangle, PrimitiveStyle},
|
|
||||||
mono_font::{ascii::FONT_6X9, MonoTextStyle},
|
|
||||||
text::Text,
|
|
||||||
};
|
|
||||||
use embedded_graphics_simulator::{BinaryColorTheme, SimulatorDisplay, Window, OutputSettingsBuilder, OutputSettings};
|
|
||||||
|
|
||||||
|
|
||||||
fn main() -> Result<(), core::convert::Infallible> {
|
fn main() -> Result<(), core::convert::Infallible> {
|
||||||
println!("Initialize Display");
|
println!("Initialize Display");
|
||||||
let mut display = SimulatorDisplay::<Color>::new(Size::new(212, 104));
|
let mut display = SimulatorDisplay::<Color>::new(Size::new(212, 104));
|
||||||
|
|
||||||
let output_settings = OutputSettingsBuilder::new()
|
|
||||||
.theme(BinaryColorTheme::OledBlue)
|
|
||||||
.build();
|
|
||||||
println!("Creating Window");
|
println!("Creating Window");
|
||||||
let mut window = Window::new("Hello World", &OutputSettings::default());
|
let mut window = Window::new("Hello World", &OutputSettings::default());
|
||||||
|
|
||||||
|
|
||||||
//loop {
|
//loop {
|
||||||
//println!("Populate display...");
|
//println!("Populate display...");
|
||||||
//inky_ticker::populate(&mut display);
|
//inky_ticker::populate(&mut display);
|
||||||
|
|
||||||
//println!("Updating window");
|
//println!("Updating window");
|
||||||
//window.update(&display);
|
//window.update(&display);
|
||||||
|
|
||||||
//std::thread::sleep(std::time::Duration::from_secs(1));
|
//std::thread::sleep(std::time::Duration::from_secs(1));
|
||||||
//}
|
//}
|
||||||
|
|
||||||
inky_ticker::populate(&mut display);
|
inky_ticker::populate(&mut display);
|
||||||
|
@ -35,4 +24,3 @@ fn main() -> Result<(), core::convert::Infallible> {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
20
src/lib.rs
20
src/lib.rs
|
@ -1,16 +1,17 @@
|
||||||
use embedded_graphics::{
|
use embedded_graphics::{
|
||||||
draw_target::DrawTarget, mono_font::MonoTextStyle, prelude::*, text::Text,
|
draw_target::DrawTarget, image::Image, mono_font::MonoTextStyle, prelude::*, text::Text,
|
||||||
};
|
};
|
||||||
use profont::{PROFONT_12_POINT, PROFONT_14_POINT, PROFONT_24_POINT, PROFONT_9_POINT};
|
use profont::{PROFONT_12_POINT, PROFONT_14_POINT, PROFONT_24_POINT, PROFONT_9_POINT};
|
||||||
use ssd1675::Color;
|
use ssd1675::Color;
|
||||||
use std::process::Command;
|
|
||||||
use std::fmt::Debug;
|
use std::fmt::Debug;
|
||||||
|
use std::process::Command;
|
||||||
use std::{fs, io};
|
use std::{fs, io};
|
||||||
|
use tinybmp::Bmp;
|
||||||
|
|
||||||
pub fn populate<D>(display: &mut D)
|
pub fn populate<D>(display: &mut D)
|
||||||
where
|
where
|
||||||
D: DrawTarget<Color = Color>,
|
D: DrawTarget<Color = Color>,
|
||||||
D::Error: Debug
|
D::Error: Debug,
|
||||||
{
|
{
|
||||||
Text::new(
|
Text::new(
|
||||||
"Raspberry Pi",
|
"Raspberry Pi",
|
||||||
|
@ -56,6 +57,19 @@ where
|
||||||
.draw(display)
|
.draw(display)
|
||||||
.expect("error drawing text");
|
.expect("error drawing text");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let bmp_data = include_bytes!("../rain2.bmp");
|
||||||
|
|
||||||
|
// Load 16 BPP 8x8px image.
|
||||||
|
// Note: The color type is specified explicitly to match the format used by the BMP image.
|
||||||
|
let bmp = Bmp::<Color>::from_slice(bmp_data).unwrap();
|
||||||
|
//let bmp: Bmp<Color> = bmp.into();
|
||||||
|
|
||||||
|
// Draw the image with the top left corner at (10, 20) by wrapping it in
|
||||||
|
// an embedded-graphics `Image`.
|
||||||
|
Image::new(&bmp, Point::new(10, 20))
|
||||||
|
.draw(display)
|
||||||
|
.expect("Failed to draw image");
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn read_cpu_temp() -> Result<f64, io::Error> {
|
pub fn read_cpu_temp() -> Result<f64, io::Error> {
|
||||||
|
|
Loading…
Reference in a new issue