Commit Graph

412 Commits

Author SHA1 Message Date
54bedc3a83 Timeout Error things 2024-07-05 17:31:55 +08:00
c1fdcda621 Integrate WrappedClient into Thermostat model 2024-07-05 17:21:39 +08:00
37c982b786 Config -> Settings part 2 2024-07-05 11:58:36 +08:00
98db321c2c Should not stop cancelling read if timeout'd 2024-07-04 17:30:49 +08:00
d29fae0476 Remove exception too general 2024-07-04 17:30:28 +08:00
0791f0df4b fixup! Try fix force-disconnections when autotuning 2024-07-04 17:28:23 +08:00
e8930a4b7e Use connection lost nomenclature 2024-07-04 11:51:57 +08:00
760c1461e9 Formatting 2024-07-04 11:51:57 +08:00
8b1e62962f Format JSON 2024-07-03 13:40:50 +08:00
9617d64c56 grammar 2024-06-28 13:18:41 +08:00
4b15bff0e5 PID Auto Tune -> PID Autotune 2024-06-28 12:59:54 +08:00
50e88b9371 Stop crushing spinbox in ctrl_panel
It might work on some themes, but on the default Qt theme the spinbox
are slim. See https://github.com/pyqtgraph/pyqtgraph/issues/701.
2024-06-28 12:59:54 +08:00
2952df46ac Use siPrefix for displaying measured current
Won't have the unit adjustment problem
2024-06-28 12:59:54 +08:00
e6edfea81d Pin down units in ctrl_panel
Fix units to something reasonable in fields
2024-06-28 12:59:54 +08:00
f6f8b191a0 flake.nix improvements & dedeprecate 2024-06-28 12:59:54 +08:00
df85df0c85 Swap order arounda bit more 2024-06-28 12:59:54 +08:00
7c5bd633cc Try fix force-disconnections when autotuning 2024-06-28 12:59:54 +08:00
4bc7d9ce45 Better tooltip on PID Autotune button 2024-06-28 12:59:54 +08:00
4fb1043b9e Use titles for paramtee entries
For conciseness and easier changing of displayed parameter names.
2024-06-28 12:59:53 +08:00
dc8e682ac6 Config -> Settings 2024-06-28 12:59:53 +08:00
cca0e3c746 Remove setup.py 2024-06-28 12:59:53 +08:00
16b1411e4b GUI folder further inwards 2024-06-28 12:59:53 +08:00
814e714477 Use MANIFEST.in 2024-06-28 12:59:53 +08:00
60b81e7142 Move examples into folder 2024-06-28 12:59:53 +08:00
8021faa00d Move gui components into folder 2024-06-28 12:59:53 +08:00
82fb0b0ec6 pyproject.toml fixes 2024-06-28 12:59:53 +08:00
691269cbdc README: Proofread 2024-06-28 12:59:53 +08:00
bdbb7f9b78 Use qtextras 2024-06-28 12:59:53 +08:00
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
b6692b55a4 Add tooltips in parameter tree 2024-06-28 12:59:53 +08:00
1340057449 flake: sha256 -> hash 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
81e3c12b1c Change title 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
542bf15e77 Update docs 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
6fe2cfba38 add autotune 2024-06-28 12:59:53 +08:00
44e9130010 Use oxalica's rust-overlay
Follow ARTIQ, and in this project lets us include the version number
directly in flake.nix instead of linking to the toml file of a specific
release date, as we use stable Rust.

Also, from nixpkgs manual:
    both oxalica's overlay and fenix better integrate with nix and cache
    optimizations. Because of this and ergonomics, either of those
    community projects should be preferred to the Mozilla's Rust overlay
    (nixpkgs-mozilla).
2024-06-27 12:42:00 +08:00
5b0c6f7018 Save i_set into ChannelConfig 2024-05-18 10:50:54 +08:00