allowing pyctbgui to work for xilinx ctb (#1079)

* allowing pyctbgui to work for xilinx ctb

* slowadc and adc enable (only 10g) allowed for xilinx ctb
This commit is contained in:
maliakal_d 2025-01-31 12:24:05 +01:00 committed by GitHub
parent e6e260d8ca
commit 0e45ae189d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 166 additions and 84 deletions

View File

@ -14,6 +14,8 @@ from pyctbgui.utils.defines import Defines
import pyctbgui.utils.pixelmap as pm import pyctbgui.utils.pixelmap as pm
from pyctbgui.utils.recordOrApplyPedestal import recordOrApplyPedestal from pyctbgui.utils.recordOrApplyPedestal import recordOrApplyPedestal
from slsdet import detectorType
if typing.TYPE_CHECKING: if typing.TYPE_CHECKING:
from pyctbgui.services import AcquisitionTab, PlotTab from pyctbgui.services import AcquisitionTab, PlotTab
@ -30,6 +32,7 @@ class AdcTab(QtWidgets.QWidget):
self.acquisitionTab: AcquisitionTab | None = None self.acquisitionTab: AcquisitionTab | None = None
self.legend: LegendItem | None = None self.legend: LegendItem | None = None
self.logger = logging.getLogger('AdcTab') self.logger = logging.getLogger('AdcTab')
self.tengiga = True
def setup_ui(self): def setup_ui(self):
self.plotTab = self.mainWindow.plotTab self.plotTab = self.mainWindow.plotTab
@ -42,6 +45,12 @@ class AdcTab(QtWidgets.QWidget):
self.legend.clear() self.legend.clear()
# subscribe to toggle legend # subscribe to toggle legend
self.plotTab.subscribeToggleLegend(self.updateLegend) self.plotTab.subscribeToggleLegend(self.updateLegend)
if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
self.view.checkBoxADC0_15Inv.setDisabled(True)
self.view.checkBoxADC16_31Inv.setDisabled(True)
self.view.lineEditADCInversion.setDisabled(True)
self.view.labelADCInversion.setDisabled(True)
def initializeAllAnalogPlots(self): def initializeAllAnalogPlots(self):
self.mainWindow.plotAnalogWaveform = pg.plot() self.mainWindow.plotAnalogWaveform = pg.plot()
@ -67,7 +76,8 @@ class AdcTab(QtWidgets.QWidget):
def connect_ui(self): def connect_ui(self):
for i in range(Defines.adc.count): for i in range(Defines.adc.count):
getattr(self.view, f"checkBoxADC{i}Inv").stateChanged.connect(partial(self.setADCInv, i)) if self.det.type == detectorType.CHIPTESTBOARD:
getattr(self.view, f"checkBoxADC{i}Inv").stateChanged.connect(partial(self.setADCInv, i))
getattr(self.view, f"checkBoxADC{i}En").stateChanged.connect(partial(self.setADCEnable, i)) getattr(self.view, f"checkBoxADC{i}En").stateChanged.connect(partial(self.setADCEnable, i))
getattr(self.view, f"checkBoxADC{i}Plot").stateChanged.connect(partial(self.setADCEnablePlot, i)) getattr(self.view, f"checkBoxADC{i}Plot").stateChanged.connect(partial(self.setADCEnablePlot, i))
getattr(self.view, f"pushButtonADC{i}").clicked.connect(partial(self.selectADCColor, i)) getattr(self.view, f"pushButtonADC{i}").clicked.connect(partial(self.selectADCColor, i))
@ -77,15 +87,17 @@ class AdcTab(QtWidgets.QWidget):
self.view.checkBoxADC0_15Plot.stateChanged.connect(partial(self.setADCEnablePlotRange, 0, Defines.adc.half)) self.view.checkBoxADC0_15Plot.stateChanged.connect(partial(self.setADCEnablePlotRange, 0, Defines.adc.half))
self.view.checkBoxADC16_31Plot.stateChanged.connect( self.view.checkBoxADC16_31Plot.stateChanged.connect(
partial(self.setADCEnablePlotRange, Defines.adc.half, Defines.adc.count)) partial(self.setADCEnablePlotRange, Defines.adc.half, Defines.adc.count))
self.view.checkBoxADC0_15Inv.stateChanged.connect(partial(self.setADCInvRange, 0, Defines.adc.half))
self.view.checkBoxADC16_31Inv.stateChanged.connect(
partial(self.setADCInvRange, Defines.adc.half, Defines.adc.count))
self.view.lineEditADCInversion.editingFinished.connect(self.setADCInvReg)
self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg) self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg)
if self.det.type == detectorType.CHIPTESTBOARD:
self.view.checkBoxADC0_15Inv.stateChanged.connect(partial(self.setADCInvRange, 0, Defines.adc.half))
self.view.checkBoxADC16_31Inv.stateChanged.connect(
partial(self.setADCInvRange, Defines.adc.half, Defines.adc.count))
self.view.lineEditADCInversion.editingFinished.connect(self.setADCInvReg)
def refresh(self): def refresh(self):
self.updateADCNames() self.updateADCNames()
self.updateADCInv() if self.det.type == detectorType.CHIPTESTBOARD:
self.updateADCInv()
self.updateADCEnable() self.updateADCEnable()
# ADCs Tab functions # ADCs Tab functions
@ -196,9 +208,11 @@ class AdcTab(QtWidgets.QWidget):
return decoder.decode(analog_array, pm.moench04_analog()) return decoder.decode(analog_array, pm.moench04_analog())
def getADCEnableReg(self): def getADCEnableReg(self):
retval = self.det.adcenable if self.det.type == detectorType.CHIPTESTBOARD:
if self.det.tengiga: self.tengiga = self.det.tengiga
retval = self.det.adcenable10g retval = self.det.adcenable10g
if not self.tengiga:
retval = self.det.adcenable
self.view.lineEditADCEnable.editingFinished.disconnect() self.view.lineEditADCEnable.editingFinished.disconnect()
self.view.lineEditADCEnable.setText("0x{:08x}".format(retval)) self.view.lineEditADCEnable.setText("0x{:08x}".format(retval))
self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg) self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg)
@ -207,8 +221,8 @@ class AdcTab(QtWidgets.QWidget):
def setADCEnableReg(self): def setADCEnableReg(self):
self.view.lineEditADCEnable.editingFinished.disconnect() self.view.lineEditADCEnable.editingFinished.disconnect()
try: try:
mask = int(self.mainWindow.lineEditADCEnable.text(), 16) mask = int(self.view.lineEditADCEnable.text(), 16)
if self.det.tengiga: if self.tengiga:
self.det.adcenable10g = mask self.det.adcenable10g = mask
else: else:
self.det.adcenable = mask self.det.adcenable = mask
@ -239,7 +253,7 @@ class AdcTab(QtWidgets.QWidget):
def setADCEnable(self, i): def setADCEnable(self, i):
checkBox = getattr(self.view, f"checkBoxADC{i}En") checkBox = getattr(self.view, f"checkBoxADC{i}En")
try: try:
if self.det.tengiga: if self.tengiga:
enableMask = manipulate_bit(checkBox.isChecked(), self.det.adcenable10g, i) enableMask = manipulate_bit(checkBox.isChecked(), self.det.adcenable10g, i)
self.det.adcenable10g = enableMask self.det.adcenable10g = enableMask
else: else:
@ -265,7 +279,7 @@ class AdcTab(QtWidgets.QWidget):
for i in range(start_nr, end_nr): for i in range(start_nr, end_nr):
mask = manipulate_bit(checkBox.isChecked(), mask, i) mask = manipulate_bit(checkBox.isChecked(), mask, i)
try: try:
if self.det.tengiga: if self.tengiga:
self.det.adcenable10g = mask self.det.adcenable10g = mask
else: else:
self.det.adcenable = mask self.det.adcenable = mask
@ -344,7 +358,7 @@ class AdcTab(QtWidgets.QWidget):
def setADCInvReg(self): def setADCInvReg(self):
self.view.lineEditADCInversion.editingFinished.disconnect() self.view.lineEditADCInversion.editingFinished.disconnect()
try: try:
self.det.adcinvert = int(self.mainWindow.lineEditADCInversion.text(), 16) self.det.adcinvert = int(self.view.lineEditADCInversion.text(), 16)
except Exception as e: except Exception as e:
QtWidgets.QMessageBox.warning(self.mainWindow, "ADC Inversion Fail", str(e), QtWidgets.QMessageBox.Ok) QtWidgets.QMessageBox.warning(self.mainWindow, "ADC Inversion Fail", str(e), QtWidgets.QMessageBox.Ok)
pass pass
@ -395,7 +409,12 @@ class AdcTab(QtWidgets.QWidget):
self.updateADCInv() self.updateADCInv()
def saveParameters(self) -> list[str]: def saveParameters(self) -> list[str]:
return [ if self.det.type == detectorType.CHIPTESTBOARD:
f"adcenable {self.view.lineEditADCEnable.text()}", return [
f"adcinvert {self.view.lineEditADCInversion.text()}", f"adcenable {self.view.lineEditADCEnable.text()}",
] f"adcinvert {self.view.lineEditADCInversion.text()}",
]
else:
return [
f"adcenable {self.view.lineEditADCEnable.text()}"
]

