Switch to binary msg

This commit is contained in:
Jonas Zeunert
2024-12-30 16:20:19 +01:00
parent 439c76c196
commit 0ffc57ae78
2 changed files with 13 additions and 8 deletions

View File

@@ -15,8 +15,7 @@ impl FlutR {
pub fn flut(&mut self) { pub fn flut(&mut self) {
for msg in self.msgs.clone() { for msg in self.msgs.clone() {
dbg!(&msg); let result = self.stream.write(&msg);
let result = self.stream.write(msg.as_str().as_bytes());
match result { match result {
Ok(_) => (), Ok(_) => (),
Err(err) => eprintln!("{err}"), Err(err) => eprintln!("{err}"),

View File

@@ -1,6 +1,7 @@
use image::Rgb; use image::Rgb;
pub type PixelMsgs = Vec<String>; pub type PixelMsg = [u8; 10];
pub type PixelMsgs = Vec<PixelMsg>;
pub trait Add { pub trait Add {
fn add(&mut self, item: (u32, u32, &Rgb<u8>)); fn add(&mut self, item: (u32, u32, &Rgb<u8>));
@@ -8,11 +9,16 @@ pub trait Add {
impl Add for PixelMsgs { impl Add for PixelMsgs {
fn add(&mut self, item: (u32, u32, &Rgb<u8>)) { fn add(&mut self, item: (u32, u32, &Rgb<u8>)) {
let pb: &[u8] = &[80, 66];
let x = (item.0 as u16).to_le_bytes();
let y = (item.1 as u16).to_le_bytes();
let color: &Rgb<u8> = item.2; let color: &Rgb<u8> = item.2;
let r = color.0[0]; let r = color.0[0].to_le_bytes();
let g = color.0[1]; let g = color.0[1].to_le_bytes();
let b = color.0[2]; let b = color.0[2].to_le_bytes();
let msg = format!("PX {} {} {r:02x}{g:02x}{b:02x}\n", item.0, item.1);
self.push(msg); let msg = [pb, &x, &y, &r, &g, &b, &[0]].concat();
self.push(msg.try_into().unwrap());
} }
} }