diff --git a/sensor-plot/src/main.rs b/sensor-plot/src/main.rs index 0deb211893b67dbff54c5bdd7666df00bdd8614a..993aa5322e0bbf265f762cbcca3d16fac2cef94d 100644 --- a/sensor-plot/src/main.rs +++ b/sensor-plot/src/main.rs @@ -7,7 +7,7 @@ use core::fmt::Write; struct PlotBuffer { buffer: [i32; Display::W as usize], - index: usize, + index: u16, } impl PlotBuffer { @@ -27,9 +27,9 @@ impl PlotBuffer { } pub fn add_sample(&mut self, sample: i32) { - self.buffer[self.index] = sample; + self.buffer[self.index as usize] = sample; self.index += 1; - if self.index >= Display::W as usize { + if self.index >= Display::W { self.index = 0; } } @@ -45,9 +45,11 @@ impl PlotBuffer { }; for i in 0..Display::W { + let index = (self.index + i) % Display::W; display.pixel( i, - ((Display::H - 1) as f32 - ((self.buffer[i as usize] as f32 - min) * multiplier)) + ((Display::H - 1) as f32 + - ((self.buffer[index as usize] as f32 - min) * multiplier)) as u16, Color::white(), );