GUI: Thermostat Control Panel #147

Open
atse wants to merge 12 commits from atse/thermostat:GUI into master
Contributor

This implements the comprehensive control panel for the Sinara 8451 Thermostat.

Features include:

  • Live controlling of parameters
  • Plotting of channel currents and temperatures
  • GUI-friendly access to various channel-agnostic settings

Further feature developments/fixes/polishing ongoing (e.g. linuswck/thermostat#2).

image

This implements the comprehensive control panel for the Sinara 8451 Thermostat. Features include: * Live controlling of parameters * Plotting of channel currents and temperatures * GUI-friendly access to various channel-agnostic settings Further feature developments/fixes/polishing ongoing (e.g. https://git.m-labs.hk/linuswck/thermostat/pulls/2). ![image](/attachments/ada89140-9918-4f6b-a76b-ca3d3530acf5)
atse added 10 commits 2024-11-04 18:45:39 +08:00
- Add connection menu

- Add basic GUI layout skeleton

Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-authored-by: topquark12 <aw@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: linuswck <linuswck@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-authored-by: Egor Savkin <es@m-labs.hk>
Co-authored-by: topquark12 <aw@m-labs.hk>
atse force-pushed GUI from 953a48230c to f7ad053433 2024-11-11 18:08:18 +08:00 Compare
atse force-pushed GUI from f7ad053433 to 198b07f2a6 2024-11-18 13:20:26 +08:00 Compare
atse force-pushed GUI from 198b07f2a6 to 348f2600f3 2024-11-18 18:04:37 +08:00 Compare
atse force-pushed GUI from 348f2600f3 to 1eba7d8556 2024-11-25 13:13:37 +08:00 Compare
atse force-pushed GUI from 1eba7d8556 to e4ad9bf271 2024-11-25 18:08:57 +08:00 Compare
atse changed title from WIP: GUI: Thermostat Control Panel to GUI: Thermostat Control Panel 2024-11-25 18:58:26 +08:00
sb10q reviewed 2024-11-26 15:17:58 +08:00
@ -71,0 +71,4 @@
A GUI has been developed for easy configuration and plotting of key parameters.
The Python GUI program is located at pythermostat/pythermostat/thermostat_qt.py, and is developed based on the Python library pyqtgraph. The GUI can be configured and
Owner

and PyQt

and PyQt
sb10q reviewed 2024-11-26 15:18:43 +08:00
@ -0,0 +1,4 @@
graft examples
include pythermostat/gui/resources/artiq.ico
Owner

Isn't .ico an ancient Windows thing?

Isn't .ico an ancient Windows thing?
sb10q reviewed 2024-11-26 15:19:17 +08:00
@ -0,0 +33,4 @@
with suppress(asyncio.CancelledError):
await polling_task
asyncio.run(main())
Owner

Split from GUI PR

Split from GUI PR
sb10q reviewed 2024-11-26 15:19:31 +08:00
@ -98,1 +134,4 @@
]);
shellHook = ''
export PYTHONPATH=`git rev-parse --show-toplevel`/pythermostat:$PYTHONPATH
'';
Owner

Split from GUI PR

Split from GUI PR
sb10q reviewed 2024-11-26 15:19:58 +08:00
@ -85,0 +104,4 @@
ki = divisors[1] * self._Ku / self._Pu
kd = divisors[2] * self._Ku * self._Pu
return kp, ki, kd
Owner

Split all autotune changes from GUI PR

Split all autotune changes from GUI PR
sb10q reviewed 2024-11-26 15:20:30 +08:00
@ -60,0 +66,4 @@
self._noiseband = noiseband
self._inputs = deque(maxlen=round(lookback / sampletime))
def setReady(self):
Owner

Do not mix camel case and underscore naming schemes in method names for the same class.

Do not mix camel case and underscore naming schemes in method names for the same class.
sb10q reviewed 2024-11-26 15:22:48 +08:00
@ -0,0 +22,4 @@
limit_samples = QtWidgets.QWidgetAction(self)
limit_samples.setDefaultWidget(self.samples_spinbox)
self.addAction(limit_samples)
self.limit_samples = limit_samples
Owner

Not sure if one menu per file is the right thing to do.

Not sure if one menu per file is the right thing to do.
sb10q reviewed 2024-11-26 15:23:17 +08:00
@ -0,0 +47,4 @@
self._lbl.setToolTip(report_str)
else:
self._lbl.setPixmap(QtGui.QPixmap())
self._lbl.setToolTip(None)
Owner

This probably can be merged into some other file.

This probably can be merged into some other file.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u GUI:atse-GUI
git checkout atse-GUI
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: M-Labs/thermostat#147
No description provided.