Switch to binary msg
This commit is contained in:
@@ -15,8 +15,7 @@ impl FlutR {
|
||||
|
||||
pub fn flut(&mut self) {
|
||||
for msg in self.msgs.clone() {
|
||||
dbg!(&msg);
|
||||
let result = self.stream.write(msg.as_str().as_bytes());
|
||||
let result = self.stream.write(&msg);
|
||||
match result {
|
||||
Ok(_) => (),
|
||||
Err(err) => eprintln!("{err}"),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use image::Rgb;
|
||||
|
||||
pub type PixelMsgs = Vec<String>;
|
||||
pub type PixelMsg = [u8; 10];
|
||||
pub type PixelMsgs = Vec<PixelMsg>;
|
||||
|
||||
pub trait Add {
|
||||
fn add(&mut self, item: (u32, u32, &Rgb<u8>));
|
||||
@@ -8,11 +9,16 @@ pub trait Add {
|
||||
|
||||
impl Add for PixelMsgs {
|
||||
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 r = color.0[0];
|
||||
let g = color.0[1];
|
||||
let b = color.0[2];
|
||||
let msg = format!("PX {} {} {r:02x}{g:02x}{b:02x}\n", item.0, item.1);
|
||||
self.push(msg);
|
||||
let r = color.0[0].to_le_bytes();
|
||||
let g = color.0[1].to_le_bytes();
|
||||
let b = color.0[2].to_le_bytes();
|
||||
|
||||
let msg = [pb, &x, &y, &r, &g, &b, &[0]].concat();
|
||||
self.push(msg.try_into().unwrap());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user