from artiq.experiment import *
import numpy as np
from PyQt5 import QtCore, QtGui, QtWidgets
import time
import os
import sys
class GUI_Reveal(EnvExperiment,object):
"""GUI Reveal"""
def build(self):
self.setattr_device("core")
self.setattr_device("ttl0")
self.setattr_device("ttl1")
self.setattr_device("ttl2")
self.setattr_device("ttl3")
self.setattr_device("urukul0_ch0")#729nm激光
self.setattr_device("urukul0_cpld")
def pepare(self):
pass
def run(self):
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
self.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(1592, 829)
self.groupBox = QtWidgets.QGroupBox(Form)
self.groupBox.setGeometry(QtCore.QRect(20, 420, 541, 411))
self.groupBox.setObjectName("groupBox")
self.label = QtWidgets.QLabel(self.groupBox)
self.label.setGeometry(QtCore.QRect(190, 30, 141, 31))
font = QtGui.QFont()
font.setFamily("Candara")
font.setPointSize(20)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.groupBox)
self.label_2.setGeometry(QtCore.QRect(120, 90, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.groupBox)
self.label_3.setGeometry(QtCore.QRect(20, 180, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.groupBox)
self.label_4.setGeometry(QtCore.QRect(240, 180, 31, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.groupBox)
self.label_5.setGeometry(QtCore.QRect(270, 180, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.spinBox_3 = QtWidgets.QSpinBox(self.groupBox)
self.spinBox_3.setGeometry(QtCore.QRect(370, 170, 111, 51))
self.spinBox_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_3.setMaximum(3000)
self.spinBox_3.setObjectName("spinBox_3")
self.label_6 = QtWidgets.QLabel(self.groupBox)
self.label_6.setGeometry(QtCore.QRect(490, 180, 31, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.groupBox)
self.label_7.setGeometry(QtCore.QRect(120, 280, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.spinBox_4 = QtWidgets.QSpinBox(self.groupBox)
self.spinBox_4.setGeometry(QtCore.QRect(220, 270, 111, 51))
self.spinBox_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_4.setMaximum(3000)
self.spinBox_4.setObjectName("spinBox_4")
self.label_8 = QtWidgets.QLabel(self.groupBox)
self.label_8.setGeometry(QtCore.QRect(340, 280, 31, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.spinBox_5 = QtWidgets.QSpinBox(self.groupBox)
self.spinBox_5.setGeometry(QtCore.QRect(220, 80, 111, 51))
self.spinBox_5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_5.setMaximum(10000)
self.spinBox_5.setObjectName("spinBox_5")
self.spinBox_6 = QtWidgets.QSpinBox(self.groupBox)
self.spinBox_6.setGeometry(QtCore.QRect(120, 170, 111, 51))
self.spinBox_6.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_6.setMaximum(3000)
self.spinBox_6.setObjectName("spinBox_6")
self.pushButton = QtWidgets.QPushButton(self.groupBox)
self.pushButton.setGeometry(QtCore.QRect(210, 350, 111, 51))
font = QtGui.QFont()
font.setPointSize(15)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.groupBox_2 = QtWidgets.QGroupBox(Form)
self.groupBox_2.setGeometry(QtCore.QRect(560, 420, 541, 411))
self.groupBox_2.setObjectName("groupBox_2")
self.label_9 = QtWidgets.QLabel(self.groupBox_2)
self.label_9.setGeometry(QtCore.QRect(170, 30, 191, 31))
font = QtGui.QFont()
font.setFamily("Candara")
font.setPointSize(20)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
self.label_9.setFont(font)
self.label_9.setObjectName("label_9")
self.label_10 = QtWidgets.QLabel(self.groupBox_2)
self.label_10.setGeometry(QtCore.QRect(120, 90, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
font.setBold(False)
font.setWeight(50)
self.label_10.setFont(font)
self.label_10.setObjectName("label_10")
self.label_11 = QtWidgets.QLabel(self.groupBox_2)
self.label_11.setGeometry(QtCore.QRect(20, 180, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
self.label_11.setFont(font)
self.label_11.setObjectName("label_11")
self.label_12 = QtWidgets.QLabel(self.groupBox_2)
self.label_12.setGeometry(QtCore.QRect(240, 180, 31, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_12.setFont(font)
self.label_12.setObjectName("label_12")
self.label_13 = QtWidgets.QLabel(self.groupBox_2)
self.label_13.setGeometry(QtCore.QRect(270, 180, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
self.label_13.setFont(font)
self.label_13.setObjectName("label_13")
self.label_14 = QtWidgets.QLabel(self.groupBox_2)
self.label_14.setGeometry(QtCore.QRect(490, 180, 31, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_14.setFont(font)
self.label_14.setObjectName("label_14")
self.label_15 = QtWidgets.QLabel(self.groupBox_2)
self.label_15.setGeometry(QtCore.QRect(120, 280, 101, 31))
font = QtGui.QFont()
font.setFamily("Bahnschrift")
font.setPointSize(14)
self.label_15.setFont(font)
self.label_15.setObjectName("label_15")
self.label_16 = QtWidgets.QLabel(self.groupBox_2)
self.label_16.setGeometry(QtCore.QRect(340, 280, 31, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_16.setFont(font)
self.label_16.setObjectName("label_16")
self.spinBox_9 = QtWidgets.QSpinBox(self.groupBox_2)
self.spinBox_9.setGeometry(QtCore.QRect(220, 80, 111, 51))
self.spinBox_9.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.spinBox_9.setMaximum(10000)
self.spinBox_9.setObjectName("spinBox_9")
self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.groupBox_2)
self.doubleSpinBox.setGeometry(QtCore.QRect(220, 270, 111, 51))
self.doubleSpinBox.setDecimals(3)
self.doubleSpinBox.setSingleStep(0.001)
self.doubleSpinBox.setObjectName("doubleSpinBox")
self.doubleSpinBox_2 = QtWidgets.QDoubleSpinBox(self.groupBox_2)
self.doubleSpinBox_2.setGeometry(QtCore.QRect(120, 170, 111, 51))
self.doubleSpinBox_2.setDecimals(3)
self.doubleSpinBox_2.setMinimum(180.0)
self.doubleSpinBox_2.setMaximum(220.0)
self.doubleSpinBox_2.setSingleStep(0.001)
self.doubleSpinBox_2.setObjectName("doubleSpinBox_2")
self.doubleSpinBox_3 = QtWidgets.QDoubleSpinBox(self.groupBox_2)
self.doubleSpinBox_3.setGeometry(QtCore.QRect(370, 170, 111, 51))
self.doubleSpinBox_3.setDecimals(3)
self.doubleSpinBox_3.setMinimum(180.0)
self.doubleSpinBox_3.setMaximum(220.0)
self.doubleSpinBox_3.setSingleStep(0.001)
self.doubleSpinBox_3.setObjectName("doubleSpinBox_3")
self.pushButton_2 = QtWidgets.QPushButton(self.groupBox_2)
self.pushButton_2.setGeometry(QtCore.QRect(220, 350, 111, 51))
font = QtGui.QFont()
font.setPointSize(15)
self.pushButton_2.setFont(font)
self.pushButton_2.setObjectName("pushButton_2")
self.spinBox_5.valueChanged.connect(self.changeValue1)
self.spinBox_6.valueChanged.connect(self.changeValue2)
self.spinBox_3.valueChanged.connect(self.changeValue3)
self.spinBox_4.valueChanged.connect(self.changeValue4)
self.spinBox_9.valueChanged.connect(self.changeValue9)
self.doubleSpinBox_2.valueChanged.connect(self.ChangeValue7)
self.doubleSpinBox_3.valueChanged.connect(self.ChangeValue8)
self.doubleSpinBox.valueChanged.connect(self.ChangeValue9)
self.pushButton.clicked.connect(self.Run_RABI)
self.pushButton_2.clicked.connect(self.Run_ZEEMAN)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def Run_RABI(self):
self.RABI_Round=self.get_dataset("Run_RABI.RABI_Round")
self.RABI_Time_Start=self.get_dataset("Run_RABI.RABI_Time_Start")
self.RABI_Time_End=self.get_dataset("Run_RABI.RABI_Time_End")
self.RABI_Time_Step=self.get_dataset("Run_RABI.RABI_Time_Step")
self.RABI()
@kernel
def RABI(self):
self.core.reset()
delay(100*ms)
self.urukul0_cpld.init()
self.urukul0_ch0.init()
self.urukul0_ch0.sw.on()
self.urukul0_ch0.set_att(2.0)
delay(10*ms)
try:
while self.RABI_Time_Start < self.RABI_Time_End:
for i in range(self.RABI_Round):
#Dopplor_cooling
self.ttl0.on()
self.ttl1.on()
self.ttl2.on()
delay(3*ms)
#态制备
self.ttl0.off()
self.ttl3.on()
delay(500*us)
#边带冷却
self.urukul0_ch0.set(3.0)
delay(20*ms)
self.ttl3.off()
#Rabi扫描
self.ttl2.off()
delay(self.RABI_Time_Step*ns)
#态探测
self.ttl0.on()
delay(6*ms)
self.ttl0.off()
self.ttl1.off()
delay(7*ms)
self.RABI_Time_Start+=self.RABI_Time_Step
except RTIOUnderflow:
print("Error for time")
def Run_ZEEMAN(self):
self.ZEEMAN_Round=self.get_dataset("Run_ZEEMAN.ZEEMAN_Round")
self.ZEEMAN_Frequency_Start=self.get_dataset("Run_ZEEMAN.ZEEMAN_Frequency_Start")
self.ZEEMAN_Frequency_End=self.get_dataset("Run_ZEEMAN.ZEEMAN_Frequency_End")
self.ZEEMAN_Frequency_Step=self.get_dataset("Run_ZEEMAN.ZEEMAN_Frequency_Step")
self.ZEEMAN()
@kernel
def ZEEMAN(self):
self.core.reset()
delay(10*ms)
self.urukul0_cpld.init()
self.urukul0_ch0.init()
self.urukul0_ch0.sw.on()
self.urukul0_ch0.set_att(2.0)
delay(10*ms)
#开始运行
try:
while self.ZEEMAN_Frequency_Start< self.ZEEMAN_Frequency_End:
#设置扫zeeman的频率
self.urukul0_ch0.set(self.ZEEMAN_Frequency_Start*MHz)
#相同设置条件下重复运行
for i in range(self.ZEEMAN_Round):
#Dopplor_cooling
self.ttl0.on()
self.ttl1.on()
self.ttl2.on()
delay(3*ms)
#态制备
self.ttl0.off()
self.ttl3.on()
delay(500*us)
#zeeman扫描
self.ttl2.off()
delay(3*ms)
self.ttl3.off()
#态探测
self.ttl0.on()
delay(6*ms)
self.ttl0.off()
self.ttl1.off()
delay(7*ms)
self.ZEEMAN_Frequency_Start+=self.ZEEMAN_Frequency_Step
except RTIOUnderflow:
print("Error for time")
def changeValue1(self):
self.set_dataset("Run_RABI.RABI_Round",self.spinBox_5.value(), broadcast=True)
def changeValue2(self):
self.set_dataset("Run_RABI.RABI_Time_Start",self.spinBox_6.value(), broadcast=True)
def changeValue3(self):
self.set_dataset("Run_RABI.RABI_Time_End",self.spinBox_3.value(), broadcast=True)
def changeValue4(self):
self.set_dataset("Run_RABI.RABI_Time_Step",self.spinBox_4.value(), broadcast=True)
def changeValue9(self):
self.set_dataset("Run_ZEEMAN.ZEEMAN_Round",self.spinBox_9.value(), broadcast=True)
def ChangeValue7(self):
self.set_dataset("Run_ZEEMAN.ZEEMAN_Frequency_Start",self.doubleSpinBox_2.value(), broadcast=True)
def ChangeValue8(self):
self.set_dataset("Run_ZEEMAN.ZEEMAN_Frequency_End",self.doubleSpinBox_3.value(), broadcast=True)
def ChangeValue9(self):
self.set_dataset("Run_ZEEMAN.ZEEMAN_Frequency_Step",self.doubleSpinBox.value(), broadcast=True)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.groupBox.setTitle(_translate("Form", "GroupBox"))
self.label.setText(_translate("Form", "Rabi Scan"))
self.label_2.setText(_translate("Form", "循环次数"))
self.label_3.setText(_translate("Form", "开始时长"))
self.label_4.setText(_translate("Form", "ns"))
self.label_5.setText(_translate("Form", "终止时长"))
self.label_6.setText(_translate("Form", "ns"))
self.label_7.setText(_translate("Form", "扫描步长"))
self.label_8.setText(_translate("Form", "ns"))
self.pushButton.setText(_translate("Form", "开始"))
self.groupBox_2.setTitle(_translate("Form", "GroupBox"))
self.label_9.setText(_translate("Form", "Zeeman Scan"))
self.label_10.setText(_translate("Form", "循环次数"))
self.label_11.setText(_translate("Form", "开始频率"))
self.label_12.setText(_translate("Form", "MHz"))
self.label_13.setText(_translate("Form", "终止频率"))
self.label_14.setText(_translate("Form", "MHz"))
self.label_15.setText(_translate("Form", "频率步长"))
self.label_16.setText(_translate("Form", "MHz"))
self.pushButton_2.setText(_translate("Form", "开始"))
I am wondering why this procedure can't run,I design an interface and associate the buttons and function to run,artiq.master.worker:worker exception details
Traceback (most recent call last):
File "C:\Users\dinggeyi\Anaconda3\envs\artiq\lib\site-packages\artiq\master\scheduler.py", line 271, in do
completed = await run.run()
File "C:\Users\dinggeyi\Anaconda3\envs\artiq\lib\site-packages\artiq\master\scheduler.py", line 32, in worker_method
return await m(*args, **kwargs)
File "C:\Users\dinggeyi\Anaconda3\envs\artiq\lib\site-packages\artiq\master\worker.py", line 277, in run
completed = await self.worker_action({"action": "run"})
File "C:\Users\dinggeyi\Anaconda3\envs\artiq\lib\site-packages\artiq\master\worker.py", line 251, in worker_action
completed = await self.handle_worker_requests()
File "C:\Users\dinggeyi\Anaconda3\envs\artiq\lib\site-packages\artiq\master\worker.py", line 207, in handle_worker_requests
obj = await self.recv(self.watchdog_time())
File "C:\Users\dinggeyi\Anaconda3\envs\artiq\lib\site-packages\artiq\master\worker.py", line 194, in _recv
format(self.rid))
artiq.master.worker.WorkerError: Worker ended while attempting to receive data (RID 304)