forked from M-Labs/thermostat
pytec: Complete client
Expose all available Thermostat commands to the pytec client.
This commit is contained in:
parent
9848c65de5
commit
8e3c38b5b3
@ -12,6 +12,10 @@ class Client:
|
||||
self._lines = [""]
|
||||
self._check_zero_limits()
|
||||
|
||||
def disconnect(self):
|
||||
self._socket.shutdown(socket.SHUT_RDWR)
|
||||
self._socket.close()
|
||||
|
||||
def _check_zero_limits(self):
|
||||
output_report = self.get_output()
|
||||
for output_channel in output_report:
|
||||
@ -110,6 +114,39 @@ class Client:
|
||||
"""
|
||||
return self._get_conf("postfilter")
|
||||
|
||||
def get_report(self):
|
||||
"""Obtain one-time report on measurement values
|
||||
|
||||
Example of yielded data::
|
||||
{'channel': 0,
|
||||
'time': 2302524,
|
||||
'interval': 0.12
|
||||
'adc': 0.6199188965423515,
|
||||
'sens': 6138.519310282602,
|
||||
'temperature': 36.87032392655527,
|
||||
'pid_engaged': True,
|
||||
'i_set': 2.0635816680889123,
|
||||
'dac_value': 2.527790834044456,
|
||||
'dac_feedback': 2.523,
|
||||
'i_tec': 2.331,
|
||||
'tec_i': 2.0925,
|
||||
'tec_u_meas': 2.5340000000000003,
|
||||
'pid_output': 2.067581958092247}
|
||||
"""
|
||||
return self._get_conf("report")
|
||||
|
||||
def get_ipv4(self):
|
||||
"""Get the IPv4 settings of the Thermostat"""
|
||||
return self._command("ipv4")
|
||||
|
||||
def get_fan(self):
|
||||
"""Get Thermostat current fan settings"""
|
||||
return self._command("fan")
|
||||
|
||||
def get_hwrev(self):
|
||||
"""Get Thermostat hardware revision"""
|
||||
return self._command("hwrev")
|
||||
|
||||
def report_mode(self):
|
||||
"""Start reporting measurement values
|
||||
|
||||
@ -163,10 +200,30 @@ class Client:
|
||||
self.set_param("pid", channel, "target", value=target)
|
||||
self.set_param("output", channel, "pid")
|
||||
|
||||
def save_config(self):
|
||||
def save_config(self, ch=""):
|
||||
"""Save current configuration to EEPROM"""
|
||||
self._command("save")
|
||||
self._command("save", ch)
|
||||
|
||||
def load_config(self):
|
||||
def load_config(self, ch=""):
|
||||
"""Load current configuration from EEPROM"""
|
||||
self._command("load")
|
||||
self._command("load", ch)
|
||||
|
||||
def reset(self):
|
||||
"""Reset the device"""
|
||||
self._command("reset")
|
||||
|
||||
def enter_dfu_mode(self):
|
||||
"""Reset device and enters USB device firmware update (DFU) mode"""
|
||||
self._command("dfu")
|
||||
|
||||
def set_ipv4(self, address, netmask, gateway=""):
|
||||
"""Configure IPv4 address, netmask length, and optional default gateway"""
|
||||
self._command("ipv4", f"{address}/{netmask}", gateway)
|
||||
|
||||
def set_fan(self, power):
|
||||
"""Set fan power with values from 1 to 100"""
|
||||
self._command("fan", power)
|
||||
|
||||
def set_fcurve(self, a="", b="", c=""):
|
||||
"""Set fan controller curve coefficients"""
|
||||
self._command("fcurve", a, b, c)
|
||||
|
Loading…
Reference in New Issue
Block a user