Commit Graph

257 Commits

Author SHA1 Message Date
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
Astro 5acebbef9f pytec: doc set_param 2020-10-01 00:35:16 +02:00
Astro 1b4a030e7e pytec: more methods, doc 2020-10-01 00:21:43 +02:00
Astro bfdb64ffd6 pytec: add configuration getters 2020-09-30 23:13:11 +02:00
Astro 4b75c6147d pytec plot: update legend, rm debug add pid_output 2020-09-30 19:13:50 +02:00
Astro 97490e5e1b pytec: init 2020-09-29 02:52:46 +02:00