Add command for setting TEC polarity direction #135

Merged
sb10q merged 2 commits from atse/thermostat:swap_command into master 2024-10-05 14:54:55 +08:00
2 changed files with 19 additions and 0 deletions
Showing only changes of commit 6224486662 - Show all commits

View File

@ -57,12 +57,14 @@ class Client:
'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}},
'polarity': 'normal',
{'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}}
'polarity': 'normal',
]
"""
return self._get_conf("pwm")

View File

@ -545,6 +545,7 @@ impl Channels {
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(),
polarity: PolarityJson(self.channel_state(channel).polarity.clone()),
}
}
@ -626,6 +627,21 @@ impl Serialize for CenterPointJson {
}
}
pub struct PolarityJson(Polarity);
// used in JSON encoding, not for config
impl Serialize for PolarityJson {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_str(match self.0 {
Polarity::Normal => "normal",
Polarity::Reversed => "reversed",
})
}
}
#[derive(Serialize)]
pub struct PwmSummaryField<T: Serialize> {
value: T,
@ -646,6 +662,7 @@ pub struct PwmSummary {
max_v: PwmSummaryField<ElectricPotential>,
max_i_pos: PwmSummaryField<ElectricCurrent>,
max_i_neg: PwmSummaryField<ElectricCurrent>,
polarity: PolarityJson,
}
#[derive(Serialize)]