forked from M-Labs/artiq
examples: code applet
This commit is contained in:
parent
b982832ddc
commit
b7b6e7b9db
29
artiq/examples/master/repository/code_applet.py
Normal file
29
artiq/examples/master/repository/code_applet.py
Normal file
@ -0,0 +1,29 @@
|
||||
import os
|
||||
import time
|
||||
|
||||
from artiq.experiment import *
|
||||
|
||||
|
||||
# Do the applet source code path determination on import.
|
||||
# ARTIQ imports the experiment, then changes the current
|
||||
# directory to the results, then instantiates the experiment.
|
||||
# In Python __file__ is a relative path which is not updated
|
||||
# when the current directory is changed.
|
||||
custom_applet = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||
"custom_applet.py"))
|
||||
|
||||
|
||||
class CreateCodeApplet(EnvExperiment):
|
||||
def build(self):
|
||||
self.setattr_device("ccb")
|
||||
|
||||
def run(self):
|
||||
with open(custom_applet) as f:
|
||||
self.ccb.issue("create_applet", "code_applet_example",
|
||||
"code_applet_dataset", code=f.read(), group="autoapplet")
|
||||
for i in reversed(range(10)):
|
||||
self.set_dataset("code_applet_dataset", i,
|
||||
broadcast=True, save=False)
|
||||
time.sleep(1)
|
||||
self.ccb.issue("disable_applet", "code_applet_example",
|
||||
group="autoapplet")
|
26
artiq/examples/master/repository/custom_applet.py
Normal file
26
artiq/examples/master/repository/custom_applet.py
Normal file
@ -0,0 +1,26 @@
|
||||
from PyQt5 import QtWidgets
|
||||
|
||||
from artiq.applets.simple import SimpleApplet
|
||||
|
||||
|
||||
class DemoWidget(QtWidgets.QLabel):
|
||||
def __init__(self, args):
|
||||
QtWidgets.QLabel.__init__(self)
|
||||
self.dataset_name = args.dataset
|
||||
|
||||
def data_changed(self, data, mods):
|
||||
try:
|
||||
n = str(data[self.dataset_name][1])
|
||||
except (KeyError, ValueError, TypeError):
|
||||
n = "---"
|
||||
n = "<font size=15>" + n + "</font>"
|
||||
self.setText(n)
|
||||
|
||||
|
||||
def main():
|
||||
applet = SimpleApplet(DemoWidget)
|
||||
applet.add_dataset("dataset", "dataset to show")
|
||||
applet.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user