mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-24 10:54:02 +08:00
master: basic automatic experiment list
This commit is contained in:
parent
4267e0deab
commit
651ed71b79
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,4 +9,4 @@ doc/manual/_build
|
||||
/dist
|
||||
/*.egg-info
|
||||
/.coverage
|
||||
examples/results
|
||||
examples/master/results
|
||||
|
@ -40,7 +40,6 @@ def main():
|
||||
pdb.hooks.append(simplephist)
|
||||
rtr = RTResults()
|
||||
repository = Repository()
|
||||
explist = FlatFileDB("explist.pyon")
|
||||
|
||||
if os.name == "nt":
|
||||
loop = asyncio.ProactorEventLoop()
|
||||
@ -71,7 +70,6 @@ def main():
|
||||
"master_pdb": pdb,
|
||||
"master_schedule": scheduler,
|
||||
"master_repository": repository,
|
||||
"master_explist": explist
|
||||
})
|
||||
loop.run_until_complete(server_control.start(
|
||||
args.bind, args.port_control))
|
||||
@ -84,7 +82,7 @@ def main():
|
||||
"parameters": pdb.data,
|
||||
"parameters_simplehist": simplephist.history,
|
||||
"rt_results": rtr.groups,
|
||||
"explist": explist.data
|
||||
"explist": repository.explist
|
||||
})
|
||||
loop.run_until_complete(server_notify.start(
|
||||
args.bind, args.port_notify))
|
||||
|
@ -1,4 +1,33 @@
|
||||
import os
|
||||
from inspect import isclass
|
||||
|
||||
from artiq.protocols.sync_struct import Notifier
|
||||
from artiq.tools import file_import
|
||||
|
||||
|
||||
def scan_experiments():
|
||||
r = dict()
|
||||
for f in os.listdir("repository"):
|
||||
if f.endswith(".py"):
|
||||
try:
|
||||
m = file_import(os.path.join("repository", f))
|
||||
except:
|
||||
continue
|
||||
for k, v in m.__dict__.items():
|
||||
if isclass(v) and hasattr(v, "__artiq_unit__"):
|
||||
entry = {
|
||||
"file": os.path.join("repository", f),
|
||||
"unit": k,
|
||||
"gui_file": getattr(v, "__artiq_gui_file__", None)
|
||||
}
|
||||
r[v.__artiq_unit__] = entry
|
||||
return r
|
||||
|
||||
|
||||
class Repository:
|
||||
def __init__(self):
|
||||
self.explist = Notifier(scan_experiments())
|
||||
|
||||
def get_data(self, filename):
|
||||
with open(filename) as f:
|
||||
with open(os.path.join("repository", filename)) as f:
|
||||
return f.read()
|
||||
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"Flopping F simulation": {
|
||||
"file": "flopping_f_simulation.py",
|
||||
"unit": null,
|
||||
"gui_file": "flopping_f_simulation_gui.py"
|
||||
},
|
||||
"RTIO skew": {
|
||||
"file": "rtio_skew.py",
|
||||
"unit": null,
|
||||
"gui_file": null
|
||||
}
|
||||
}
|
@ -25,6 +25,7 @@ def model_numpy(xdata, F0):
|
||||
|
||||
class FloppingF(AutoDB):
|
||||
__artiq_unit__ = "Flopping F simulation"
|
||||
__artiq_gui_file__ = "flopping_f_simulation_gui.py"
|
||||
|
||||
class DBKeys:
|
||||
implicit_core = False
|
@ -2,6 +2,8 @@ from artiq import *
|
||||
|
||||
|
||||
class AluminumSpectroscopy(AutoDB):
|
||||
__artiq_unit__ = "Aluminum spectroscopy (simulation)"
|
||||
|
||||
class DBKeys:
|
||||
mains_sync = Device()
|
||||
laser_cooling = Device()
|
@ -1,35 +1,42 @@
|
||||
{
|
||||
"core": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "Core",
|
||||
"arguments": {}
|
||||
},
|
||||
"mains_sync": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "Input",
|
||||
"arguments": {"name": "mains_sync"}
|
||||
},
|
||||
"pmt": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "Input",
|
||||
"arguments": {"name": "pmt"}
|
||||
},
|
||||
"laser_cooling": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "WaveOutput",
|
||||
"arguments": {"name": "laser_cooling"}
|
||||
},
|
||||
"spectroscopy": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "WaveOutput",
|
||||
"arguments": {"name": "spectroscopy"}
|
||||
},
|
||||
"spectroscopy_b": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "VoltageOutput",
|
||||
"arguments": {"name": "spectroscopy_b"}
|
||||
},
|
||||
"state_detection": {
|
||||
"type": "local",
|
||||
"module": "artiq.sim.devices",
|
||||
"class": "WaveOutput",
|
||||
"arguments": {"name": "state_detection"}
|
1
examples/sim/pdb.pyon
Normal file
1
examples/sim/pdb.pyon
Normal file
@ -0,0 +1 @@
|
||||
{}
|
Loading…
Reference in New Issue
Block a user