29 lines
630 B
Rust
29 lines
630 B
Rust
pub mod util;
|
|
|
|
use util::lights::*;
|
|
use std::sync::{Arc, RwLock};
|
|
use std::thread;
|
|
use rs_ws281x::RawColor;
|
|
|
|
pub const LED_SIZE: usize = 450;
|
|
|
|
fn main() {
|
|
let p: RawColor = [0, 0, 0, 0];
|
|
let lock = Arc::new(RwLock::new([p; LED_SIZE]));
|
|
let lock_c = Arc::clone(&lock);
|
|
thread::spawn(move || loop {
|
|
let lights = lock_c.read().unwrap();
|
|
run_lights(&lights);
|
|
});
|
|
let mut x: u8 = 0;
|
|
loop {
|
|
if x == 255 {
|
|
x = 0;
|
|
}
|
|
let color: RawColor = [x, x, x, 255];
|
|
let mut lights = lock.write().unwrap();
|
|
lights[0] = color;
|
|
x += 1;
|
|
}
|
|
}
|