wip(temperature_controller)
CI for debye_bec / test (pull_request) Failing after 45s
CI for debye_bec / test (push) Failing after 45s

This commit is contained in:
x01da committed 2026-10-28 08:55:54 +01:00
1 parent cff6b9d695
commit 0f72f290b4
2 files changed
+31 -12

No files matched your search

@@ -209,9 +209,9 @@ class Button(QWidget):
self.label.setFixedWidth(LABEL_WIDTH)
layout.addWidget(self.label)
self.button = QPushButton(label_button)
self.color = color
self.setEnabled(enabled)
layout.addWidget(self.button)
self.color = color
def clicked_connect(self, func):
"""Connect a function to the button press."""
@@ -252,6 +252,7 @@ class TextIndicator(QWidget):
self.text = QLabel("-")
self.text.setAlignment(Qt.AlignTop) # type: ignore
layout.addWidget(self.text)
self.color = "default"
def setLabel(self, label) -> None:
self.label.setText(label)
@@ -260,4 +261,10 @@ class TextIndicator(QWidget):
self.text.setText(text)
def setColor(self, color: str):
self.color = color
self.apply_theme()
def apply_theme(self):
colors = get_accent_colors()
color = getattr(colors, self.color).name()
self.text.setStyleSheet(f"QLabel {{color:{color}}}")
@@ -12,7 +12,7 @@ from bec_lib import bec_logger
from bec_lib.endpoints import MessageEndpoints
from bec_widgets.utils.bec_dispatcher import BECDispatcher
from bec_widgets.utils.bec_widget import BECWidget
from bec_widgets.utils.colors import apply_theme, get_accent_colors
from bec_widgets.utils.colors import apply_theme
from bec_widgets.utils.error_popups import SafeSlot
from bec_widgets.widgets.plots.waveform.waveform import Waveform
@@ -145,6 +145,7 @@ class TemperatureController(BECWidget, QWidget):
waveform_layout.addWidget(self.waveform, stretch=1)
waveform_settings_layout = QHBoxLayout()
self.user_window_s = InputNumberField(
"",
"Plot range",
@@ -155,13 +156,15 @@ class TemperatureController(BECWidget, QWidget):
ll=1,
hl=MAX_WINDOW_S,
)
waveform_settings_layout.addWidget(self.user_window_s)
waveform_settings_layout.addStretch()
waveform_layout.addWidget(self.user_window_s)
waveform_layout.addLayout(waveform_settings_layout)
root_layout.addLayout(waveform_layout, stretch=1)
self.waveform.set(title="", x_label="Time")
self.waveform.enable_toolbar = False
self.waveform.enable_toolbar = True
self.waveform.enable_side_panel = False
self.waveform.plot_item.setAxisItems({"bottom": pg.DateAxisItem(orientation="bottom")})
@@ -197,6 +200,15 @@ class TemperatureController(BECWidget, QWidget):
self.plot_init = True
@SafeSlot()
def apply_theme(self, theme):
self.sensor_break.apply_theme()
self.operating_mode.apply_theme()
self.heater_sensor_break.apply_theme()
self.autotune_status.apply_theme()
self.autotune.apply_theme()
return super().apply_theme(theme)
@SafeSlot()
def _on_value_changed(self, *_, **kwargs):
if "index" in kwargs.keys():
@@ -231,20 +243,20 @@ class TemperatureController(BECWidget, QWidget):
match value:
case UnivTempContSensorBreak.GOOD:
self.sensor_break.setText("OK")
self.sensor_break.setColor(get_accent_colors().success.name())
self.sensor_break.setColor("success")
case UnivTempContSensorBreak.SENSOR_BREAK:
self.sensor_break.setText("FAULT")
self.sensor_break.setColor(get_accent_colors().emergency.name())
self.sensor_break.setColor("emergency")
case _:
raise TemperatureControllerError(f"Not implemented sensor_break value {value}")
value = signals[DEVICE_NAME + "_" + "heater_tc_fault"]["value"]
match value:
case UnivTempContHeaterTcFault.NO_FAULT:
self.heater_sensor_break.setText("OK")
self.heater_sensor_break.setColor(get_accent_colors().success.name())
self.heater_sensor_break.setColor("success")
case UnivTempContHeaterTcFault.TC_OPEN_FAULT:
self.heater_sensor_break.setText("OPEN")
self.heater_sensor_break.setColor(get_accent_colors().warning.name())
self.heater_sensor_break.setColor("warning")
case (
UnivTempContHeaterTcFault.OVER_UNDERVOLTAGE_FAULT
| UnivTempContHeaterTcFault.TC_LOW_FAULT
@@ -255,7 +267,7 @@ class TemperatureController(BECWidget, QWidget):
| UnivTempContHeaterTcFault.COLD_JUNC_RNG_FAULT
):
self.heater_sensor_break.setText("FAULT")
self.heater_sensor_break.setColor(get_accent_colors().emergency.name())
self.heater_sensor_break.setColor("emergency")
case _:
raise TemperatureControllerError(
f"Not implemented heater_sensor_break value {value}"
@@ -264,13 +276,13 @@ class TemperatureController(BECWidget, QWidget):
match value:
case UnivTempContOpMode.AUTO:
self.operating_mode.setText("AUTO")
self.operating_mode.setColor(get_accent_colors().success.name())
self.operating_mode.setColor("success")
case UnivTempContOpMode.MANUAL:
self.operating_mode.setText("MANUAL")
self.operating_mode.setColor(get_accent_colors().warning.name())
self.operating_mode.setColor("warning")
case UnivTempContOpMode.STANDBY:
self.operating_mode.setText("STANDBY")
self.operating_mode.setColor(get_accent_colors().default.name())
self.operating_mode.setColor("default")
case _:
raise TemperatureControllerError(f"Not implemented op_mode value {value}")
index = signals[DEVICE_NAME + "_" + "power"]["value"]