View File

@ -7,7 +7,7 @@ import zmq
from PyQt5 import QtWidgets, uic from PyQt5 import QtWidgets, uic
import logging import logging
from slsdet import readoutMode, runStatus from slsdet import readoutMode, runStatus, detectorType
from pyctbgui.utils.defines import Defines from pyctbgui.utils.defines import Defines
from pyctbgui.utils.numpyWriter.npy_writer import NumpyFileManager from pyctbgui.utils.numpyWriter.npy_writer import NumpyFileManager
from pyctbgui.utils.numpyWriter.npz_writer import NpzFileWriter from pyctbgui.utils.numpyWriter.npz_writer import NpzFileWriter
@ -49,20 +49,37 @@ class AcquisitionTab(QtWidgets.QWidget):
self.adcTab = self.mainWindow.adcTab self.adcTab = self.mainWindow.adcTab
self.plotTab = self.mainWindow.plotTab self.plotTab = self.mainWindow.plotTab
self.toggleStartButton(False) self.toggleStartButton(False)
if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
self.view.labelRunF.setDisabled(True)
self.view.labelADCF.setDisabled(True)
self.view.labelADCPhase.setDisabled(True)
self.view.labelADCPipeline.setDisabled(True)
self.view.labelDBITF.setDisabled(True)
self.view.labelDBITPhase.setDisabled(True)
self.view.labelDBITPipeline.setDisabled(True)
self.view.spinBoxRunF.setDisabled(True)
self.view.spinBoxADCF.setDisabled(True)
self.view.spinBoxADCPhase.setDisabled(True)
self.view.spinBoxADCPipeline.setDisabled(True)
self.view.spinBoxDBITF.setDisabled(True)
self.view.spinBoxDBITPhase.setDisabled(True)
self.view.spinBoxDBITPipeline.setDisabled(True)
def connect_ui(self): def connect_ui(self):
# For Acquistions Tab # For Acquistions Tab
self.view.comboBoxROMode.currentIndexChanged.connect(self.setReadOut) self.view.comboBoxROMode.currentIndexChanged.connect(self.setReadOut)
self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency)
self.view.spinBoxTransceiver.editingFinished.connect(self.setTransceiver) self.view.spinBoxTransceiver.editingFinished.connect(self.setTransceiver)
self.view.spinBoxAnalog.editingFinished.connect(self.setAnalog) self.view.spinBoxAnalog.editingFinished.connect(self.setAnalog)
self.view.spinBoxDigital.editingFinished.connect(self.setDigital) self.view.spinBoxDigital.editingFinished.connect(self.setDigital)
self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency)
self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase) if self.det.type == detectorType.CHIPTESTBOARD:
self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline) self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency)
self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency)
self.view.spinBoxDBITPhase.editingFinished.connect(self.setDBITPhase) self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase)
self.view.spinBoxDBITPipeline.editingFinished.connect(self.setDBITPipeline) self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline)
self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency)
self.view.spinBoxDBITPhase.editingFinished.connect(self.setDBITPhase)
self.view.spinBoxDBITPipeline.editingFinished.connect(self.setDBITPipeline)
self.view.checkBoxFileWriteRaw.stateChanged.connect(self.setFileWrite) self.view.checkBoxFileWriteRaw.stateChanged.connect(self.setFileWrite)
self.view.checkBoxFileWriteNumpy.stateChanged.connect(self.setFileWriteNumpy) self.view.checkBoxFileWriteNumpy.stateChanged.connect(self.setFileWriteNumpy)
@ -77,16 +94,19 @@ class AcquisitionTab(QtWidgets.QWidget):
def refresh(self): def refresh(self):
self.getReadout() self.getReadout()
self.getRunFrequency()
self.getTransceiver() self.getTransceiver()
self.getAnalog() self.getAnalog()
self.getDigital() self.getDigital()
self.getADCFrequency()
self.getADCPhase() if self.det.type == detectorType.CHIPTESTBOARD:
self.getADCPipeline() self.getRunFrequency()
self.getDBITFrequency() self.getADCFrequency()
self.getDBITPhase() self.getADCPhase()
self.getDBITPipeline() self.getADCPipeline()
self.getDBITFrequency()
self.getDBITPhase()
self.getDBITPipeline()
self.getFileWrite() self.getFileWrite()
self.getFileName() self.getFileName()
self.getFilePath() self.getFilePath()
@ -697,23 +717,39 @@ class AcquisitionTab(QtWidgets.QWidget):
self.socket.subscribe("") self.socket.subscribe("")
def saveParameters(self) -> list[str]: def saveParameters(self) -> list[str]:
return [ if self.det.type == detectorType.CHIPTESTBOARD:
f'romode {self.view.comboBoxROMode.currentText().lower()}', return [
f'runclk {self.view.spinBoxRunF.value()}', f'romode {self.view.comboBoxROMode.currentText().lower()}',
f'adcclk {self.view.spinBoxADCF.value()}', f'runclk {self.view.spinBoxRunF.value()}',
f'adcphase {self.view.spinBoxADCPhase.value()}', f'adcclk {self.view.spinBoxADCF.value()}',
f'adcpipeline {self.view.spinBoxADCPipeline.value()}', f'adcphase {self.view.spinBoxADCPhase.value()}',
f'dbitclk {self.view.spinBoxDBITF.value()}', f'adcpipeline {self.view.spinBoxADCPipeline.value()}',
f'dbitphase {self.view.spinBoxDBITPhase.value()}', f'dbitclk {self.view.spinBoxDBITF.value()}',
f'dbitpipeline {self.view.spinBoxDBITPipeline.value()}', f'dbitphase {self.view.spinBoxDBITPhase.value()}',
f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', f'dbitpipeline {self.view.spinBoxDBITPipeline.value()}',
f'fname {self.view.lineEditFileName.text()}', f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}',
f'fpath {self.view.lineEditFilePath.text()}', f'fname {self.view.lineEditFileName.text()}',
f'findex {self.view.spinBoxAcquisitionIndex.value()}', f'fpath {self.view.lineEditFilePath.text()}',
f'frames {self.view.spinBoxFrames.value()}', f'findex {self.view.spinBoxAcquisitionIndex.value()}',
f'triggers {self.view.spinBoxTriggers.value()}', f'frames {self.view.spinBoxFrames.value()}',
f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', f'triggers {self.view.spinBoxTriggers.value()}',
f'asamples {self.view.spinBoxAnalog.value()}', f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}',
f'dsamples {self.view.spinBoxDigital.value()}', f'asamples {self.view.spinBoxAnalog.value()}',
f'tsamples {self.view.spinBoxTransceiver.value()}', f'dsamples {self.view.spinBoxDigital.value()}',
] f'tsamples {self.view.spinBoxTransceiver.value()}',
]
else:
return [
f'romode {self.view.comboBoxROMode.currentText().lower()}',
f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}',
f'fname {self.view.lineEditFileName.text()}',
f'fpath {self.view.lineEditFilePath.text()}',
f'findex {self.view.spinBoxAcquisitionIndex.value()}',
f'frames {self.view.spinBoxFrames.value()}',
f'triggers {self.view.spinBoxTriggers.value()}',
f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}',
f'asamples {self.view.spinBoxAnalog.value()}',
f'dsamples {self.view.spinBoxDigital.value()}',
f'tsamples {self.view.spinBoxTransceiver.value()}',
]

