Bevy+Ratutui powered Monitoring of Pico-Strike devices

Basic proto definition

+77 -10
+37
Cargo.lock
··· 1004 1004 checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 1005 1005 1006 1006 [[package]] 1007 + name = "cobs" 1008 + version = "0.3.0" 1009 + source = "registry+https://github.com/rust-lang/crates.io-index" 1010 + checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" 1011 + dependencies = [ 1012 + "thiserror 2.0.17", 1013 + ] 1014 + 1015 + [[package]] 1007 1016 name = "color-eyre" 1008 1017 version = "0.6.5" 1009 1018 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1343 1352 version = "1.15.0" 1344 1353 source = "registry+https://github.com/rust-lang/crates.io-index" 1345 1354 checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 1355 + 1356 + [[package]] 1357 + name = "embedded-io" 1358 + version = "0.4.0" 1359 + source = "registry+https://github.com/rust-lang/crates.io-index" 1360 + checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 1361 + 1362 + [[package]] 1363 + name = "embedded-io" 1364 + version = "0.6.1" 1365 + source = "registry+https://github.com/rust-lang/crates.io-index" 1366 + checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 1346 1367 1347 1368 [[package]] 1348 1369 name = "encase" ··· 2325 2346 ] 2326 2347 2327 2348 [[package]] 2349 + name = "postcard" 2350 + version = "1.1.3" 2351 + source = "registry+https://github.com/rust-lang/crates.io-index" 2352 + checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" 2353 + dependencies = [ 2354 + "cobs", 2355 + "embedded-io 0.4.0", 2356 + "embedded-io 0.6.1", 2357 + "serde", 2358 + ] 2359 + 2360 + [[package]] 2328 2361 name = "powerfmt" 2329 2362 version = "0.2.0" 2330 2363 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2811 2844 [[package]] 2812 2845 name = "striker-proto" 2813 2846 version = "0.1.0" 2847 + dependencies = [ 2848 + "postcard", 2849 + "serde", 2850 + ] 2814 2851 2815 2852 [[package]] 2816 2853 name = "strsim"
+4
Cargo.toml
··· 8 8 repository = "https://tangled.org/sachy.dev/striker" 9 9 license = "MIT OR Apache-2.0" 10 10 11 + [workspace.dependencies] 12 + serde = { version = "1.0.210", default-features = false } 13 + postcard = { version = "1.1.3", default-features = false } 14 + 11 15 [package] 12 16 name = "striker" 13 17 version = "0.1.0"
+2
striker-proto/Cargo.toml
··· 7 7 license.workspace = true 8 8 9 9 [dependencies] 10 + serde = { workspace = true, features = ["alloc"] } 11 + postcard = { workspace = true, features = ["alloc"] }
+34 -10
striker-proto/src/lib.rs
··· 1 - pub fn add(left: u64, right: u64) -> u64 { 2 - left + right 1 + #[derive(Debug, serde::Serialize, serde::Deserialize)] 2 + pub struct StrikerRequest { 3 + pub request: Request, 3 4 } 4 5 5 - #[cfg(test)] 6 - mod tests { 7 - use super::*; 6 + #[derive(Debug, serde::Serialize, serde::Deserialize)] 7 + pub enum Request { 8 + Ping, 9 + } 8 10 9 - #[test] 10 - fn it_works() { 11 - let result = add(2, 2); 12 - assert_eq!(result, 4); 13 - } 11 + #[derive(Debug, serde::Serialize, serde::Deserialize)] 12 + pub enum StrikerResponse { 13 + Response { 14 + response: Response, 15 + }, 16 + Update(Update), 14 17 } 18 + 19 + #[derive(Debug, serde::Serialize, serde::Deserialize)] 20 + pub enum Response { 21 + Pong, 22 + } 23 + 24 + #[derive(Debug, serde::Serialize, serde::Deserialize)] 25 + pub enum Update { 26 + Warning { 27 + timestamp: i64, 28 + level: u16, 29 + }, 30 + Strike { 31 + timestamp: i64, 32 + peaks: Vec<u16>, 33 + samples: Vec<i16>, 34 + average: u16, 35 + }, 36 + } 37 + 38 +