|
@@ -331,7 +331,7 @@ class Ui_MainWindow(object):
|
|
|
|
|
|
## Int. Delay
|
|
|
self.label_int_delay = QtGui.QLabel(self.centralwidget)
|
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
|
|
|
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
|
sizePolicy.setHorizontalStretch(0)
|
|
|
sizePolicy.setVerticalStretch(0)
|
|
|
sizePolicy.setHeightForWidth(self.label_int_delay.sizePolicy().hasHeightForWidth())
|
|
@@ -440,6 +440,71 @@ class Ui_MainWindow(object):
|
|
|
self.label_int_trig.setObjectName(_fromUtf8("label_int_trig"))
|
|
|
self.gridLayout.addWidget(self.label_int_trig, 8, 0, 1, 1)
|
|
|
|
|
|
+#########################------ADC SETTINGS-----------------################################################
|
|
|
+ self.line_0 = QtGui.QFrame(self.centralwidget)
|
|
|
+ self.line_0.setFrameShape(QtGui.QFrame.HLine)
|
|
|
+ self.line_0.setFrameShadow(QtGui.QFrame.Sunken)
|
|
|
+ self.line_0.setObjectName(_fromUtf8("line_0"))
|
|
|
+ self.gridLayout.addWidget(self.line_0, 9, 0, 1, 1)
|
|
|
+ self.line_1 = QtGui.QFrame(self.centralwidget)
|
|
|
+ self.line_1.setFrameShape(QtGui.QFrame.HLine)
|
|
|
+ self.line_1.setFrameShadow(QtGui.QFrame.Sunken)
|
|
|
+ self.line_1.setObjectName(_fromUtf8("line_1"))
|
|
|
+ self.gridLayout.addWidget(self.line_1, 9, 1, 1, 1)
|
|
|
+
|
|
|
+ self.adc_label_settings = QtGui.QLabel(self.centralwidget)
|
|
|
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
|
+ sizePolicy.setHorizontalStretch(0)
|
|
|
+ sizePolicy.setVerticalStretch(0)
|
|
|
+ sizePolicy.setHeightForWidth(self.adc_label_settings.sizePolicy().hasHeightForWidth())
|
|
|
+ self.adc_label_settings.setSizePolicy(sizePolicy)
|
|
|
+ self.adc_label_settings.setObjectName(_fromUtf8("label_settings"))
|
|
|
+ self.gridLayout.addWidget(self.adc_label_settings, 10, 0, 1, 1)
|
|
|
+
|
|
|
+ self.spinBox_jesd_delay= QtGui.QSpinBox(self.centralwidget)
|
|
|
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
|
+ sizePolicy.setHorizontalStretch(0)
|
|
|
+ sizePolicy.setVerticalStretch(0)
|
|
|
+ sizePolicy.setHeightForWidth(self.spinBox_jesd_delay.sizePolicy().hasHeightForWidth())
|
|
|
+ self.spinBox_jesd_delay.setSizePolicy(sizePolicy)
|
|
|
+ self.spinBox_jesd_delay.setMaximumSize(QtCore.QSize(300, 16777215))
|
|
|
+ self.spinBox_jesd_delay.setObjectName(_fromUtf8("spinBox_jesd_delay"))
|
|
|
+ self.spinBox_jesd_delay.setMaximum(61)
|
|
|
+ self.gridLayout.addWidget(self.spinBox_jesd_delay, 11, 1, 1, 1)
|
|
|
+ self.label_jesd_delay = QtGui.QLabel(self.centralwidget)
|
|
|
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
|
|
|
+ sizePolicy.setHorizontalStretch(0)
|
|
|
+ sizePolicy.setVerticalStretch(0)
|
|
|
+ sizePolicy.setHeightForWidth(self.label_jesd_delay.sizePolicy().hasHeightForWidth())
|
|
|
+ self.label_jesd_delay.setSizePolicy(sizePolicy)
|
|
|
+ self.label_jesd_delay.setObjectName(_fromUtf8("label_jesd_delay"))
|
|
|
+ self.gridLayout.addWidget(self.label_jesd_delay, 11, 0, 1, 1)
|
|
|
+
|
|
|
+
|
|
|
+##############################----------tx_trig-------##########################################################
|
|
|
+ # self.pushButton_tx_trig = QtGui.QPushButton(self.centralwidget)
|
|
|
+ # sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
|
|
+ # sizePolicy.setHorizontalStretch(0)
|
|
|
+ # sizePolicy.setVerticalStretch(0)
|
|
|
+ # sizePolicy.setHeightForWidth(self.pushButton_tx_trig.sizePolicy().hasHeightForWidth())
|
|
|
+ # self.pushButton_tx_trig.setSizePolicy(sizePolicy)
|
|
|
+ # self.pushButton_tx_trig.setMaximumSize(QtCore.QSize(800, 16777215))
|
|
|
+ # self.pushButton_tx_trig.setObjectName(_fromUtf8("pushButton_tx_trig"))
|
|
|
+ # self.gridLayout.addWidget(self.pushButton_tx_trig, 11, 0, 1, 1)
|
|
|
+
|
|
|
+######################################################################################################
|
|
|
+##############################-------phase shifter------##########################################################
|
|
|
+ self.pushButton_phase_swap = QtGui.QPushButton(self.centralwidget)
|
|
|
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
|
|
+ sizePolicy.setHorizontalStretch(0)
|
|
|
+ sizePolicy.setVerticalStretch(0)
|
|
|
+ sizePolicy.setHeightForWidth(self.pushButton_phase_swap.sizePolicy().hasHeightForWidth())
|
|
|
+ self.pushButton_phase_swap.setSizePolicy(sizePolicy)
|
|
|
+ self.pushButton_phase_swap.setMaximumSize(QtCore.QSize(800, 16777215))
|
|
|
+ self.pushButton_phase_swap.setObjectName(_fromUtf8("pushButton_phase_swap"))
|
|
|
+ self.gridLayout.addWidget(self.pushButton_phase_swap, 12, 0, 1, 1)
|
|
|
+
|
|
|
+######################################################################################################
|
|
|
|
|
|
|
|
|
|
|
@@ -458,7 +523,7 @@ class Ui_MainWindow(object):
|
|
|
self.gridLayout_acq.setObjectName(_fromUtf8("gridLayout_acq"))
|
|
|
|
|
|
self.label_acq = QtGui.QLabel(self.centralwidget)
|
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
|
|
|
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
|
sizePolicy.setHorizontalStretch(0)
|
|
|
sizePolicy.setVerticalStretch(0)
|
|
|
sizePolicy.setHeightForWidth(self.label_pix_min.sizePolicy().hasHeightForWidth())
|
|
@@ -1093,6 +1158,8 @@ class Ui_MainWindow(object):
|
|
|
else:
|
|
|
self.pushButton_run.setStyleSheet("background-color : green")
|
|
|
self.pushButton_run.setText(_translate("MainWindow", "RUN", None))
|
|
|
+ check_status()
|
|
|
+ led_update()
|
|
|
|
|
|
|
|
|
|
|
@@ -1109,6 +1176,8 @@ class Ui_MainWindow(object):
|
|
|
if (read_register("PCIE_RESET",hex=True) != "14021700"):
|
|
|
self.status_bar.showMessage('Error!', 1000)
|
|
|
self.textEdit.insertPlainText(u'\u26A0' + ' Communication failed with FPGA board... Check FPGA, the PCI-Express connection and reboot')
|
|
|
+ check_status()
|
|
|
+ led_update()
|
|
|
else:
|
|
|
self.status_bar.showMessage('Initializing board...', 5000)
|
|
|
subprocess.call(['./full_sequence.sh'])
|
|
@@ -1118,6 +1187,7 @@ class Ui_MainWindow(object):
|
|
|
self.spinBox_total_samples.setValue(100)
|
|
|
self.spinBox_skip_samples.setValue(0)
|
|
|
self.spinBox_int_trig.setValue(126)
|
|
|
+ self.spinBox_jesd_delay.setValue(50)
|
|
|
rst_slow_trigger_samples()
|
|
|
self.status_bar.showMessage('Board initialized', 1000)
|
|
|
self.textEdit.insertPlainText(subprocess.check_output(['./status.sh']))
|
|
@@ -1130,6 +1200,8 @@ class Ui_MainWindow(object):
|
|
|
if (read_register("PCIE_RESET",hex=True) != "14021700"):
|
|
|
self.status_bar.showMessage('Error!', 1000)
|
|
|
self.textEdit.insertPlainText(u'\u26A0' + ' Communication failed with FPGA board... Check FPGA, the PCI-Express connection and reboot')
|
|
|
+ check_status()
|
|
|
+ led_update()
|
|
|
else:
|
|
|
self.status_bar.showMessage('Initializing board...', 5000)
|
|
|
subprocess.call(['./full_sequence_ex_rf.sh'])
|
|
@@ -1139,6 +1211,7 @@ class Ui_MainWindow(object):
|
|
|
self.spinBox_total_samples.setValue(100)
|
|
|
self.spinBox_skip_samples.setValue(0)
|
|
|
self.spinBox_int_trig.setValue(126)
|
|
|
+ self.spinBox_jesd_delay.setValue(50)
|
|
|
rst_slow_trigger_samples()
|
|
|
self.status_bar.showMessage('Board initialized with external RF parameters', 1000)
|
|
|
self.textEdit.insertPlainText(subprocess.check_output(['./status.sh']))
|
|
@@ -1184,6 +1257,22 @@ class Ui_MainWindow(object):
|
|
|
write_reg("INTEG_DELAY",integration_delay_w)
|
|
|
return integration_delay_w
|
|
|
|
|
|
+
|
|
|
+ def tx_trig():
|
|
|
+ self.pushButton_run.setFlat(0)
|
|
|
+ subprocess.call(['./tx_trig_adcs.sh'])
|
|
|
+
|
|
|
+ def phase_swap():
|
|
|
+ self.pushButton_run.setFlat(0)
|
|
|
+ phase0 = 8
|
|
|
+ phase180 = 12296 #3008
|
|
|
+ phase_set = read_register("PHASE_SWAP", hex = False)
|
|
|
+ if (str(phase_set) == str(phase0)):
|
|
|
+ write_reg("PHASE_SWAP", str(phase180)) #3008
|
|
|
+ else:
|
|
|
+ write_reg("PHASE_SWAP", str(phase0)) #008
|
|
|
+
|
|
|
+
|
|
|
########################################################################################################################
|
|
|
def timescan():
|
|
|
self.textEdit.setText(timestamp())
|
|
@@ -1400,6 +1489,8 @@ class Ui_MainWindow(object):
|
|
|
self.spinBox_total_samples.setValue(read_register("FT_TO_ACQ"))
|
|
|
self.spinBox_skip_samples.setValue(read_register("FT_SKIP"))
|
|
|
self.spinBox_int_trig.setValue(read_register("CLK_DIV"))
|
|
|
+ self.spinBox_jesd_delay.setValue(read_register("JESD_DELAY"))
|
|
|
+
|
|
|
except:
|
|
|
self.status_bar.showMessage('Error!', 1000)
|
|
|
self.textEdit.insertPlainText(u'\u26A0' + ' Communication failed with FPGA board... Check FPGA, the PCI-Express connection and reboot')
|
|
@@ -1531,6 +1622,10 @@ class Ui_MainWindow(object):
|
|
|
self.spinBox_total_samples.valueChanged.connect(lambda: write_reg("FT_TO_ACQ",self.spinBox_total_samples.text()))
|
|
|
self.spinBox_skip_samples.valueChanged.connect(lambda: write_reg("FT_SKIP",self.spinBox_skip_samples.text()))
|
|
|
self.spinBox_int_trig.valueChanged.connect(lambda: write_reg("CLK_DIV",self.spinBox_int_trig.text()))
|
|
|
+ self.spinBox_jesd_delay.valueChanged.connect(lambda: write_reg("JESD_DELAY",self.spinBox_jesd_delay.text()))
|
|
|
+
|
|
|
+
|
|
|
+ self.pushButton_phase_swap.clicked.connect(phase_swap)
|
|
|
|
|
|
self.pushButton_file_path.clicked.connect(getDir)
|
|
|
self.pushButton_background_file.clicked.connect(get_background)
|
|
@@ -1580,6 +1675,9 @@ class Ui_MainWindow(object):
|
|
|
self.label_settings.setText(_translate("MainWindow", "KALYPSO settings", None))
|
|
|
self.pushButton_readsettings.setText(_translate("MainWindow", "Read-back", None))
|
|
|
self.label_settings.setFont(boldFont)
|
|
|
+ self.adc_label_settings.setText(_translate("MainWindow", "ADC settings", None))
|
|
|
+ self.adc_label_settings.setFont(boldFont)
|
|
|
+
|
|
|
self.label_int_time.setText(_translate("MainWindow", "Integration Time (ns)", None))
|
|
|
self.label_int_delay.setText(_translate("MainWindow", "Integration Delay", None))
|
|
|
self.label_gott_gain.setText(_translate("MainWindow", "GOTTHARD Gain", None))
|
|
@@ -1592,11 +1690,14 @@ class Ui_MainWindow(object):
|
|
|
self.label_skip_samples.setText(_translate("MainWindow", "Fast-trigger skip", None))
|
|
|
# self.label_int_trig_text.setText(_translate("MainWindow", "Internal trigger (0 = external trigger)", None))
|
|
|
# self.label_int_trig_text.setFont(boldFont)
|
|
|
+
|
|
|
+ self.label_jesd_delay.setText(_translate("MainWindow", "JESD delay", None))
|
|
|
+ self.pushButton_phase_swap.setText(_translate("MainWindow", "Phase swap", None))
|
|
|
self.label_int_trig.setText(_translate("MainWindow", "Internal trig. DIV (0 = ext)", None))
|
|
|
self.label_controls.setText(_translate("MainWindow", "KALYPSO operation", None))
|
|
|
self.label_controls.setFont(boldFont)
|
|
|
- self.pushButton_init_board.setText(_translate("MainWindow", "Init Board", None))
|
|
|
- self.pushButton_init_board_ex_rf.setText(_translate("MainWindow", "Init Board (Soleil)", None))
|
|
|
+ self.pushButton_init_board.setText(_translate("MainWindow", "Internal CLK", None))
|
|
|
+ self.pushButton_init_board_ex_rf.setText(_translate("MainWindow", "External CLK", None))
|
|
|
|
|
|
|
|
|
self.pushButton_timescan.setText(_translate("MainWindow", "Timescan", None))
|