View File

@ -4,7 +4,7 @@ from pathlib import Path
from PyQt5 import QtWidgets, uic from PyQt5 import QtWidgets, uic
from pyctbgui.utils.defines import Defines from pyctbgui.utils.defines import Defines
from slsdet import dacIndex from slsdet import dacIndex, detectorType
class DacTab(QtWidgets.QWidget): class DacTab(QtWidgets.QWidget):
@ -19,7 +19,14 @@ class DacTab(QtWidgets.QWidget):
dac = getattr(dacIndex, f"DAC_{i}") dac = getattr(dacIndex, f"DAC_{i}")
getattr(self.view, f"spinBoxDAC{i}").setValue(self.det.getDAC(dac)[0]) getattr(self.view, f"spinBoxDAC{i}").setValue(self.det.getDAC(dac)[0])
if self.det.highvoltage == 0: if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
self.view.checkBoxHighVoltage.setDisabled(True)
self.view.spinBoxHighVoltage.setDisabled(True)
self.view.labelHighVoltage.setDisabled(True)
self.view.labelADCVppDacName.setDisabled(True)
self.view.labelADCVpp.setDisabled(True)
self.view.comboBoxADCVpp.setDisabled(True)
elif self.det.highvoltage == 0:
self.view.spinBoxHighVoltage.setDisabled(True) self.view.spinBoxHighVoltage.setDisabled(True)
self.view.checkBoxHighVoltage.setChecked(False) self.view.checkBoxHighVoltage.setChecked(False)
@ -30,9 +37,11 @@ class DacTab(QtWidgets.QWidget):
getattr(self.view, f"checkBoxDAC{i}").stateChanged.connect(partial(self.setDACTristate, i)) getattr(self.view, f"checkBoxDAC{i}").stateChanged.connect(partial(self.setDACTristate, i))
getattr(self.view, f"checkBoxDAC{i}mV").stateChanged.connect(partial(self.getDAC, i)) getattr(self.view, f"checkBoxDAC{i}mV").stateChanged.connect(partial(self.getDAC, i))
self.view.comboBoxADCVpp.currentIndexChanged.connect(self.setADCVpp) if self.view.comboBoxADCVpp.isEnabled():
self.view.spinBoxHighVoltage.editingFinished.connect(self.setHighVoltage) self.view.comboBoxADCVpp.currentIndexChanged.connect(self.setADCVpp)
self.view.checkBoxHighVoltage.stateChanged.connect(self.setHighVoltage) if self.view.checkBoxHighVoltage.isEnabled():
self.view.spinBoxHighVoltage.editingFinished.connect(self.setHighVoltage)
self.view.checkBoxHighVoltage.stateChanged.connect(self.setHighVoltage)
def refresh(self): def refresh(self):
self.updateDACNames() self.updateDACNames()
@ -40,8 +49,10 @@ class DacTab(QtWidgets.QWidget):
self.getDACTristate(i) self.getDACTristate(i)
self.getDAC(i) self.getDAC(i)
self.getADCVpp() if self.view.comboBoxADCVpp.isEnabled():
self.getHighVoltage() self.getADCVpp()
if self.view.checkBoxHighVoltage.isEnabled():
self.getHighVoltage()
def updateDACNames(self): def updateDACNames(self):
for i, name in enumerate(self.det.getDacNames()): for i, name in enumerate(self.det.getDacNames()):
@ -165,6 +176,8 @@ class DacTab(QtWidgets.QWidget):
unit = " mV" if inMV else "" unit = " mV" if inMV else ""
commands.append(f"dac {i} {value}{unit}") commands.append(f"dac {i} {value}{unit}")
commands.append(f"adcvpp {self.view.comboBoxADCVpp.currentText()} mV") if self.view.comboBoxADCVpp.isEnabled():
commands.append(f"highvoltage {self.view.spinBoxHighVoltage.value()}") commands.append(f"adcvpp {self.view.comboBoxADCVpp.currentText()} mV")
if self.view.checkBoxHighVoltage.isEnabled():
commands.append(f"highvoltage {self.view.spinBoxHighVoltage.value()}")
return commands return commands

