Commit Graph

447 Commits

Author SHA1 Message Date
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
6de0d41c23 Update nix repos
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-02-14 11:31:41 +08:00
7c1820872b update docs 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
8e45e98ee0 fix pyqtgraph on nixos 2024-02-14 11:31:40 +08:00
446c3ea1d6 add pyqtgraph 2024-02-14 11:31:40 +08:00
ae3d8b51d4 Disable feedback current readout on flawed HW Revs
Thermostats v2.2 and below have a noisy and offset feedback current
`tec_i` caused by missing hardware on 2 MAX1968 TEC driver pins:

1. A missing RC filter on the ITEC pin that would have isolated CPU
sampling pulses from the signal; and
2. Some missing buffering on the VREF pin that would have avoided
loading the VREF signal, preventing voltage drops from the nominal 1.5V.

Since the resulting signal `tec_i` derived from these two signals can
have an error of around +/- 100mA, and readback may affect the stability
performance of the Thermostat, disable current readback entirely on
affected hardware revisions for now.

See https://github.com/sinara-hw/Thermostat/issues/117 and
https://github.com/sinara-hw/Thermostat/issues/120.

On hardware revisions v3.x and above, this would be fixed.
2024-01-31 12:12:22 +08:00
17edae44fb README: Proofread fan control documentation 2024-01-30 12:43:19 +08:00
03b4561142 Refactor current_abs_max_tec_i to use uom 2024-01-30 11:41:52 +08:00
631a10938d README: Remove VREF 2024-01-26 17:00:27 +08:00
6cd6a6a2c2 Fix warning '...not permit being left uninit..d'
Put SocketState initialisation logic in new. This avoids using an unsafe
and unnerving MaybeUninit::uninit().assume_init() to initialise an
array, which the compiler yells at since it causes undefined behavior.
2024-01-17 15:29:56 +08:00
b93e2fbb7b Update rust edition 2024-01-17 15:29:56 +08:00