Commit Graph

231 Commits

Author SHA1 Message Date
d7c0219456 Use graph emoji for plot settings 2024-02-14 11:31:41 +08:00
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