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
6 changed files with 27 additions and 25 deletions

2
.gitignore vendored
View File

@ -3,5 +3,3 @@ result
*.bin *.bin
__pycache__/ __pycache__/
*.egg-info/
build/

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

@ -9,8 +9,8 @@ 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:
@ -48,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:
@ -67,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()