View File

@ -4,7 +4,7 @@ from pathlib import Path
from PyQt5 import QtWidgets, uic from PyQt5 import QtWidgets, uic
from pyctbgui.utils.defines import Defines from pyctbgui.utils.defines import Defines
from slsdet import dacIndex from slsdet import dacIndex, detectorType
class PowerSuppliesTab(QtWidgets.QWidget): class PowerSuppliesTab(QtWidgets.QWidget):
@ -18,7 +18,8 @@ class PowerSuppliesTab(QtWidgets.QWidget):
self.updateVoltageNames() self.updateVoltageNames()
for i in Defines.powerSupplies: for i in Defines.powerSupplies:
self.getVoltage(i) self.getVoltage(i)
self.getCurrent(i) if self.det.type == detectorType.CHIPTESTBOARD:
self.getCurrent(i)
def connect_ui(self): def connect_ui(self):
for i in Defines.powerSupplies: for i in Defines.powerSupplies:
@ -38,6 +39,12 @@ class PowerSuppliesTab(QtWidgets.QWidget):
if retval == 0: if retval == 0:
checkBox.setChecked(False) checkBox.setChecked(False)
spinBox.setDisabled(True) spinBox.setDisabled(True)
if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
label = getattr(self.view, f"labelI{i}")
label.setDisabled(True)
if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
self.view.spinBoxVChip.setDisabled(True)
def updateVoltageNames(self): def updateVoltageNames(self):
retval = self.det.getPowerNames() retval = self.det.getPowerNames()
@ -56,7 +63,10 @@ class PowerSuppliesTab(QtWidgets.QWidget):
spinBox.editingFinished.disconnect() spinBox.editingFinished.disconnect()
checkBox.stateChanged.disconnect() checkBox.stateChanged.disconnect()
retval = self.det.getMeasuredPower(voltageIndex)[0] if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
retval = self.det.getPower(voltageIndex)[0]
else:
retval = self.det.getMeasuredPower(voltageIndex)[0]
# spinBox.setValue(retval) # spinBox.setValue(retval)
if retval > 1: if retval > 1:
checkBox.setChecked(True) checkBox.setChecked(True)
@ -68,8 +78,9 @@ class PowerSuppliesTab(QtWidgets.QWidget):
spinBox.editingFinished.connect(partial(self.setVoltage, i)) spinBox.editingFinished.connect(partial(self.setVoltage, i))
checkBox.stateChanged.connect(partial(self.setVoltage, i)) checkBox.stateChanged.connect(partial(self.setVoltage, i))
self.getVChip() if self.det.type == detectorType.CHIPTESTBOARD:
self.getVChip()
# TODO: handle multiple events when pressing enter (twice) # TODO: handle multiple events when pressing enter (twice)
@ -91,7 +102,8 @@ class PowerSuppliesTab(QtWidgets.QWidget):
# TODO: (properly) disconnecting and connecting to handle multiple events (out of focus and pressing enter). # TODO: (properly) disconnecting and connecting to handle multiple events (out of focus and pressing enter).
spinBox.editingFinished.connect(partial(self.setVoltage, i)) spinBox.editingFinished.connect(partial(self.setVoltage, i))
self.getVoltage(i) self.getVoltage(i)
self.getCurrent(i) if self.det.type == detectorType.CHIPTESTBOARD:
self.getCurrent(i)
def getCurrent(self, i): def getCurrent(self, i):
label = getattr(self.view, f"labelI{i}") label = getattr(self.view, f"labelI{i}")

