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 29 additions and 24 deletions

View File

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

View File

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

View File

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

View File

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

View File

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