use futures::prelude::*;
use std::time::Duration;
use toio::{proto::*, Cube};
use tokio::time::delay_for;
#[tokio::main]
async fn main() {
env_logger::init();
let mut cube = Cube::search().nearest().await.unwrap();
cube.connect().await.unwrap();
cube.write_msg(
Message::Motor(Motor::Simple(MotorSimple::new(
MotorId::Left,
MotorDir::Forward,
30,
MotorId::Right,
MotorDir::Forward,
30,
))),
false,
)
.await
.unwrap();
delay_for(Duration::from_secs(2)).await;
let mut msgs = cube.raw_msgs().await.unwrap();
cube.read_msg(&UUID_MOTION).await.unwrap();
while let Some(msg) = msgs.next().await {
match msg {
Message::Motion(Motion::Detect(d)) => {
println!("{:?}", d);
break;
}
_ => {}
}
}
delay_for(Duration::from_secs(2)).await;
}