Mercurial > templog
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() + } +} +