Compare commits

..

1 Commits

Author SHA1 Message Date
6e7d2ebfbb PyThermostat: Clean plot 2025-01-13 17:28:16 +08:00
5 changed files with 24 additions and 29 deletions

View File

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

View File

@ -9,10 +9,6 @@ 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)
thermostat = Client() tec = Client()
data = thermostat.get_report() data = tec.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 = thermostat.get_report() data = tec.get_report()
ch = data[channel] ch = data[channel]
@ -255,11 +255,11 @@ def main():
tuner_out = tuner.output() tuner_out = tuner.output()
thermostat.set_param("output", channel, "i_set", tuner_out) tec.set_param("output", channel, "i_set", tuner_out)
time.sleep(0.05) time.sleep(0.05)
thermostat.set_param("output", channel, "i_set", 0) tec.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::
thermostat.set_param("output", 0, "max_v", 2.0) tec.set_param("output", 0, "max_v", 2.0)
thermostat.set_param("pid", 1, "output_max", 2.5) tec.set_param("pid", 1, "output_max", 2.5)
thermostat.set_param("b-p", 0, "t0", 20.0) tec.set_param("b-p", 0, "t0", 20.0)
thermostat.set_param("center", 0, "vref") tec.set_param("center", 0, "vref")
thermostat.set_param("postfilter", 1, 21) tec.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,16 +1,15 @@
import time import time
import numpy as np from threading import Thread, Lock
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
thermostat = Client() tec = Client()
target_temperature = thermostat.get_pid()[0]['target'] target_temperature = tec.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 +47,10 @@ def main():
quit = False quit = False
def recv_data(thermostat): def recv_data(tec):
global last_packet_time global last_packet_time
while True: while True:
data = thermostat.get_report() data = tec.get_report()
ch0 = data[0] ch0 = data[0]
series_lock.acquire() series_lock.acquire()
try: try:
@ -67,7 +66,7 @@ def main():
break break
time.sleep(0.05) time.sleep(0.05)
thread = Thread(target=recv_data, args=(thermostat,)) thread = Thread(target=recv_data, args=(tec,))
thread.start() thread.start()
fig, ax = plt.subplots() fig, ax = plt.subplots()