Compare commits

...

2 Commits

Author SHA1 Message Date
9868ca4447 PyThermostat: Add dependencies to pyproject.toml 2025-01-15 23:00:11 +08:00
6aef143e3e PyThermostat: Remove tec terminology
The client controls the Thermostat as a whole and not just a TEC
attached to it; adjust variable names accordingly.
2025-01-06 18:04:12 +08:00
5 changed files with 27 additions and 23 deletions

View File

@ -1,13 +1,13 @@
import time
from pythermostat.client import Client
tec = Client() #(host="localhost", port=6667)
tec.set_param("b-p", 1, "t0", 20)
print(tec.get_output())
print(tec.get_pid())
print(tec.get_output())
print(tec.get_postfilter())
print(tec.get_b_parameter())
thermostat = Client() #(host="localhost", port=6667)
thermostat.set_param("b-p", 1, "t0", 20)
print(thermostat.get_output())
print(thermostat.get_pid())
print(thermostat.get_output())
print(thermostat.get_postfilter())
print(thermostat.get_b_parameter())
while True:
print(tec.get_report())
print(thermostat.get_report())
time.sleep(0.05)

View File

@ -9,6 +9,10 @@ authors = [{name = "M-Labs"}]
description = "Python utilities for the Sinara 8451 Thermostat"
urls.Repository = "https://git.m-labs.hk/M-Labs/thermostat"
license = {text = "GPLv3"}
dependencies = [
"numpy >= 1.26.4",
"matplotlib >= 3.9.2"
]
[project.gui-scripts]
thermostat_plot = "pythermostat.plot:main"

View File

@ -235,16 +235,16 @@ def main():
# logging.basicConfig(level=logging.DEBUG)
tec = Client()
thermostat = Client()
data = tec.get_report()
data = thermostat.get_report()
ch = data[channel]
tuner = PIDAutotune(target_temperature, output_step,
lookback, noiseband, ch['interval'])
while True:
data = tec.get_report()
data = thermostat.get_report()
ch = data[channel]
@ -255,11 +255,11 @@ def main():
tuner_out = tuner.output()
tec.set_param("output", channel, "i_set", tuner_out)
thermostat.set_param("output", channel, "i_set", tuner_out)
time.sleep(0.05)
tec.set_param("output", channel, "i_set", 0)
thermostat.set_param("output", channel, "i_set", 0)
if __name__ == "__main__":

View File

@ -151,11 +151,11 @@ class Client:
"""Set configuration parameters
Examples::
tec.set_param("output", 0, "max_v", 2.0)
tec.set_param("pid", 1, "output_max", 2.5)
tec.set_param("b-p", 0, "t0", 20.0)
tec.set_param("center", 0, "vref")
tec.set_param("postfilter", 1, 21)
thermostat.set_param("output", 0, "max_v", 2.0)
thermostat.set_param("pid", 1, "output_max", 2.5)
thermostat.set_param("b-p", 0, "t0", 20.0)
thermostat.set_param("center", 0, "vref")
thermostat.set_param("postfilter", 1, 21)
See the firmware's README.md for a full list.
"""

View File

@ -9,8 +9,8 @@ from pythermostat.client import Client
def main():
TIME_WINDOW = 300.0
tec = Client()
target_temperature = tec.get_pid()[0]['target']
thermostat = Client()
target_temperature = thermostat.get_pid()[0]['target']
print("Channel 0 target temperature: {:.3f}".format(target_temperature))
class Series:
@ -48,10 +48,10 @@ def main():
quit = False
def recv_data(tec):
def recv_data(thermostat):
global last_packet_time
while True:
data = tec.get_report()
data = thermostat.get_report()
ch0 = data[0]
series_lock.acquire()
try:
@ -67,7 +67,7 @@ def main():
break
time.sleep(0.05)
thread = Thread(target=recv_data, args=(tec,))
thread = Thread(target=recv_data, args=(thermostat,))
thread.start()
fig, ax = plt.subplots()