4961b2adb2
Use proper symbols in units, and add units
...
PID parameters are not actually dimensionless, and their units can be
deduced from the input unit and the output (actuator) unit.
2024-02-14 11:31:41 +08:00
abf5d5f2bd
Fix formatting
2024-02-14 11:31:41 +08:00
1b3f767d94
Might as well be a pass, doens't exec
2024-02-14 11:31:41 +08:00
137004e6b5
Loop through trees to set them up
2024-02-14 11:31:41 +08:00
5ba189d3ba
Remove unused as clause
2024-02-14 11:31:41 +08:00
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