tangled
alpha
login
or
join now
sachy.dev
/
striker
0
fork
atom
Bevy+Ratutui powered Monitoring of Pico-Strike devices
0
fork
atom
overview
issues
pulls
pipelines
proto helpers, minor layout and clippy tweaks
sachy.dev
2 months ago
674322b5
bcbe8eeb
+25
-4
4 changed files
expand all
collapse all
unified
split
src
lib.rs
net.rs
views
monitoring.rs
striker-proto
src
lib.rs
+2
src/lib.rs
···
1
1
+
#![allow(clippy::type_complexity)]
2
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
143
-
let mut buf = vec![0u8; 4096];
143
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
153
-
while let Ok(read) = stream.read_with(|mut a| a.read(&mut buf)).await {
153
153
+
while let Ok(read) = stream.read_with(|mut a| a.read(&mut read_buf)).await {
154
154
+
let Ok(data) = striker_proto::receive_response(&mut read_buf[..read]) else { continue };
155
155
+
154
156
resp_tx
155
155
-
.send(postcard::from_bytes(&buf[..read]).unwrap())
157
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
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
41
+
42
42
+
pub fn send_response(response: StrikerResponse, buf: &mut [u8]) -> Result<(), postcard::Error> {
43
43
+
postcard::to_slice(&response, buf)?;
44
44
+
Ok(())
45
45
+
}
46
46
+
47
47
+
pub fn receive_response(buf: &mut [u8]) -> Result<StrikerResponse, postcard::Error> {
48
48
+
postcard::from_bytes(buf)
49
49
+
}
50
50
+
51
51
+
pub fn send_request(request: StrikerRequest, buf: &mut [u8]) -> Result<(), postcard::Error> {
52
52
+
postcard::to_slice(&request, buf)?;
53
53
+
Ok(())
54
54
+
}
55
55
+
56
56
+
pub fn receive_request(buf: &mut [u8]) -> Result<StrikerRequest, postcard::Error> {
57
57
+
postcard::from_bytes(buf)
58
58
+
}