Commit Graph

15 Commits

Author SHA1 Message Date
872b7e02f3 Make interrupted connection handling more elegant
* Show a disconnected info box informing the user that the device was
  forcefully disconnected and requires user intervention.

* Don't print exception info to console on connection failure to avoid
  cluttering it up with programmer info.
2024-06-28 12:59:53 +08:00
c978a0dda6 thermostat_data_model -> thermostat 2024-06-28 12:59:53 +08:00
1d2497d734 Class names should be CamelCase 2024-06-28 12:59:53 +08:00
b353916188 Put comments in right place 2024-06-28 12:59:53 +08:00
726f1a3657 Restructure GUI Code, Improve and Fix Bugs
- Bugs fix:
1. Params Tree user input will not get overwritten
    by incoming report thermostat_data_model.
2. PID Autotune Sampling Period is now set according to Thermostat sampling interval
3. PID Autotune won't get stuck in Fail State
4. Various types disconnection related Bugs
5. Number of Samples stored in the plot cannot be set
6. Limit the max settable output current to be 2000mA

- Improvement:
1. Params Tree settings can be changed with external json
2. Use a Tab system to show a single channel of config instead of two
3. Expose PID Autotune lookback params
4. Icon is changed to Artiq logo

- Restructure:
1. Restructure the code to follow Model-View-Delegate Design Pattern
2024-06-28 12:59:53 +08:00
8445d3cf3d Finish GUI 2024-06-28 12:59:53 +08:00
c338fbde98 Remove unused as clause 2024-06-28 12:59:53 +08:00
0cc3d8e979 Add paramtree view, without updates
Signed-off-by: Egor Savkin <es@m-labs.hk>

Fix signal blocker argument -atse
2024-06-28 12:59:53 +08:00
1672c72a5f Fix bugs, grammar, text, and refactor into class 2024-06-28 12:59:53 +08:00
dd807cfddc 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-06-28 12:59:53 +08:00
7868d58569 Remove unused 'as' clause 2024-06-28 12:59:53 +08:00
aeb3c9324d 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.

* Finish Nix Flake description and make the GUI available for `nix run`
2024-06-28 12:59:53 +08:00
0244dec5be Try move from Qthreads to qasync
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-06-28 12:59:53 +08:00
bfb696c1ce Create client watcher, that would poll Thermostat for config
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-06-28 12:59:53 +08:00
3a72ddc899 Create basic GUI, that would connect and control thermostat's fan
Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-06-28 12:59:53 +08:00