View File

@ -4,7 +4,7 @@ from pathlib import Path
from PyQt5 import uic, QtWidgets from PyQt5 import uic, QtWidgets
from pyctbgui.utils.defines import Defines from pyctbgui.utils.defines import Defines
from slsdet import dacIndex from slsdet import dacIndex, detectorType
class SlowAdcTab(QtWidgets.QWidget): class SlowAdcTab(QtWidgets.QWidget):
@ -17,7 +17,8 @@ class SlowAdcTab(QtWidgets.QWidget):
self.det = None self.det = None
def setup_ui(self): def setup_ui(self):
pass if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
self.view.pushButtonTemp.setDisabled(True)
def connect_ui(self): def connect_ui(self):
for i in range(Defines.slowAdc.count): for i in range(Defines.slowAdc.count):
@ -28,7 +29,8 @@ class SlowAdcTab(QtWidgets.QWidget):
self.updateSlowAdcNames() self.updateSlowAdcNames()
for i in range(Defines.slowAdc.count): for i in range(Defines.slowAdc.count):
self.updateSlowAdc(i) self.updateSlowAdc(i)
self.updateTemperature() if self.det.type == detectorType.CHIPTESTBOARD:
self.updateTemperature()
def updateSlowAdcNames(self): def updateSlowAdcNames(self):
for i, name in enumerate(self.mainWindow.det.getSlowADCNames()): for i, name in enumerate(self.mainWindow.det.getSlowADCNames()):

