Bevy+Ratutui powered Monitoring of Pico-Strike devices

proto helpers, minor layout and clippy tweaks

+25 -4
+2
src/lib.rs
··· 1 + #![allow(clippy::type_complexity)] 2 + 1 3 mod device; 2 4 mod messages; 3 5 mod net;
+5 -3
src/net.rs
··· 140 140 let (resp_tx, resp_rx) = async_channel::bounded(64); 141 141 142 142 io.spawn(async move { 143 - let mut buf = vec![0u8; 4096]; 143 + let mut read_buf = vec![0u8; 4096]; 144 144 145 145 while let Ok(StrikeConnection::Connect(addr)) = signal_rx.recv().await { 146 146 let net_fut = async { ··· 150 150 continue; 151 151 }; 152 152 153 - while let Ok(read) = stream.read_with(|mut a| a.read(&mut buf)).await { 153 + while let Ok(read) = stream.read_with(|mut a| a.read(&mut read_buf)).await { 154 + let Ok(data) = striker_proto::receive_response(&mut read_buf[..read]) else { continue }; 155 + 154 156 resp_tx 155 - .send(postcard::from_bytes(&buf[..read]).unwrap()) 157 + .send(data) 156 158 .await 157 159 .ok(); 158 160 }
-1
src/views/monitoring.rs
··· 243 243 244 244 let block = Block::bordered() 245 245 .title("Details") 246 - .padding(Padding::new(2, 2, 1, 1)) 247 246 .border_style(Color::LightGreen); 248 247 249 248 let chart = Chart::new(datasets)
+18
striker-proto/src/lib.rs
··· 38 38 average: u16, 39 39 }, 40 40 } 41 + 42 + pub fn send_response(response: StrikerResponse, buf: &mut [u8]) -> Result<(), postcard::Error> { 43 + postcard::to_slice(&response, buf)?; 44 + Ok(()) 45 + } 46 + 47 + pub fn receive_response(buf: &mut [u8]) -> Result<StrikerResponse, postcard::Error> { 48 + postcard::from_bytes(buf) 49 + } 50 + 51 + pub fn send_request(request: StrikerRequest, buf: &mut [u8]) -> Result<(), postcard::Error> { 52 + postcard::to_slice(&request, buf)?; 53 + Ok(()) 54 + } 55 + 56 + pub fn receive_request(buf: &mut [u8]) -> Result<StrikerRequest, postcard::Error> { 57 + postcard::from_bytes(buf) 58 + }