toio

Crates.iotoio
lib.rstoio
version0.1.4
sourcesrc
created_at2020-06-15 13:44:50.727074
updated_at2020-07-05 11:45:19.12722
descriptiontoio driver in Rust
homepagehttps://github.com/yushiomote/toio-rs
repositoryhttps://github.com/yushiomote/toio-rs
max_upload_size
id254237
size128,384
Yushi OMOTE (YushiOMOTE)

documentation

https://docs.rs/toio

README

toio-rs

toio driver in Rust

Latest version Documentation License Actions Status

demo

  • Supports all the messages defined in the technical specification (ver. 2.1.0).
  • Supports async/await.
  • Provides the similar capability as JavaScript version.
  • Provides the high-level API, which is easy to use.
  • Provides the low-level API, which allows fine-grained control and configuration.
  • Plans to be cross-platform. The targets are:
    • macOS
    • Windows 10 (TODO)
    • Linux (TODO)
use std::time::Duration;
use toio::Cube;
use tokio::time::delay_for;

#[tokio::main]
async fn main() {
    // Search for the nearest cube
    let mut cube = Cube::search().nearest().await.unwrap();

    // Connect
    cube.connect().await.unwrap();

    // Move forward
    cube.go(20, 20, None).await.unwrap();

    delay_for(Duration::from_secs(3)).await;

    // Move backward
    cube.go(-15, -15, None).await.unwrap();

    delay_for(Duration::from_secs(3)).await;

    // Spin counterclockwise
    cube.go(5, 50, None).await.unwrap();

    delay_for(Duration::from_secs(3)).await;

    // Spin clockwise
    cube.go(50, 5, None).await.unwrap();

    delay_for(Duration::from_secs(3)).await;

    // Stop
    cube.stop().await.unwrap();
}
Commit count: 84

cargo fmt