From c3b423b5f464d11ba0ea86a381f624c1c775b0a0 Mon Sep 17 00:00:00 2001 From: atse Date: Fri, 16 Aug 2024 12:38:51 +0800 Subject: [PATCH] PwmSummary: Don't show max PWM values Putting the maximum in PwmSummary has little use - the maximum never changes throughout the runtime of the firmware and can be replaced by documentation elsewhere. --- pytec/pytec/client.py | 18 +++++++++--------- src/channels.rs | 40 ++++++++++++++-------------------------- src/config.rs | 6 +++--- 3 files changed, 26 insertions(+), 38 deletions(-) diff --git a/pytec/pytec/client.py b/pytec/pytec/client.py index 5ac2095..0ac1b86 100644 --- a/pytec/pytec/client.py +++ b/pytec/pytec/client.py @@ -16,7 +16,7 @@ class Client: pwm_report = self.get_pwm() for pwm_channel in pwm_report: for limit in ["max_i_neg", "max_i_pos", "max_v"]: - if pwm_channel[limit]["value"] == 0.0: + if pwm_channel[limit] == 0.0: logging.warning("`{}` limit is set to zero on channel {}".format(limit, pwm_channel["channel"])) def _read_line(self): @@ -53,16 +53,16 @@ class Client: Example:: [{'channel': 0, 'center': 'vref', - 'i_set': {'max': 2.9802790335151985, 'value': -0.02002179650216762}, - 'max_i_neg': {'max': 3.0, 'value': 3.0}, - 'max_v': {'max': 5.988, 'value': 5.988}, - 'max_i_pos': {'max': 3.0, 'value': 3.0}}, + 'i_set': -0.02002179650216762, + 'max_i_neg': 2.0, + 'max_v': 3.988, + 'max_i_pos': 2.0, {'channel': 1, 'center': 'vref', - 'i_set': {'max': 2.9802790335151985, 'value': -0.02002179650216762}, - 'max_i_neg': {'max': 3.0, 'value': 3.0}, - 'max_v': {'max': 5.988, 'value': 5.988}, - 'max_i_pos': {'max': 3.0, 'value': 3.0}} + 'i_set': -0.02002179650216762, + 'max_i_neg': 2.0, + 'max_v': 3.988, + 'max_i_pos': 2.0} ] """ return self._get_conf("pwm") diff --git a/src/channels.rs b/src/channels.rs index de61567..6a34b59 100644 --- a/src/channels.rs +++ b/src/channels.rs @@ -379,20 +379,20 @@ impl Channels { } } - pub fn get_max_v(&mut self, channel: usize) -> (ElectricPotential, ElectricPotential) { + pub fn get_max_v(&mut self, channel: usize) -> ElectricPotential { let max = 4.0 * ElectricPotential::new::(3.3); let duty = self.get_pwm(channel, PwmPin::MaxV); - (duty * max, MAX_TEC_V) + duty * max } - pub fn get_max_i_pos(&mut self, channel: usize) -> (ElectricCurrent, ElectricCurrent) { + pub fn get_max_i_pos(&mut self, channel: usize) -> ElectricCurrent { let duty = self.get_pwm(channel, PwmPin::MaxIPos); - (duty * MAX_TEC_I_DUTY_TO_CURRENT_RATE, MAX_TEC_I) + duty * MAX_TEC_I_DUTY_TO_CURRENT_RATE } - pub fn get_max_i_neg(&mut self, channel: usize) -> (ElectricCurrent, ElectricCurrent) { + pub fn get_max_i_neg(&mut self, channel: usize) -> ElectricCurrent { let duty = self.get_pwm(channel, PwmPin::MaxINeg); - (duty * MAX_TEC_I_DUTY_TO_CURRENT_RATE, MAX_TEC_I) + duty * MAX_TEC_I_DUTY_TO_CURRENT_RATE } // Get current passing through TEC @@ -508,10 +508,10 @@ impl Channels { PwmSummary { channel, center: CenterPointJson(self.channel_state(channel).center.clone()), - i_set: (self.get_i(channel), MAX_TEC_I).into(), - max_v: self.get_max_v(channel).into(), - max_i_pos: self.get_max_i_pos(channel).into(), - max_i_neg: self.get_max_i_neg(channel).into(), + i_set: self.get_i(channel), + max_v: self.get_max_v(channel), + max_i_pos: self.get_max_i_pos(channel), + max_i_neg: self.get_max_i_neg(channel), } } @@ -593,26 +593,14 @@ impl Serialize for CenterPointJson { } } -#[derive(Serialize)] -pub struct PwmSummaryField { - value: T, - max: T, -} - -impl From<(T, T)> for PwmSummaryField { - fn from((value, max): (T, T)) -> Self { - PwmSummaryField { value, max } - } -} - #[derive(Serialize)] pub struct PwmSummary { channel: usize, center: CenterPointJson, - i_set: PwmSummaryField, - max_v: PwmSummaryField, - max_i_pos: PwmSummaryField, - max_i_neg: PwmSummaryField, + i_set: ElectricCurrent, + max_v: ElectricPotential, + max_i_pos: ElectricCurrent, + max_i_neg: ElectricCurrent, } #[derive(Serialize)] diff --git a/src/config.rs b/src/config.rs index 1649dde..2a9e25e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -80,9 +80,9 @@ struct PwmLimits { impl PwmLimits { pub fn new(channels: &mut Channels, channel: usize) -> Self { - let (max_v, _) = channels.get_max_v(channel); - let (max_i_pos, _) = channels.get_max_i_pos(channel); - let (max_i_neg, _) = channels.get_max_i_neg(channel); + let max_v = channels.get_max_v(channel); + let max_i_pos = channels.get_max_i_pos(channel); + let max_i_neg = channels.get_max_i_neg(channel); PwmLimits { max_v: max_v.get::(), max_i_pos: max_i_pos.get::(),