34ed3cf39a
Add tooltip to settings buttons
2024-02-14 11:31:41 +08:00
1f0e74bf9f
Don't enabled thermostat settings before connect
2024-02-14 11:31:41 +08:00
1ae44d6b82
Give proper names to settings buttons
2024-02-14 11:31:41 +08:00
fa8f1ebf10
No :port
2024-02-14 11:31:41 +08:00
0434b08abc
Don't translate ip
2024-02-14 11:31:41 +08:00
8ff08c1539
Not just ip, can put domain name too, or "host"
2024-02-14 11:31:41 +08:00
b32062d855
More elegant connection stopping
2024-02-14 11:31:41 +08:00
d52aafd7f6
Add timeout to connect call
2024-02-14 11:31:41 +08:00
efa814a0d3
Add load and save config menu items
2024-02-14 11:31:41 +08:00
1be874f6a7
Add about thermostat menu item
...
Meant to display hardware rev stuff, does nothing right now
2024-02-14 11:31:41 +08:00
9364c9b187
Add network settings menu option
...
Also does nothing for now
2024-02-14 11:31:41 +08:00
a9c0106c46
Add DFU mode menu option
...
Does nothing for now
2024-02-14 11:31:41 +08:00
2d341df23c
Use _on_connection_changed(False)
2024-02-14 11:31:41 +08:00
8f31380d52
Reset button
2024-02-14 11:31:41 +08:00
998d999b59
Save the entire hw_rev data
...
Not just fan_pwm_recommended
2024-02-14 11:31:41 +08:00
ca7c64c115
Put connection details in connection button menu
2024-02-14 11:31:41 +08:00
a1a94a9c99
Move host selection into menu too
2024-02-14 11:31:41 +08:00
9fc38d4614
Move fan throttling warning to the right
2024-02-14 11:31:41 +08:00
5732bc951f
Split the settings and plotting menus
2024-02-14 11:31:41 +08:00
cbffb8d700
Crude relocation of port spinbox from .ui file
2024-02-14 11:31:41 +08:00
cc1fddddda
Space out bottom bar properly
2024-02-14 11:31:41 +08:00
9aac571187
Remove leftover lines
2024-02-14 11:31:41 +08:00
a3d4bef68e
Crude removal of fan group from .ui file
2024-02-14 11:31:41 +08:00
8e98b62cfb
Add line at PID temp
2024-02-14 11:31:41 +08:00
64891231cd
Report mode functionality
2024-02-14 11:31:41 +08:00
728bce38b6
Add crosshair for better read of values
2024-02-14 11:31:41 +08:00
5c081b0547
Add samples box in menu
2024-02-14 11:31:41 +08:00
001ce432e8
Add clear graphs context menu item
2024-02-14 11:31:41 +08:00
fdf4c4f0d6
Plot temperature and current graphs
...
- Have units
- Samples are limited
- pglive is used for better live graphs
-- Also fixes bug with constantly updating normal pyqtgraphs where it
will bug out if right-clicked on and context menu is brought up
--Since pglive requires pyqtgraph == 0.13.3, upgrade pyqtgraph to that
too.
2024-02-14 11:31:41 +08:00
90df3ae784
Plus or minus symbol on swing
2024-02-14 11:31:41 +08:00
ac51476d59
Add save to flash paramtree item
2024-02-14 11:31:41 +08:00
4be6d419f6
Hide paramtree headers
2024-02-14 11:31:41 +08:00
ae6f08247a
Add postfilter config
2024-02-14 11:31:41 +08:00
863352d620
Add i_set
2024-02-14 11:31:41 +08:00
9803a2d12b
Add pwm update
2024-02-14 11:31:41 +08:00
8291b2052f
Add thermistor config & sync
...
Note: The formula is not actually Steinhart-Hart
2024-02-14 11:31:41 +08:00
49c5120600
Connect up pid
2024-02-14 11:31:41 +08:00
0e3a01d601
Connect up report update
2024-02-14 11:31:41 +08:00
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