forked from M-Labs/kirdy
cmd: Add cmds to config pd_mon params
This commit is contained in:
parent
6ee45b4814
commit
c4135f6ac3
@ -168,11 +168,11 @@ impl LdDrive{
|
||||
}
|
||||
|
||||
pub fn set_pd_responsitivity(&mut self, responsitivity: pd_responsitivity::ResponsitivityUnit){
|
||||
self.settings.pd_responsitivity.responsitivity = responsitivity;
|
||||
self.settings.pd_responsitivity.set(responsitivity);
|
||||
}
|
||||
|
||||
pub fn set_pd_dark_current(&mut self, i_dark: ElectricCurrent){
|
||||
self.settings.pd_responsitivity.i_dark = i_dark;
|
||||
self.settings.pd_responsitivity.set_i_dark(i_dark);
|
||||
}
|
||||
|
||||
pub fn set_ld_power_limit(&mut self, pwr_limit: Power){
|
||||
|
@ -14,8 +14,8 @@ pub type ResponsitivityUnit = Quantity<ISQ<N2, N1, P3, P1, Z0, Z0, Z0>, SI<f64>,
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Tree)]
|
||||
pub struct Parameters {
|
||||
pub responsitivity: ResponsitivityUnit,
|
||||
pub i_dark: ElectricCurrent,
|
||||
responsitivity: ResponsitivityUnit,
|
||||
i_dark: ElectricCurrent,
|
||||
}
|
||||
|
||||
impl Parameters {
|
||||
@ -28,6 +28,14 @@ impl Parameters {
|
||||
let ld_i = pwr * self.responsitivity + self.i_dark;
|
||||
ld_i
|
||||
}
|
||||
|
||||
pub fn set(&mut self, responsitivity: ResponsitivityUnit) {
|
||||
self.responsitivity = responsitivity;
|
||||
}
|
||||
|
||||
pub fn set_i_dark(&mut self, i_dark: ElectricCurrent) {
|
||||
self.i_dark = i_dark;
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Parameters {
|
||||
|
@ -1,14 +1,16 @@
|
||||
use core::{default, fmt::Debug};
|
||||
use core::{fmt::Debug, marker::PhantomData};
|
||||
use miniconf::{JsonCoreSlash, Tree};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uom::si::{
|
||||
electric_current::{ampere, milliampere, ElectricCurrent},
|
||||
electric_current::{ampere, microampere, milliampere, ElectricCurrent},
|
||||
electric_potential::{volt, ElectricPotential},
|
||||
electrical_resistance::{ElectricalResistance, ohm},
|
||||
f64::ThermodynamicTemperature, thermodynamic_temperature::degree_celsius
|
||||
electrical_resistance::{ohm, ElectricalResistance},
|
||||
power::{milliwatt, Power},
|
||||
thermodynamic_temperature::{degree_celsius, ThermodynamicTemperature}
|
||||
};
|
||||
use crate::{laser_diode::laser_diode::{
|
||||
LdDrive, StatusReport as LdStatusReport
|
||||
use crate::{laser_diode::{laser_diode::{
|
||||
LdDrive, StatusReport as LdStatusReport},
|
||||
pd_responsitivity::ResponsitivityUnit
|
||||
},
|
||||
net::net,
|
||||
thermostat::thermostat::StatusReport as TecStatusReport
|
||||
@ -194,10 +196,24 @@ pub fn execute_cmd(buffer: &mut [u8], buffer_size: usize, mut laser: LdDrive, mu
|
||||
}
|
||||
}
|
||||
Some(LdCmdEnum::SetPdResponsitivity) => {
|
||||
info!("Not supported Yet")
|
||||
match cmd.json.data_f64 {
|
||||
Some(val) => {
|
||||
laser.set_pd_responsitivity(ResponsitivityUnit {dimension: PhantomData, units: PhantomData, value: val})
|
||||
}
|
||||
None => {
|
||||
info!("Wrong Data type is received")
|
||||
}
|
||||
}
|
||||
}
|
||||
Some(LdCmdEnum::SetPdDarkCurrent) => {
|
||||
info!("Not supported Yet")
|
||||
match cmd.json.data_f64 {
|
||||
Some(val) => {
|
||||
laser.set_pd_dark_current(ElectricCurrent::new::<microampere>(val))
|
||||
}
|
||||
None => {
|
||||
info!("Wrong Data type is received")
|
||||
}
|
||||
}
|
||||
}
|
||||
Some(LdCmdEnum::SetPdILimit) => {
|
||||
match cmd.json.data_f64 {
|
||||
@ -210,7 +226,14 @@ pub fn execute_cmd(buffer: &mut [u8], buffer_size: usize, mut laser: LdDrive, mu
|
||||
}
|
||||
}
|
||||
Some(LdCmdEnum::SetLdPwrLimit) => {
|
||||
info!("Not supported Yet")
|
||||
match cmd.json.data_f64 {
|
||||
Some(val) => {
|
||||
laser.set_ld_power_limit(Power::new::<milliwatt>(val))
|
||||
}
|
||||
None => {
|
||||
info!("Wrong Data type is received")
|
||||
}
|
||||
}
|
||||
}
|
||||
Some(LdCmdEnum::ClearAlarmStatus) => {
|
||||
laser.pd_mon_clear_alarm()
|
||||
|
Loading…
Reference in New Issue
Block a user