change transparent line example to wiping_clear
This commit is contained in:
parent
35ae1f20ce
commit
0e393896d3
5 changed files with 53 additions and 59 deletions
41
examples/wiping_clear/src/main.rs
Normal file
41
examples/wiping_clear/src/main.rs
Normal file
|
@ -0,0 +1,41 @@
|
|||
use std::thread;
|
||||
use std::time::Duration;
|
||||
|
||||
use clap::Parser;
|
||||
|
||||
use servicepoint2::{BitVec, Connection, PIXEL_HEIGHT, PIXEL_WIDTH, PixelGrid};
|
||||
use servicepoint2::Command::BitmapLinearAnd;
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
struct Cli {
|
||||
#[arg(short, long, default_value = "localhost:2342")]
|
||||
destination: String,
|
||||
#[arg(short, long = "duration-ms", default_value_t = 5000)]
|
||||
time: u64,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
env_logger::builder()
|
||||
.filter_level(log::LevelFilter::Info)
|
||||
.init();
|
||||
let cli = Cli::parse();
|
||||
|
||||
let connection = Connection::open(cli.destination).unwrap();
|
||||
let sleep_duration = Duration::from_millis(cli.time / PIXEL_WIDTH as u64);
|
||||
|
||||
let mut enabled_pixels = PixelGrid::new(PIXEL_WIDTH as usize, PIXEL_HEIGHT as usize);
|
||||
enabled_pixels.fill(true);
|
||||
|
||||
for x_offset in 0..PIXEL_WIDTH as usize {
|
||||
for y in 0..PIXEL_HEIGHT as usize {
|
||||
enabled_pixels.set(x_offset % PIXEL_WIDTH as usize, y, false);
|
||||
}
|
||||
|
||||
// this works because the pixel grid has max size
|
||||
let pixel_data: Vec<u8> = enabled_pixels.clone().into();
|
||||
let bit_vec = BitVec::load(&*pixel_data);
|
||||
|
||||
connection.send(BitmapLinearAnd(0, bit_vec)).unwrap();
|
||||
thread::sleep(sleep_duration);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue