examples: add basic DDS frequency setter with dynamic DDB scan

This commit is contained in:
Sebastien Bourdeauducq 2015-10-04 18:30:29 +08:00
parent b3584bc190
commit 078a37bf1f
1 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,25 @@
from operator import itemgetter
from artiq import *
class DDSSetter(EnvExperiment):
"""DDS Setter"""
def build(self):
self.dds = dict()
ddb = self.get_ddb()
for k, v in sorted(ddb.items(), key=itemgetter(0)):
if (isinstance(v, dict)
and v["type"] == "local"
and v["module"] == "artiq.coredevice.dds"
and v["class"] in {"AD9858", "AD9914"}):
self.dds[k] = {
"driver": self.get_device(k),
"frequency": self.get_argument("{}_frequency".format(k),
NumberValue())
}
def run(self):
for k, v in self.dds.items():
v["driver"].set(v["frequency"])