Commit Graph

237 Commits

Author SHA1 Message Date
928db9963d Add paramtree view, without updates
Signed-off-by: Egor Savkin <es@m-labs.hk>

Fix signal blocker argument -atse
2024-02-14 11:31:41 +08:00
8383abec8c Add explanation of report rate 2024-02-14 11:31:41 +08:00
b8d0cdabd3 Swap order connected first 2024-02-14 11:31:41 +08:00
04a8f5ea56 Add tooltip to fan 2024-02-14 11:31:41 +08:00
6c11a0536c Arrange context menu items to be in order 2024-02-14 11:31:41 +08:00
e5b0583a91 Disable auto fan box if adjusted while auto 2024-02-14 11:31:41 +08:00
71076510a2 Steal fan group and port??? Somehow 2024-02-14 11:31:41 +08:00
7749459701 Max the label 2024-02-14 11:31:41 +08:00
463ee4105c Context menu by QToolButton 2024-02-14 11:31:41 +08:00
1d192f50c8 Remove redundant return 2024-02-14 11:31:41 +08:00
30f6c4f829 Correct order once the tec_client disconnects to
stop watching the client first
2024-02-14 11:31:41 +08:00
1226cca6e6 Only set connecting task to None once 2024-02-14 11:31:41 +08:00
8520dae93b Update and add docstrings to aioclient 2024-02-14 11:31:41 +08:00
981c28ac27 Conslidate connect & disconnect actions 2024-02-14 11:31:41 +08:00
5ced33594c Change name of button slot 2024-02-14 11:31:41 +08:00
b4a5e90f2e Turn on_connection_changed to coroutine
Further compresses the connect
2024-02-14 11:31:41 +08:00
82438ee4a5 Simplify stuff a bit 2024-02-14 11:31:41 +08:00
e727f8b06b Change statement order up a bit 2024-02-14 11:31:41 +08:00
27ce311111 Init client_watcher once 2024-02-14 11:31:41 +08:00
659d0d0835 Init client once
No none-ing
2024-02-14 11:31:41 +08:00
fa60439e39 Put the connecting task in aioclient 2024-02-14 11:31:41 +08:00
7e56f2d879 Rearrange bottom bar for new context menu 2024-02-14 11:31:41 +08:00
917a2546cc Remove is running loop variable
Just use Task.done()
2024-02-14 11:31:41 +08:00
fd83ee23e1 Catch a more specific exception 2024-02-14 11:31:41 +08:00
115c7eb800 Add stop connection button
Stuff to add to stop button
2024-02-14 11:31:41 +08:00
7e1b64b72c Set fan slider value minimum to 1, not 0 2024-02-14 11:31:41 +08:00
fca4b061ee Fix Slot decorators and types 2024-02-14 11:31:41 +08:00
9f839f4bd9 Handle UI when fan_pwm is 0 2024-02-14 11:31:41 +08:00
ac77c457ec Fix fan warning wording 2024-02-14 11:31:41 +08:00
54bb740a41 Only warn about fan pwm when not at full strength 2024-02-14 11:31:41 +08:00
47dbe95045 Replace fan group highlighting with warning icon
Highlighting is too confusing
2024-02-14 11:31:41 +08:00
8045d8c93d Grammar 2024-02-14 11:31:41 +08:00
3d801666fa Update fan slider value immediately after fan auto 2024-02-14 11:31:41 +08:00
5e105884d1 Use slider signal argument to set fan value 2024-02-14 11:31:41 +08:00
1849711c62 Set client to none if failed to connect
Fixes connect button behaviour after accidental disconnect
2024-02-14 11:31:41 +08:00
84018c3ebc Start running only when task is running 2024-02-14 11:31:41 +08:00
1fd49360d0 Lock connection details while connecting
Fix connect button behaviour
2024-02-14 11:31:41 +08:00
ad5e36beab Add unit to report spinbox 2024-02-14 11:31:41 +08:00
a55589415d Cancel task to stop watch 2024-02-14 11:31:41 +08:00
c261ca2447 Disconnect client too on close 2024-02-14 11:31:41 +08:00
c476ad9f7d Close client_watcher on closeEvent not aboutToQuit
Mirrors
2024-02-14 11:31:41 +08:00
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