atse
e82437ca9f
Move global params into window
2024-02-14 11:31:41 +08:00
atse
3597fb4445
Fan group to be set based on hw_rev only
2024-02-14 11:31:41 +08:00
atse
953e314abb
Add optional channel selection for save/load
2024-02-14 11:31:41 +08:00
atse
f3e13cbb0b
List comprehension
2024-02-14 11:31:41 +08:00
atse
980812de67
Full name of the parameter tree
2024-02-14 11:31:41 +08:00
atse
cc60ceefa9
Unused import
2024-02-14 11:31:41 +08:00
atse
82c3576603
Don't use payload to get channel
...
Use parent param instead
2024-02-14 11:31:41 +08:00
atse
6f40adb19d
Max current plus-or-minus better informs
2024-02-14 11:31:41 +08:00
atse
02619f1338
Convinience to turn down fan on connect
2024-02-14 11:31:41 +08:00
atse
7e89bf5337
Better send_command
2024-02-14 11:31:41 +08:00
atse
98f2d70cf6
Match statement
2024-02-14 11:31:41 +08:00
atse
fde4e42069
Set status first in _on_connection_changed
2024-02-14 11:31:41 +08:00
atse
3c9541fea2
host
2024-02-14 11:31:41 +08:00
atse
c1ae69f218
Enable axis linking functionality
2024-02-14 11:31:41 +08:00
atse
7149fb6d85
Shield pending commands from cancellation
2024-02-14 11:31:41 +08:00
atse
39a78b92c4
Implement IPv4 settings dialog
2024-02-14 11:31:41 +08:00
atse
2a31cdb1af
Add ipv4 config
2024-02-14 11:31:41 +08:00
atse
169b89208d
Use direct calling in report mode
2024-02-14 11:31:41 +08:00
atse
967492642e
Add load and save configs
2024-02-14 11:31:41 +08:00
atse
bfec9efbec
Implement DFU mode
2024-02-14 11:31:41 +08:00
atse
9291160798
Change name of tec_client
2024-02-14 11:31:41 +08:00
atse
26fdc951bc
Move fan signal connection into menu setup
2024-02-14 11:31:41 +08:00
atse
0443778456
Split menu setup method per menu
2024-02-14 11:31:41 +08:00
atse
7a727cb011
Add about thermostat window
2024-02-14 11:31:41 +08:00
atse
d7c0219456
Use graph emoji for plot settings
2024-02-14 11:31:41 +08:00
atse
34ed3cf39a
Add tooltip to settings buttons
2024-02-14 11:31:41 +08:00
atse
1f0e74bf9f
Don't enabled thermostat settings before connect
2024-02-14 11:31:41 +08:00
atse
1ae44d6b82
Give proper names to settings buttons
2024-02-14 11:31:41 +08:00
atse
fa8f1ebf10
No :port
2024-02-14 11:31:41 +08:00
atse
0434b08abc
Don't translate ip
2024-02-14 11:31:41 +08:00
atse
8ff08c1539
Not just ip, can put domain name too, or "host"
2024-02-14 11:31:41 +08:00
atse
b32062d855
More elegant connection stopping
2024-02-14 11:31:41 +08:00
atse
d52aafd7f6
Add timeout to connect call
2024-02-14 11:31:41 +08:00
atse
efa814a0d3
Add load and save config menu items
2024-02-14 11:31:41 +08:00
atse
1be874f6a7
Add about thermostat menu item
...
Meant to display hardware rev stuff, does nothing right now
2024-02-14 11:31:41 +08:00
atse
9364c9b187
Add network settings menu option
...
Also does nothing for now
2024-02-14 11:31:41 +08:00
atse
a9c0106c46
Add DFU mode menu option
...
Does nothing for now
2024-02-14 11:31:41 +08:00
atse
2d341df23c
Use _on_connection_changed(False)
2024-02-14 11:31:41 +08:00
atse
8f31380d52
Reset button
2024-02-14 11:31:41 +08:00
atse
998d999b59
Save the entire hw_rev data
...
Not just fan_pwm_recommended
2024-02-14 11:31:41 +08:00
atse
ca7c64c115
Put connection details in connection button menu
2024-02-14 11:31:41 +08:00
atse
a1a94a9c99
Move host selection into menu too
2024-02-14 11:31:41 +08:00
atse
9fc38d4614
Move fan throttling warning to the right
2024-02-14 11:31:41 +08:00
atse
5732bc951f
Split the settings and plotting menus
2024-02-14 11:31:41 +08:00
atse
cbffb8d700
Crude relocation of port spinbox from .ui file
2024-02-14 11:31:41 +08:00
atse
cc1fddddda
Space out bottom bar properly
2024-02-14 11:31:41 +08:00
atse
9aac571187
Remove leftover lines
2024-02-14 11:31:41 +08:00
atse
a3d4bef68e
Crude removal of fan group from .ui file
2024-02-14 11:31:41 +08:00
atse
8e98b62cfb
Add line at PID temp
2024-02-14 11:31:41 +08:00
atse
64891231cd
Report mode functionality
2024-02-14 11:31:41 +08:00
atse
728bce38b6
Add crosshair for better read of values
2024-02-14 11:31:41 +08:00
atse
5c081b0547
Add samples box in menu
2024-02-14 11:31:41 +08:00
atse
001ce432e8
Add clear graphs context menu item
2024-02-14 11:31:41 +08:00
atse
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
atse
90df3ae784
Plus or minus symbol on swing
2024-02-14 11:31:41 +08:00
atse
ac51476d59
Add save to flash paramtree item
2024-02-14 11:31:41 +08:00
atse
4be6d419f6
Hide paramtree headers
2024-02-14 11:31:41 +08:00
atse
ae6f08247a
Add postfilter config
2024-02-14 11:31:41 +08:00
atse
863352d620
Add i_set
2024-02-14 11:31:41 +08:00
atse
9803a2d12b
Add pwm update
2024-02-14 11:31:41 +08:00
atse
8291b2052f
Add thermistor config & sync
...
Note: The formula is not actually Steinhart-Hart
2024-02-14 11:31:41 +08:00
atse
49c5120600
Connect up pid
2024-02-14 11:31:41 +08:00
atse
0e3a01d601
Connect up report update
2024-02-14 11:31:41 +08:00
atse
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
atse
abf5d5f2bd
Fix formatting
2024-02-14 11:31:41 +08:00
atse
1b3f767d94
Might as well be a pass, doens't exec
2024-02-14 11:31:41 +08:00
atse
137004e6b5
Loop through trees to set them up
2024-02-14 11:31:41 +08:00
atse
5ba189d3ba
Remove unused as clause
2024-02-14 11:31:41 +08:00
Egor Savkin
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
atse
8383abec8c
Add explanation of report rate
2024-02-14 11:31:41 +08:00
atse
b8d0cdabd3
Swap order connected first
2024-02-14 11:31:41 +08:00
atse
04a8f5ea56
Add tooltip to fan
2024-02-14 11:31:41 +08:00
atse
6c11a0536c
Arrange context menu items to be in order
2024-02-14 11:31:41 +08:00
atse
e5b0583a91
Disable auto fan box if adjusted while auto
2024-02-14 11:31:41 +08:00
atse
71076510a2
Steal fan group and port??? Somehow
2024-02-14 11:31:41 +08:00
atse
7749459701
Max the label
2024-02-14 11:31:41 +08:00
atse
463ee4105c
Context menu by QToolButton
2024-02-14 11:31:41 +08:00
atse
1d192f50c8
Remove redundant return
2024-02-14 11:31:41 +08:00
atse
30f6c4f829
Correct order once the tec_client disconnects to
...
stop watching the client first
2024-02-14 11:31:41 +08:00
atse
1226cca6e6
Only set connecting task to None once
2024-02-14 11:31:41 +08:00
atse
8520dae93b
Update and add docstrings to aioclient
2024-02-14 11:31:41 +08:00
atse
981c28ac27
Conslidate connect & disconnect actions
2024-02-14 11:31:41 +08:00
atse
5ced33594c
Change name of button slot
2024-02-14 11:31:41 +08:00
atse
b4a5e90f2e
Turn on_connection_changed to coroutine
...
Further compresses the connect
2024-02-14 11:31:41 +08:00
atse
82438ee4a5
Simplify stuff a bit
2024-02-14 11:31:41 +08:00
atse
e727f8b06b
Change statement order up a bit
2024-02-14 11:31:41 +08:00
atse
27ce311111
Init client_watcher once
2024-02-14 11:31:41 +08:00
atse
659d0d0835
Init client once
...
No none-ing
2024-02-14 11:31:41 +08:00
atse
fa60439e39
Put the connecting task in aioclient
2024-02-14 11:31:41 +08:00
atse
7e56f2d879
Rearrange bottom bar for new context menu
2024-02-14 11:31:41 +08:00
atse
917a2546cc
Remove is running loop variable
...
Just use Task.done()
2024-02-14 11:31:41 +08:00
atse
fd83ee23e1
Catch a more specific exception
2024-02-14 11:31:41 +08:00
atse
115c7eb800
Add stop connection button
...
Stuff to add to stop button
2024-02-14 11:31:41 +08:00
atse
7e1b64b72c
Set fan slider value minimum to 1, not 0
2024-02-14 11:31:41 +08:00
atse
fca4b061ee
Fix Slot decorators and types
2024-02-14 11:31:41 +08:00
atse
9f839f4bd9
Handle UI when fan_pwm is 0
2024-02-14 11:31:41 +08:00
atse
ac77c457ec
Fix fan warning wording
2024-02-14 11:31:41 +08:00
atse
54bb740a41
Only warn about fan pwm when not at full strength
2024-02-14 11:31:41 +08:00
atse
47dbe95045
Replace fan group highlighting with warning icon
...
Highlighting is too confusing
2024-02-14 11:31:41 +08:00
atse
8045d8c93d
Grammar
2024-02-14 11:31:41 +08:00
atse
3d801666fa
Update fan slider value immediately after fan auto
2024-02-14 11:31:41 +08:00
atse
5e105884d1
Use slider signal argument to set fan value
2024-02-14 11:31:41 +08:00
atse
1849711c62
Set client to none if failed to connect
...
Fixes connect button behaviour after accidental disconnect
2024-02-14 11:31:41 +08:00
atse
84018c3ebc
Start running only when task is running
2024-02-14 11:31:41 +08:00
atse
1fd49360d0
Lock connection details while connecting
...
Fix connect button behaviour
2024-02-14 11:31:41 +08:00
atse
ad5e36beab
Add unit to report spinbox
2024-02-14 11:31:41 +08:00
atse
a55589415d
Cancel task to stop watch
2024-02-14 11:31:41 +08:00
atse
c261ca2447
Disconnect client too on close
2024-02-14 11:31:41 +08:00
atse
c476ad9f7d
Close client_watcher on closeEvent not aboutToQuit
...
Mirrors
2024-02-14 11:31:41 +08:00
atse
d0d33f42da
Rearrange client_watcher to hold its own task
2024-02-14 11:31:41 +08:00
atse
608573c03c
Update fan too
2024-02-14 11:31:41 +08:00
atse
ec9ce6537c
More helpful tooltip
2024-02-14 11:31:41 +08:00
atse
6b4b576518
Fix hardware revision showing major.major
2024-02-14 11:31:41 +08:00
atse
142fe1043c
Remove unused 'as' clause
2024-02-14 11:31:41 +08:00
atse
3544f1ebdf
Get rid of global client
2024-02-14 11:31:41 +08:00
atse
e33f8430f2
Remove client_watcher global
2024-02-14 11:31:41 +08:00
atse
9cf33abe06
Gather client_watcher managment into connect
2024-02-14 11:31:41 +08:00
atse
0252c7b0e4
Invert logic, connect first
2024-02-14 11:31:41 +08:00
atse
c6ca2b3490
Make Ui_MainWindow a superclass of our main window
...
Gets rid of the global ui.
2024-02-14 11:31:41 +08:00
atse
299ef7dcc3
Get rid of app global
...
QApplication is a singleton, no need for global
2024-02-14 11:31:41 +08:00
atse
73887564a5
Change title
2024-02-14 11:31:41 +08:00
atse
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
atse
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
Egor Savkin
0ad77047f1
Try move from Qthreads to qasync
...
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-02-14 11:31:41 +08:00
Egor Savkin
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
Egor Savkin
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
topquark12
059dd0bbb6
add autotune
2024-02-14 11:31:41 +08:00
topquark12
be4383a447
WIP: adding autotune
2024-02-14 11:31:41 +08:00
topquark12
f31c3be335
fix docs, fix i_set, fix GUI param ranges
2024-02-14 11:31:41 +08:00
topquark12
e71453750c
fix whitespace error
2024-02-14 11:31:41 +08:00
topquark12
2796400d47
bi-dir sync, minimum working prototype
2024-02-14 11:31:41 +08:00
topquark12
593ad9a133
sync tree param from TEC
2024-02-14 11:31:41 +08:00
topquark12
563a32edf4
add sync from TEC
2024-02-14 11:31:41 +08:00
topquark12
b097067afc
add param tree, param tree inactive
2024-02-14 11:31:41 +08:00
topquark12
d841cd2559
add voltage monitoring
2024-02-14 11:31:41 +08:00
topquark12
d6a80c4f9b
fix typo
2024-02-14 11:31:41 +08:00
topquark12
4310a27085
refactor with classes
2024-02-14 11:31:41 +08:00
topquark12
61a8af468a
add graph legends
2024-02-14 11:31:40 +08:00
topquark12
fe28ac98e5
add more graphs in 2x2 grid
2024-02-14 11:31:40 +08:00
topquark12
6655581b6f
plot both channel temperatures
2024-02-14 11:31:40 +08:00
Egor Savkin
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
topquark12
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
topquark12
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
topquark12
96f52ace8b
pytec: simpler default graphs in plot
2021-01-25 13:51:50 +08:00
topquark12
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
Astro
7c55e34145
pytec: remove obsolete conversions
2020-12-18 19:37:25 +01:00
Astro
980d27ebfc
pytec: remove client-side interval calculation
2020-12-18 15:44:11 +01:00
Astro
b7e6cdbec2
pytec: measure interval
2020-12-16 22:14:21 +01:00
Astro
23d0c470e5
pytec: rename test.py to example.py
2020-12-09 01:08:34 +01:00
Astro
2a6f8ed874
pytec: use py3 dict methods
...
Fixes Gitea issue #14
2020-12-07 16:57:50 +01:00