Compare commits

..

6 Commits

Author SHA1 Message Date
177f08e461 fancy example 2023-06-08 22:23:01 +02:00
d9b96f6090 fix draw loop 2023-06-08 21:06:33 +02:00
alban
560b3be71b fix: rename settings.toml 2023-06-08 20:22:36 +02:00
alban
6e97b1c441 fix: rename settings template 2023-06-08 20:21:51 +02:00
alban
50e9b43b71 Merge branch 'dev/marc' into feature/dac-trait 2023-06-08 20:20:42 +02:00
alban
4b135ce283 fix: rework device 2023-06-08 20:18:28 +02:00
6 changed files with 35 additions and 17 deletions

2
.gitignore vendored
View File

@ -1,6 +1,6 @@
# Configuration file # Configuration file
Settings.* settings.*
# Generated by Cargo # Generated by Cargo
# will have compiled files and executables # will have compiled files and executables

View File

@ -5,19 +5,36 @@ use redis::{
Connection, Connection,
}; };
use std::time::Instant;
fn do_something() -> redis::RedisResult<()> { fn do_something() -> redis::RedisResult<()> {
let client = Client::open("redis://127.0.0.1/")?; let client = Client::open("redis://127.0.0.1/")?;
let mut con: Connection = client.get_connection()?; let mut con: Connection = client.get_connection()?;
let start = Instant::now();
/* do something here */
//let val : String = con.get("/pl/0/0")?;
let _ = con.set("/pl/0/0", "[(150.0, 230.0, 65280), \
(170.0, 170.0, 65280), \
(230.0, 170.0, 65280), \
(210.0, 230.0, 65280), \
(150.0, 230.0, 65280)]")?;
Ok(()) loop {
let elapsed = start.elapsed();
let time = 60.0 * elapsed.as_millis() as f32 / 1000.0;
let mut v : Vec<(f32,f32,u32)> = vec![];
for i in 0..128 {
let a = (time + i as f32) / 128.0 * std::f32::consts::PI * 2.0;
let r = 1200.0 + (a*5.0).cos() * (500.0 * (time/5.0).cos());
let x = a.cos() * r;
let y = a.sin() * r;
let col = if i % 8 < 4 {
0x000000ff
} else {
0x00ff0000
};
v.push((x,y,col));
}
// println!("{:?}", v);
let _ = con.set("/pl/0/0", format!("{:?}", v))?;
}
// Ok(())
} }
fn main() { fn main() {

View File

@ -29,7 +29,7 @@ pub struct Status {
pub trait Device { pub trait Device {
fn status( &self ) -> Status; fn status( &self ) -> Status;
fn draw( fn draw(
&self, &mut self,
frame: Vec<Point>, frame: Vec<Point>,
speed: u32, speed: u32,
) -> LJResult<()> ; ) -> LJResult<()> ;

View File

@ -42,14 +42,16 @@ impl Device for HeliosDevice {
} }
} }
fn draw(&self, fn draw(&mut self,
line: Vec<Point>, line: Vec<Point>,
speed: u32, speed: u32,
) -> LJResult<()> { ) -> LJResult<()> {
while let Ok(DeviceStatus::NotReady) = self.dac.status() {} while let Ok(DeviceStatus::NotReady) = self.dac.status() {
}
let points: Vec<helios_dac::Point> = line.into_iter().map(|p| p.into()).collect(); let points: Vec<helios_dac::Point> = line.into_iter().map(|p| p.into()).collect();
let _frame = Frame::new(speed, points); let frame = Frame::new(speed, points);
self.dac.write_frame(frame.clone())?;
Ok(()) Ok(())
} }

View File

@ -72,9 +72,8 @@ fn run_all() -> LJResult<()> {
let frame = get_next_frame(&config, &transformers, let frame = get_next_frame(&config, &transformers,
&mut rs, order == Order::Black)?; &mut rs, order == Order::Black)?;
// For now, draw all the time // For now, draw all the time
tracer.draw(frame, 1000)?; tracer.draw(frame, 10_000)?;
} }
info!("Exiting, stoping device."); info!("Exiting, stoping device.");
@ -109,6 +108,6 @@ fn get_next_frame(
line = transformer.apply(&line); line = transformer.apply(&line);
} }
info!("Line: {:?}", line); //info!("Line: {:?}", line);
Ok(line) Ok(line)
} }