diff --git a/artiq/dashboard/moninj.py b/artiq/dashboard/moninj.py index fdcf7bb63..ac49619ac 100644 --- a/artiq/dashboard/moninj.py +++ b/artiq/dashboard/moninj.py @@ -487,12 +487,10 @@ class _DeviceManager: self.handlers_by_uid = dict() self.dds_sysclk = 0 - self.ttl_cb = lambda: None self.ttl_handlers = dict() - self.dds_cb = lambda: None self.dds_handlers = dict() - self.dac_cb = lambda: None self.dac_handlers = dict() + self.channels_cb = lambda: None def init_ddb(self, ddb): self.ddb = ddb @@ -513,17 +511,14 @@ class _DeviceManager: self.setup_ttl_monitoring(False, handler.channel) handler.delete_widget() del self.ttl_handlers[handler.channel] - self.ttl_cb() elif isinstance(handler, _DDSHandler): self.setup_dds_monitoring(False, handler.bus_channel, handler.channel) handler.delete_widget() del self.dds_handlers[(handler.bus_channel, handler.channel)] - self.dds_cb() elif isinstance(handler, _DACHandler): self.setup_dac_monitoring(False, handler.spi_channel, handler.channel) handler.delete_widget() del self.dac_handlers[(handler.spi_channel, handler.channel)] - self.dac_cb() else: raise ValueError @@ -536,19 +531,19 @@ class _DeviceManager: if isinstance(handler, _TTLHandler): self.ttl_handlers[handler.channel] = handler - self.ttl_cb() self.setup_ttl_monitoring(True, handler.channel) elif isinstance(handler, _DDSHandler): self.dds_handlers[(handler.bus_channel, handler.channel)] = handler - self.dds_cb() self.setup_dds_monitoring(True, handler.bus_channel, handler.channel) elif isinstance(handler, _DACHandler): self.dac_handlers[(handler.spi_channel, handler.channel)] = handler - self.dac_cb() self.setup_dac_monitoring(True, handler.spi_channel, handler.channel) else: raise ValueError + if self.description != description: + self.channels_cb() + self.description = description def ttl_set_mode(self, channel, mode): @@ -811,14 +806,10 @@ class _MonInjDock(QtWidgets.QDockWidget): class MonInj: def __init__(self, schedule_ctl): - self.ttl_dock = _MonInjDock("TTL") - self.dds_dock = _MonInjDock("DDS") - self.dac_dock = _MonInjDock("DAC") + self.dock = _MonInjDock("MonInj") self.dm = _DeviceManager(schedule_ctl) - self.dm.ttl_cb = lambda: self.ttl_dock.layout_widgets(self.dm.ttl_handlers.values()) - self.dm.dds_cb = lambda: self.dds_dock.layout_widgets(self.dm.dds_handlers.values()) - self.dm.dac_cb = lambda: self.dac_dock.layout_widgets(self.dm.dac_handlers.values()) + self.dm.channels_cb = lambda: self.dock.layout_widgets(self.dm.handlers_by_uid.values()) async def stop(self): if self.dm is not None: diff --git a/artiq/frontend/artiq_dashboard.py b/artiq/frontend/artiq_dashboard.py index 634f5e29d..1e95def0b 100755 --- a/artiq/frontend/artiq_dashboard.py +++ b/artiq/frontend/artiq_dashboard.py @@ -261,8 +261,8 @@ def main(): # lay out docks right_docks = [ d_explorer, d_shortcuts, - d_ttl_dds.ttl_dock, d_ttl_dds.dds_dock, d_ttl_dds.dac_dock, - d_datasets, d_applets, d_waveform, d_interactive_args + d_ttl_dds.dock, d_datasets, d_applets, + d_waveform, d_interactive_args ] main_window.addDockWidget(QtCore.Qt.RightDockWidgetArea, right_docks[0]) for d1, d2 in zip(right_docks, right_docks[1:]): @@ -280,8 +280,7 @@ def main(): atexit_register_coroutine(smgr.stop, loop=loop) # work around for https://github.com/m-labs/artiq/issues/1307 - d_ttl_dds.ttl_dock.show() - d_ttl_dds.dds_dock.show() + d_ttl_dds.dock.show() # create first log dock if not already in state d_log0 = logmgr.first_log_dock()