Skip to content

Instant feedback of your task execution via blink(1) LED

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

devzbysiu/transition

transition

LED notifications made easy

CI status badge Crates.io version Code coverage License

Built with 🦀

About

This library allows you control the state of code execution using blink(1) LED notifier.

You simply wrap the code you want to track with transition library:

use std::error::Error;
use std::thread;
use std::time::Duration;
use transition::Transition;

fn main() -> Result<(), Box<dyn Error>> {
    // start transition
    let notification = Transition::default().start()?;

    // our example code
    thread::sleep(Duration::from_secs(5));

    // task finished with success
    notification.notify_success()?;

    Ok(())
}

What does it do?

  1. After calling start(), blink(1) starts blinking with blue light. This is done in a separate thread.
  2. Then our code is executing.
  3. At the end we call notification.notify_success() (or notification.notify_failure()) which changes the color of LED to green (or red).

Supported colors:

use transition::Led;

let color = Led::Blue;
match color {
  Led::Red => println!("red"),
  Led::Green => println!("green"),
  Led::Blue => println!("blue"),
  Led::Yellow => println!("yellow"),
  Led::Orange => println!("orange"),
  Led::Pink => println!("pink"),
  Led::Cyan => println!("cyan"),
  Led::White => println!("white"),
  Led::Blank => println!("turn off the led"),
}

See examples for more

Demo

Demo GIF

Installation

Add as a dependency to your Cargo.toml:

[dependencies]
transition = "0.1.1"

One of the dependency requires libusb-1.0 to be installed. On Linux you can install it by running:

sudo apt install libusb-1.0

Make sure that you have correct access rights to access blink(1) device. See udev rules here.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Instant feedback of your task execution via blink(1) LED

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages