changeset 602:613f114feb4b rust

missing file
author Matt Johnston <matt@ucc.asn.au>
date Thu, 16 Feb 2017 23:17:51 +0800
parents 8c21df3711e2
children b45b8b4cf0f5
files rust/src/configwaiter.rs
diffstat 1 files changed, 37 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rust/src/configwaiter.rs	Thu Feb 16 23:17:51 2017 +0800
@@ -0,0 +1,37 @@
+extern crate tokio_core;
+extern crate futures;
+extern crate rand;
+
+use std::time::Duration;
+use std::io;
+
+use tokio_core::reactor::Interval;
+use tokio_core::reactor::Handle;
+use futures::Stream;
+use types::*;
+
+pub struct ParamWaiter {
+}
+
+impl ParamWaiter {
+    fn step(&mut self) -> Params {
+        let mut p = Params::defaults();
+        let mut rng = rand::thread_rng();
+        p.fridge_setpoint = 17.0 + 4.0*rand::random::<f32>();
+        p
+    }
+
+    pub fn new() -> Self {
+        ParamWaiter {}
+    }
+
+    pub fn run(handle: &Handle, rate: u64) -> Box<Stream<Item=Params, Error=io::Error>> {
+        let mut s = ParamWaiter::new();
+
+        let dur = Duration::from_millis(rate);
+        Interval::new(dur, handle).unwrap().map(move |()| {
+            s.step()
+        }).boxed()
+    }
+}
+