* Remove unnecessary duplication of `THERMOSTAT_PARAMETERS`
* i -> ch
* Separate ParameterTree and Parameter initiation
* Remove extra "channel" option to root parameters, as the "value"
option is already the channel number
Units should always be fixed in user input boxes. The option
"noUnitEditing" is added to do so by the following measures:
1. Don't validate for changed siPrefix and suffix, which avoids their
removal.
2. Avoid getting the cursor embedded within suffixes
Adds the option "pinSiPrefix" for all `Parameters` of type `int` or
`float`, and use it for current Parameters with unit "mA".
This let's us remove all instances of mA scaling scattered all around
the code and specify it in the parameter tree with a single source of
truth.
- 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
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`
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>