moninj: separate DDS further

This commit is contained in:
Simon Renblad 2024-04-26 14:49:52 +08:00
parent 3b8f6edd52
commit 5fd42dc0e2

View File

@ -155,11 +155,12 @@ class _TTLHandler:
class _DDSWidget(QtWidgets.QFrame): class _DDSWidget(QtWidgets.QFrame):
apply_changes = QtCore.pyqtSignal() apply_changes = QtCore.pyqtSignal()
off_clicked = QtCore.pyqtSignal() off_clicked = QtCore.pyqtSignal()
set_clicked = QtCore.pyqtSignal()
def __init__(self, title, is_urukul): def __init__(self, title, is_urukul):
QtWidgets.QFrame.__init__(self) QtWidgets.QFrame.__init__(self)
self._value = 0
self.setFrameShape(QtWidgets.QFrame.Box) self.setFrameShape(QtWidgets.QFrame.Box)
self.setFrameShadow(QtWidgets.QFrame.Raised) self.setFrameShadow(QtWidgets.QFrame.Raised)
@ -245,20 +246,29 @@ class _DDSWidget(QtWidgets.QFrame):
grid.setRowStretch(3, 1) grid.setRowStretch(3, 1)
set_btn.clicked.connect(self.set_clicked) set_btn.clicked.connect(self.set_clicked)
apply.clicked.connect(self.apply_changes) apply.clicked.connect(self._apply_changes)
if is_urukul: if is_urukul:
off_btn.clicked.connect(self.off_clicked) off_btn.clicked.connect(self.off_clicked)
off_btn.setToolTip(textwrap.dedent( off_btn.setToolTip(textwrap.dedent(
"""Note: If TTL RTIO sw for the channel is switched high, """Note: If TTL RTIO sw for the channel is switched high,
this button will not disable the channel. this button will not disable the channel.
Use the TTL override instead.""")) Use the TTL override instead."""))
self.value_edit.returnPressed.connect(self.apply_changes) self.value_edit.returnPressed.connect(self._apply_changes)
def cancel_changes(cancel): def cancel_changes(cancel):
self.set_page(0) self.set_page(0)
self.value_edit.escapePressedConnect(cancel_changes) self.value_edit.escapePressedConnect(cancel_changes)
cancel.clicked.connect(cancel_changes) cancel.clicked.connect(cancel_changes)
def _apply_changes(self):
self.widget.set_page(0)
self.apply_changes.emit()
def set_clicked(self):
self.set_page(1)
self.set_edit_value(self._value)
self.start_edit()
def set_page(self, page): def set_page(self, page):
self.data_stack.setCurrentIndex(page) self.data_stack.setCurrentIndex(page)
self.button_stack.setCurrentIndex(page) self.button_stack.setCurrentIndex(page)
@ -271,6 +281,7 @@ class _DDSWidget(QtWidgets.QFrame):
def set_value(self, value): def set_value(self, value):
self.value_label.setText("<font size=\"4\">{:.7f}</font>".format(value)) self.value_label.setText("<font size=\"4\">{:.7f}</font>".format(value))
self._value = value
self.set_edit_value(value) self.set_edit_value(value)
def start_edit(self): def start_edit(self):
@ -308,7 +319,6 @@ class _DDSHandler:
self.widget = _DDSWidget(title, self.is_urukul) self.widget = _DDSWidget(title, self.is_urukul)
self.widget.apply_changes.connect(self.apply_changes) self.widget.apply_changes.connect(self.apply_changes)
self.widget.off_clicked.connect(self.off_clicked) self.widget.off_clicked.connect(self.off_clicked)
self.widget.set_clicked.connect(self.set_clicked)
self.refresh_display() self.refresh_display()
def monitor_update(self, probe, value): def monitor_update(self, probe, value):
@ -323,14 +333,9 @@ class _DDSHandler:
self.widget.set_value(self.cur_frequency / 1e6) self.widget.set_value(self.cur_frequency / 1e6)
def apply_changes(self): def apply_changes(self):
self.widget.set_page(0)
frequency = self.widget.get_value() * 1e6 frequency = self.widget.get_value() * 1e6
self.dm.dds_set_frequency(self.dds_name, frequency) self.dm.dds_set_frequency(self.dds_name, frequency)
def set_clicked(self):
self.widget.set_page(1)
self.widget.set_edit_value(self.cur_frequency / 1e6)
self.widget.start_edit()
def off_clicked(self): def off_clicked(self):
self.dm.dds_channel_toggle(self.dds_name, sw=False) self.dm.dds_channel_toggle(self.dds_name, sw=False)