Commit Graph

96 Commits

Author SHA1 Message Date
d0d33f42da Rearrange client_watcher to hold its own task 2024-02-14 11:31:41 +08:00
608573c03c Update fan too 2024-02-14 11:31:41 +08:00
ec9ce6537c More helpful tooltip 2024-02-14 11:31:41 +08:00
6b4b576518 Fix hardware revision showing major.major 2024-02-14 11:31:41 +08:00
142fe1043c Remove unused 'as' clause 2024-02-14 11:31:41 +08:00
3544f1ebdf Get rid of global client 2024-02-14 11:31:41 +08:00
e33f8430f2 Remove client_watcher global 2024-02-14 11:31:41 +08:00
9cf33abe06 Gather client_watcher managment into connect 2024-02-14 11:31:41 +08:00
0252c7b0e4 Invert logic, connect first 2024-02-14 11:31:41 +08:00
c6ca2b3490 Make Ui_MainWindow a superclass of our main window
Gets rid of the global ui.
2024-02-14 11:31:41 +08:00
299ef7dcc3 Get rid of app global
QApplication is a singleton, no need for global
2024-02-14 11:31:41 +08:00
73887564a5 Change title 2024-02-14 11:31:41 +08:00
f469d8fee3 Stop polling drift
Just waiting for the update_s doesn't take into account the time to
execute update_params, and causes time drift.
2024-02-14 11:31:41 +08:00
f546a3c61b Finish moving over to qasync
Also:
-Add aioclient

The old client is synchronous and blocking, and the only way to achieve
true asynchronous IO is to create a new client that interfaces with
asyncio.

-Make the GUI `nix run`-able
2024-02-14 11:31:41 +08:00
0ad77047f1 Try move from Qthreads to qasync
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-02-14 11:31:41 +08:00
3de6f233f9 Create client watcher, that would poll Thermostat for config
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-02-14 11:31:41 +08:00
069280feb6 Create basic GUI, that would connect and control thermostat's fan
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-02-14 11:31:41 +08:00
059dd0bbb6 add autotune 2024-02-14 11:31:41 +08:00
be4383a447 WIP: adding autotune 2024-02-14 11:31:41 +08:00
f31c3be335 fix docs, fix i_set, fix GUI param ranges 2024-02-14 11:31:41 +08:00
e71453750c fix whitespace error 2024-02-14 11:31:41 +08:00
2796400d47 bi-dir sync, minimum working prototype 2024-02-14 11:31:41 +08:00
593ad9a133 sync tree param from TEC 2024-02-14 11:31:41 +08:00
563a32edf4 add sync from TEC 2024-02-14 11:31:41 +08:00
b097067afc add param tree, param tree inactive 2024-02-14 11:31:41 +08:00
d841cd2559 add voltage monitoring 2024-02-14 11:31:41 +08:00
d6a80c4f9b fix typo 2024-02-14 11:31:41 +08:00
4310a27085 refactor with classes 2024-02-14 11:31:41 +08:00
61a8af468a add graph legends 2024-02-14 11:31:40 +08:00
fe28ac98e5 add more graphs in 2x2 grid 2024-02-14 11:31:40 +08:00
6655581b6f plot both channel temperatures 2024-02-14 11:31:40 +08:00
e3e3237d2f Emit warning when current/voltage limits are near zero
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-03-23 16:58:05 +08:00
26ad2f0119 rewrite PID
Rewrite of PID according to https://hackmd.io/IACbwcOTSt6Adj3_F9bKuw PID implementation.

To migrate:
- TEC+/- pin polarity has to be reversed.
- Some saved settings might be wiped upon flashing of new firmware, back up settings before upgrade
- Min / Max integral parameters no longer exist
- kp, ki, kd will likely need to be retuned

The software has been tested on hardware with good temperature control stability.

Reviewed-on: M-Labs/thermostat#68
Co-authored-by: topquark12 <aw@m-labs.hk>
Co-committed-by: topquark12 <aw@m-labs.hk>
2022-02-24 20:16:47 +08:00
a5d8661b10 main: fix handling of incomplete data received (#55)
Reviewed-on: M-Labs/thermostat#55
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-29 16:18:07 +08:00
96f52ace8b pytec: simpler default graphs in plot 2021-01-25 13:51:50 +08:00
73dd6d9154 add PID autotune code
Co-Authored-By: topquark12 <aw@m-labs.hk>
Co-Committed-By: topquark12 <aw@m-labs.hk>
2021-01-06 11:02:52 +08:00
7c55e34145 pytec: remove obsolete conversions 2020-12-18 19:37:25 +01:00
980d27ebfc pytec: remove client-side interval calculation 2020-12-18 15:44:11 +01:00
b7e6cdbec2 pytec: measure interval 2020-12-16 22:14:21 +01:00
23d0c470e5 pytec: rename test.py to example.py 2020-12-09 01:08:34 +01:00
2a6f8ed874 pytec: use py3 dict methods
Fixes Gitea issue #14
2020-12-07 16:57:50 +01:00
5acebbef9f pytec: doc set_param 2020-10-01 00:35:16 +02:00
1b4a030e7e pytec: more methods, doc 2020-10-01 00:21:43 +02:00
bfdb64ffd6 pytec: add configuration getters 2020-09-30 23:13:11 +02:00
4b75c6147d pytec plot: update legend, rm debug add pid_output 2020-09-30 19:13:50 +02:00
97490e5e1b pytec: init 2020-09-29 02:52:46 +02:00