diff --git a/Cargo.lock b/Cargo.lock index 4e5b5e2..39aafd3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1460,6 +1460,7 @@ dependencies = [ "sachy-sntp", "serde", "static_cell", + "striker-proto", ] [[package]] @@ -1899,6 +1900,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "striker-proto" +version = "0.1.0" +source = "git+https://tangled.org/sachy.dev/striker#1435f9c442cd90c3d80a4f0b3b51dd7b9b218534" +dependencies = [ + "postcard", + "serde", +] + [[package]] name = "string_cache" version = "0.8.9" diff --git a/Cargo.toml b/Cargo.toml index bd489a7..e3b3d6c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,6 +49,7 @@ sachy-sntp = { git = "https://tangled.org/sachy.dev/sachy-embed-core", package = ] } sachy-mdns = { git = "https://tangled.org/sachy.dev/sachy-embed-core", package = "sachy-mdns" } sachy-fmt = { git = "https://tangled.org/sachy.dev/sachy-embed-core", package = "sachy-fmt" } +striker-proto = { git = "https://tangled.org/sachy.dev/striker", package = "striker-proto" } embassy-embedded-hal = { version = "0.5.0" } embassy-sync = { version = "0.7.2" } diff --git a/src/detector/data.rs b/src/detector/data.rs index 470a47b..386fb92 100644 --- a/src/detector/data.rs +++ b/src/detector/data.rs @@ -2,7 +2,7 @@ use crate::updates::NetDataSender; pub(super) fn transmit_level_update(timestamp: i64, warn_level: u16, net_data: &NetDataSender) { net_data - .try_send(crate::updates::Update::Warning { + .try_send(striker_proto::Update::Warning { timestamp, level: warn_level, }) @@ -17,7 +17,7 @@ pub(super) fn transmit_strike( net_data: &NetDataSender, ) { net_data - .try_send(crate::updates::Update::Strike { + .try_send(striker_proto::Update::Strike { timestamp, peaks: peaks.to_vec(), samples: samples diff --git a/src/net.rs b/src/net.rs index 221c44c..fd803c6 100644 --- a/src/net.rs +++ b/src/net.rs @@ -139,7 +139,10 @@ async fn data_loop<'connection>(tcp: &mut TcpSocket<'connection>, net_data: &Net if tcp .write_with(|buf| { - let written = unwrap!(postcard::to_slice(&data, buf)); + let written = unwrap!(postcard::to_slice( + &striker_proto::StrikerResponse::Update(data), + buf + )); (written.len(), ()) }) diff --git a/src/updates.rs b/src/updates.rs index 8a2bee0..e45e81c 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -1,6 +1,5 @@ -use alloc::vec::Vec; - use embassy_sync::channel::{Channel, Receiver, Sender}; +use striker_proto::Update; use crate::{ locks::NetDataLock, @@ -11,20 +10,6 @@ pub type NetDataChannel = Channel; pub type NetDataSender = Sender<'static, NetDataLock, Update, 8>; pub type NetDataReceiver = Receiver<'static, NetDataLock, Update, 8>; -#[derive(Debug, serde::Serialize)] -pub enum Update { - Warning { - timestamp: i64, - level: u16, - }, - Strike { - timestamp: i64, - peaks: Vec, - samples: Vec, - average: u16, - }, -} - static NET_CHANNEL: NetDataChannel = Channel::new(); pub struct UpdateConnection;