View File

@ -817,7 +817,7 @@ Only pressing enter on spinbox will set DAC (with this condition).</string>
</widget> </widget>
</item> </item>
<item row="18" column="0"> <item row="18" column="0">
<widget class="QLabel" name="label_125"> <widget class="QLabel" name="labelADCVppDacName">
<property name="text"> <property name="text">
<string>ADC_VPP</string> <string>ADC_VPP</string>
</property> </property>

View File

@ -118,7 +118,7 @@
</widget> </widget>
</item> </item>
<item row="1" column="4"> <item row="1" column="4">
<widget class="QLabel" name="label_70"> <widget class="QLabel" name="labelRunF">
<property name="text"> <property name="text">
<string>Run Clock Frequency (MHz):</string> <string>Run Clock Frequency (MHz):</string>
</property> </property>
@ -218,7 +218,7 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout_6"> <layout class="QGridLayout" name="gridLayout_6">
<item row="2" column="3"> <item row="2" column="3">
<widget class="QLabel" name="label_74"> <widget class="QLabel" name="labelDBITF">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>200</width> <width>200</width>
@ -231,7 +231,7 @@
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_71"> <widget class="QLabel" name="labelADCF">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -278,7 +278,7 @@
</widget> </widget>
</item> </item>
<item row="4" column="3"> <item row="4" column="3">
<widget class="QLabel" name="label_76"> <widget class="QLabel" name="labelDBITPipeline">
<property name="text"> <property name="text">
<string>DBIT Pipeline:</string> <string>DBIT Pipeline:</string>
</property> </property>
@ -338,21 +338,21 @@
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item row="4" column="0">
<widget class="QLabel" name="label_73"> <widget class="QLabel" name="labelADCPipeline">
<property name="text"> <property name="text">
<string>ADC Pipeline:</string> <string>ADC Pipeline:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_72"> <widget class="QLabel" name="labelADCPhase">
<property name="text"> <property name="text">
<string>ADC Clock Phase (a.u.):</string> <string>ADC Clock Phase (a.u.):</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="3"> <item row="3" column="3">
<widget class="QLabel" name="label_75"> <widget class="QLabel" name="labelDBITPhase">
<property name="text"> <property name="text">
<string>DBIT Clock Phase (a.u.):</string> <string>DBIT Clock Phase (a.u.):</string>
</property> </property>

