#[cfg(not(feature = "server"))]
use deoxy::Tui;
use futures::Future;
use std::time::Duration;
use deoxy::{actix::*, Config, CoordMessage, Coordinator, MotorConfig, Protocol, PumpConfig, Step};
fn main() {
pretty_env_logger::init();
let pump = PumpConfig {
pins: [1, 2, 3, 4],
invert: false,
};
let motor1 = MotorConfig {
pin: 5,
period: Duration::new(1, 0),
range: [Duration::from_millis(500), Duration::from_millis(750)],
label: None,
};
let motor2 = MotorConfig {
pin: 6,
period: Duration::new(1, 0),
range: [Duration::from_millis(500), Duration::from_millis(750)],
label: None,
};
let motor3 = MotorConfig {
pin: 7,
period: Duration::new(1, 0),
range: [Duration::from_millis(500), Duration::from_millis(750)],
label: None,
};
let motor4 = MotorConfig {
pin: 8,
period: Duration::new(1, 0),
range: [Duration::from_millis(500), Duration::from_millis(750)],
label: None,
};
let motors = vec![motor1, motor2, motor3, motor4];
let config = Config {
motors,
pump,
admins: vec![],
};
let step1 = Step::Perfuse(0, Some(Duration::new(5, 0)));
let step2 = Step::Perfuse(1, None);
let step3 = Step::Perfuse(3, Some(Duration::new(3, 0)));
let step4 = Step::Perfuse(2, None);
let steps = vec![step1, step2, step3, step4];
let proto = Protocol { steps };
let system = System::new("pause");
let coord = Coordinator::try_new(config).unwrap().start();
#[cfg(not(feature = "server"))]
{
let tui = Box::new(Tui {});
coord.do_send(CoordMessage::Subscribe(tui));
}
coord.do_send(CoordMessage::Start(proto, None));
system.run();
}