X-Git-Url: http://git.scottworley.com/tattlekey/blobdiff_plain/c5cbd7402015e45558995e00d9623f41ecdf9732..79d78cde52a33539a4739df85a234c0aa0c34735:/server/src/main.rs diff --git a/server/src/main.rs b/server/src/main.rs index 37de6bd..071c4b2 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -14,13 +14,14 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +use serde::Serialize; use std::collections::HashMap; use std::net::UdpSocket; use std::time::{Duration, SystemTime}; const MESSAGE_SIZE: usize = 12; -#[derive(Eq, Debug, Hash, PartialEq)] +#[derive(Eq, Debug, Hash, PartialEq, Serialize)] struct MessageKey { epoch: u32, device: u16, @@ -79,6 +80,7 @@ impl Range { } fn main() { + let mut log = csv::Writer::from_writer(std::io::stdout()); let mut presses = HashMap::::new(); let socket = UdpSocket::bind("0.0.0.0:29803").expect("couldn't bind to address"); loop { @@ -92,13 +94,14 @@ fn main() { continue; } let message = Message::try_from(filled_buf).expect("I can't count"); + log.serialize((&message.key, message.t)) + .expect("Couldn't write log"); + log.flush().expect("Couldn't flush log"); if let Some(r) = presses.get_mut(&message.key) { if !r.contains(&message.t) { r.extend(&message.t); - println!("Updated press: {:?}: {r:?}", message.key); } } else { - println!("Got new press: {:?}: {:?}", message.key, message.t); presses.insert(message.key, Range::new(&message.t)); } }