#led-driver #rgb-led #led #sdk #linux #driver #eruption

eruption-sdk

Provides an interface to the Eruption Realtime RGB LED Driver for Linux

2 releases

0.0.4 Oct 8, 2022
0.0.3 Oct 8, 2022

#1171 in Hardware support

LGPL-3.0

29KB
430 lines

eruption-sdk

Stars Stars Stars Stars

This crate provides an interface to the Eruption Realtime RGB LED Driver for Linux

Table of Contents

License

The Eruption SDK is licensed under the GNU LGPL-3.0 license

Usage

Please add this to your Cargo.toml:

[dependencies]
eruption-sdk = "0.0.4"

MSRV

Minimum Supported Rust Version: Rust 1.64

Example Code

use eruption_sdk::canvas::Canvas;
use eruption_sdk::color::Color;
use eruption_sdk::connection::{Connection, ConnectionType};
use std::thread;
use std::time::Duration;

const EXAMPLE_NAME: &str = "Simple Rust Example #1";

fn main() -> Result<(), eyre::Error> {
    println!(
        "Welcome to the Eruption SDK!\nYou are running the \"{}\" \
        from the Eruption SDK version {}\n",
        EXAMPLE_NAME,
        eruption_sdk::SDK_VERSION
    );

    println!("Connecting to the Eruption daemon...");
    let connection = Connection::new(ConnectionType::Local)?;

    connection.connect()?;
    println!("Successfully connected to the Eruption daemon");

    let status = connection.get_server_status()?;
    println!("{:?}", status);

    // create a new canvas
    let mut canvas = Canvas::new();

    let red = Color::new(255, 0, 0, 128);
    let green = Color::new(0, 255, 0, 128);
    let blue = Color::new(0, 0, 255, 128);
    let final_val = Color::new(0, 0, 0, 0);

    canvas.fill(red);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    thread::sleep(Duration::from_millis(1000));

    canvas.fill(green);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    thread::sleep(Duration::from_millis(1000));

    canvas.fill(blue);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    thread::sleep(Duration::from_millis(1000));

    canvas.fill(final_val);
    println!("Submitting canvas...");
    connection.submit_canvas(&canvas)?;

    println!("Exiting now");

    Ok(())
}

Support

Support for the Eruption SDK is available on GitHub

Dependencies

~10–19MB
~255K SLoC