Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/artiq
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 653eeb476fc3
Choose a base ref
...
head repository: m-labs/artiq
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2a5a1f320fec
Choose a head ref
  • 2 commits
  • 3 files changed
  • 1 contributor

Commits on Jul 7, 2016

  1. Copy the full SHA
    b7cca38 View commit details
  2. browser, worker: feed experiments dummy devices, closes #454

    * just returning `None` as dummy device (like ExamineDeviceMgr)
    is not explicit enough, certainly hard to debug
    * introducing a special flag for the `build` action does not
    seem the right place
    jordens committed Jul 7, 2016
    4
    Copy the full SHA
    2a5a1f3 View commit details
Showing with 17 additions and 16 deletions.
  1. +2 −2 artiq/browser/experiments.py
  2. +9 −14 artiq/frontend/artiq_browser.py
  3. +6 −0 artiq/master/worker_db.py
4 changes: 2 additions & 2 deletions artiq/browser/experiments.py
Original file line number Diff line number Diff line change
@@ -376,8 +376,8 @@ def __init__(self, root, datasets_sub):
self._ddb = LocalDatasetDB(datasets_sub)

self.worker_handlers = {
"get_device_db": lambda: None,
"get_device": lambda k: None,
"get_device_db": lambda: {},
"get_device": lambda k: {"type": "dummy"},
"get_dataset": self._ddb.get,
"update_dataset": self._ddb.update,
}
23 changes: 9 additions & 14 deletions artiq/frontend/artiq_browser.py
Original file line number Diff line number Diff line change
@@ -45,9 +45,10 @@ def get_argparser():


class Browser(QtWidgets.QMainWindow):
def __init__(self, datasets_sub, browse_root, select,
def __init__(self, smgr, datasets_sub, browse_root, select,
master_host, master_port):
QtWidgets.QMainWindow.__init__(self)
smgr.register(self)

icon = QtGui.QIcon(os.path.join(artiq_dir, "gui", "logo.svg"))
self.setWindowIcon(icon)
@@ -62,26 +63,31 @@ def __init__(self, datasets_sub, browse_root, select,

self.experiments = experiments.ExperimentsArea(
browse_root, datasets_sub)
smgr.register(self.experiments)
self.experiments.setHorizontalScrollBarPolicy(
QtCore.Qt.ScrollBarAsNeeded)
self.experiments.setVerticalScrollBarPolicy(
QtCore.Qt.ScrollBarAsNeeded)
self.setCentralWidget(self.experiments)

self.files = files.FilesDock(datasets_sub, browse_root, select=select)
smgr.register(self.files)

self.files.dataset_activated.connect(
self.experiments.dataset_activated)
self.files.dataset_changed.connect(
self.experiments.dataset_changed)

self.applets = applets.AppletsDock(self, datasets_sub)
smgr.register(self.applets)
atexit_register_coroutine(self.applets.stop)

self.datasets = datasets.DatasetsDock(
datasets_sub, master_host, master_port)
smgr.register(self.datasets)

self.log = log.LogDock(None, "log")
smgr.register(self.log)
self.log.setFeatures(self.log.DockWidgetMovable |
self.log.DockWidgetFloatable)

@@ -117,19 +123,9 @@ def save_state(self):
return {
"geometry": bytes(self.saveGeometry()),
"state": bytes(self.saveState()),
"experiments": self.experiments.save_state(),
"files": self.files.save_state(),
"datasets": self.datasets.save_state(),
"log": self.log.save_state(),
"applets": self.applets.save_state(),
}

def restore_state(self, state):
self.applets.restore_state(state["applets"])
self.log.restore_state(state["log"])
self.datasets.restore_state(state["datasets"])
self.files.restore_state(state["files"])
self.experiments.restore_state(state["experiments"])
self.restoreState(QtCore.QByteArray(state["state"]))
self.restoreGeometry(QtCore.QByteArray(state["geometry"]))

@@ -149,10 +145,9 @@ def main():

smgr = state.StateManager(args.db_file)

main_window = Browser(datasets_sub, args.browse_root, args.select,
args.server, args.port)
main_window = Browser(smgr, datasets_sub, args.browse_root,
args.select, args.server, args.port)
widget_log_handler.callback = main_window.log.append_message
smgr.register(main_window)

if os.name == "nt":
# HACK: show the main window before creating applets.
6 changes: 6 additions & 0 deletions artiq/master/worker_db.py
Original file line number Diff line number Diff line change
@@ -85,6 +85,10 @@ def _last_rid_from_results(self):
return r


class DummyDevice:
pass


def _create_device(desc, device_mgr):
ty = desc["type"]
if ty == "local":
@@ -109,6 +113,8 @@ def _create_device(desc, device_mgr):
else:
cls = Client
return cls(controller["host"], controller["port"], desc["target_name"])
elif ty == "dummy":
return DummyDevice()
else:
raise ValueError("Unsupported type in device DB: " + ty)