From cc63f34e9e02a1925b15867eceb6a381867fda9c Mon Sep 17 00:00:00 2001 From: Maxime Augier Date: Sat, 20 Apr 2024 12:30:41 +0200 Subject: [PATCH] Round measures to their significant bits, remove debug statements --- src/main.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index d89ece3..daad81b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,11 +29,13 @@ struct Data { impl Data { fn from_pkt(addr: Address, b: &[u8]) -> Data { - eprintln!("Packet {:?}", b); + + let round = |v: f32| (v*100.0).round() / 100.0; + Data { addr, - temperature: (u16::from_le_bytes([b[2], b[3]]) as f32) * 175.0 / 65535.0 - 45.0, - humidity: (u16::from_le_bytes([b[4], b[5]]) as f32) * 100.0 / 65535.0, + temperature: round((u16::from_le_bytes([b[2], b[3]]) as f32) * 175.0 / 65535.0 - 45.0), + humidity: round((u16::from_le_bytes([b[4], b[5]]) as f32) * 100.0 / 65535.0), co2: u16::from_le_bytes([b[6], b[7]]), } } @@ -61,9 +63,9 @@ impl DataStore { for (_, (data, point)) in self.devices.iter() { let Data { addr, temperature, humidity, co2 } = data; let time = point.duration_since(UNIX_EPOCH).expect("Time went backwards").as_millis(); - scrape += &format!("sensirion_temperature_celsius{{id=\"{addr}\"}} {temperature} {time}\n"); - scrape += &format!("sensirion_humidity_percent{{id=\"{addr}\"}} {humidity} {time}\n"); - scrape += &format!("sensirion_co2_ppm{{id=\"{addr}\"}} {co2} {time}\n"); + scrape += &format!("sensirion_temperature_celsius{{id=\"{addr}\"}} {temperature} {time}\n"); + scrape += &format!("sensirion_humidity_percent{{id=\"{addr}\"}} {humidity} {time}\n"); + scrape += &format!("sensirion_co2_ppm{{id=\"{addr}\"}} {co2} {time}\n"); } scrape