feat: add get_client_key + cleanup

This commit is contained in:
alban 2023-07-09 22:44:15 +02:00
parent e4580e0e53
commit 6fa8846997
5 changed files with 22 additions and 19 deletions

View File

@ -9,7 +9,6 @@ use crate::device::dummy::DummyDevice;
use crate::errors::LJResult; use crate::errors::LJResult;
use crate::point::Point; use crate::point::Point;
use serde::Serialize; use serde::Serialize;
use crate::redis_ctrl::Line;
/* /*
self.protocol_version, self.protocol_version,

View File

@ -15,7 +15,6 @@ use crate::device::{Device, Status, PlaybackState};
use crate::errors::{LJError, LJResult}; use crate::errors::{LJError, LJResult};
use crate::point::{Color, Point}; use crate::point::{Color, Point};
use chrono::Utc; use chrono::Utc;
use crate::redis_ctrl::Line;
pub struct HeliosDevice { pub struct HeliosDevice {
pub conf: HeliosConf, pub conf: HeliosConf,

View File

@ -13,7 +13,7 @@ mod worldstate;
use device::device_factory; use device::device_factory;
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc; use std::sync::Arc;
use redis_ctrl::{RedisCtrl, Order, Line}; use redis_ctrl::{RedisCtrl, Order};
use conf::Conf; use conf::Conf;
use errors::LJResult; use errors::LJResult;
use point::{Point, Color}; use point::{Point, Color};
@ -75,22 +75,15 @@ fn run_all() -> LJResult<()> {
rs.set_status(tracer.status())?; rs.set_status(tracer.status())?;
let order = rs.get_order(config.laser_id)?; let order = rs.get_order(config.laser_id)?;
// 0 : Draw Normal point list
// 2 : Draw BLACK point list
// 3 : Draw GRID point list
// 1 : Get the new EDH = reread redis key /EDH/lasernumber
// 4 : Resampler Change (longs and shorts lsteps)
// 5 : Client Key Change = reread redis key /clientkey
// 6 : Max Intensity Change = reread redis key /intensity
// 7 : kpps change = reread redis key /kpps
// 8 : color balance change = reread redis keys /red /green /blue
match order { match order {
Order::Draw | Order::Black | Order::Grid => { Order::Draw | Order::Black | Order::Grid => {
// 0 : Draw Normal point list
// 2 : Draw BLACK point list
// 3 : Draw GRID point list
world_state.draw_black = order == Order::Black; world_state.draw_black = order == Order::Black;
world_state.draw_grid = order == Order::Grid; world_state.draw_grid = order == Order::Grid;
let frame = get_next_frame( let frame = get_next_frame(
&config, &config,
&transformers, &transformers,
@ -101,19 +94,27 @@ fn run_all() -> LJResult<()> {
tracer.draw(frame, world_state.kpps)?; tracer.draw(frame, world_state.kpps)?;
} }
Order::Intensity => { Order::Intensity => {
// 6 : Max Intensity Change = reread redis key /intensity
world_state.intensity = rs.get_int("intensity")? world_state.intensity = rs.get_int("intensity")?
.try_into()?; .try_into()?;
} }
Order::Edh => { Order::Edh => {
// 1 : Get the new EDH = reread redis key /EDH/lasernumber
world_state.edh = rs.get_edh()?; world_state.edh = rs.get_edh()?;
} }
Order::Kpps => { Order::Kpps => {
// 7 : kpps change = reread redis key /kpps
world_state.kpps = rs.get_int("kpps")?; world_state.kpps = rs.get_int("kpps")?;
} }
Order::ClientKey => {
// Order::ClientKey => rs.client_key(), world_state.client_key = rs.get_client_key()?;
},
// Order::ColorBalance => {}, // Order::ColorBalance => {},
_ => { _ => {
// 4 : Resampler Change (longs and shorts lsteps)
// 5 : Client Key Change = reread redis key /clientkey
// 8 : color balance change = reread redis keys /red /green /blue
// 9 : poweroff LJ world_state.intensity = rs.get_int("intensity")?
info!("Order: {:?}", order); info!("Order: {:?}", order);
} }
} }
@ -151,12 +152,12 @@ fn get_next_frame(
// Handle the grid case // Handle the grid case
let mut line : Vec<Point>; let mut line: Vec<Point>;
if world_state.draw_grid { if world_state.draw_grid {
line = world_state.grid.clone(); line = world_state.grid.clone();
} else { } else {
let redis_line = rs.get_line(&format_key)?; let redis_line = rs.get_line(&format_key)?;
line = redis_line.into_iter() line = redis_line.into_iter()
.map(|tpl| tpl.into()) .map(|tpl| tpl.into())
.collect(); .collect();
}; };

View File

@ -118,6 +118,11 @@ impl RedisCtrl {
Ok(edh) Ok(edh)
} }
pub fn get_client_key( &mut self ) -> LJResult<u8> {
let key : u8 = self.connection.get("/clientkey")?;
Ok(key as u8)
}
pub fn get_int(&mut self, key: &str ) -> LJResult<u32> { pub fn get_int(&mut self, key: &str ) -> LJResult<u32> {
// Get new Int // Get new Int
let fmt = format!("/{key}/{}", self.laser_id); let fmt = format!("/{key}/{}", self.laser_id);

View File

@ -2,7 +2,6 @@ use crate::point::{Point, Color};
use nalgebra::base::{Matrix3, Matrix1x3}; use nalgebra::base::{Matrix3, Matrix1x3};
use crate::errors::{LJError, LJResult}; use crate::errors::{LJError, LJResult};
use log::debug; use log::debug;
use crate::redis_ctrl::Line;
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub struct EDH { pub struct EDH {
@ -41,7 +40,7 @@ impl EDH {
pub struct WorldState { pub struct WorldState {
pub edh: EDH, pub edh: EDH,
pub resampler: Vec<f32>, pub resampler: Vec<f32>,
pub client_key: String, pub client_key: u8,
pub intensity: u8, pub intensity: u8,
pub kpps: u32, pub kpps: u32,
pub color: Color, pub color: Color,