feat: add get_client_key + cleanup
This commit is contained in:
		
							parent
							
								
									e4580e0e53
								
							
						
					
					
						commit
						6fa8846997
					
				@ -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,
 | 
				
			||||||
 | 
				
			|||||||
@ -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,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										31
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								src/main.rs
									
									
									
									
									
								
							@ -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();
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
 | 
				
			|||||||
@ -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,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user