View File

@ -19,7 +19,7 @@
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
<widget class="QFrame" name="frame_7"> <widget class="QFrame" name="frame_ADC">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
@ -3142,7 +3142,7 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout_20"> <layout class="QGridLayout" name="gridLayout_20">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_67"> <widget class="QLabel" name="labelADCInversion">
<property name="font"> <property name="font">
<font> <font>
<pointsize>10</pointsize> <pointsize>10</pointsize>
@ -3188,7 +3188,7 @@
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item row="0" column="3">
<widget class="QLabel" name="label_68"> <widget class="QLabel" name="labelADCEnable">
<property name="font"> <property name="font">
<font> <font>
<pointsize>10</pointsize> <pointsize>10</pointsize>

View File

@ -19,7 +19,7 @@
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
<widget class="QFrame" name="frame_4"> <widget class="QFrame" name="frame_slowadcs">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>

View File

@ -1056,7 +1056,7 @@ int getPower(enum DACINDEX ind) {
// dac powered off // dac powered off
if (dacValues[ind] == LTC2620_D_GetPowerDownValue()) { if (dacValues[ind] == LTC2620_D_GetPowerDownValue()) {
LOG(logWARNING, ("Power V%s powered down\n", powerNames[pwrIndex])); LOG(logWARNING, ("Power V%s is powered down\n", powerNames[pwrIndex]));
return LTC2620_D_GetPowerDownValue(); return LTC2620_D_GetPowerDownValue();
} }