def findNewValue(self, mode="linear"): """ Find new value for this parameter """ if str.lower(mode) == "linear": self.cnt += 1 if self.cnt == self.paramRepeat: # Done this one, next step self.cnt = 0 newval = self.paramValueItem.getValue() + self.paramStep if newval > self.paramRange[1]: newval = self.paramRange[0] self.rangeComplete.emit(self.paramNum) # Cast type to required value newval = self.paramType(newval) self.paramValueItem.setValue(newval) parameter = self.paramScript + [newval] try: Parameter.setParameter(parameter) except: raise StopIteration("Choose a valid Parameter Path/Value combination. Got: " + str(parameter)) else: raise ValueError("Unknown Increment Type %s" % mode)
def updateParams(self, _=None): rng = self.findParam('range').getValue() # Force to be valid values curval = self.findParam('curval').getValue() curval = max(curval, rng[0]) curval = min(curval, rng[1]) self.findParam('curval').setLimits(rng) self.findParam('curval').setValue(curval) self.paramRange = rng self.paramValueItem = self.findParam('curval') self.paramStep = self.findParam('step').getValue() self.paramRepeat = self.findParam('repeat').getValue() self.paramType = self.findParam('datatype').getValue() try: self.paramScript = eval(self.findParam('parampath').getValue()) except SyntaxError as e: logging.error('Syntax Error: %s' % str(e)) try: Parameter.setParameter(self.paramScript+[curval]) except: pass self.tracesrequired = math.ceil(((self.paramRange[1] - self.paramRange[0]) / self.paramStep) * self.paramRepeat)+1 self.tracesreqChanged.emit(self.paramNum, self.tracesrequired)
def updateParams(self, _=None): rng = self.findParam("range").getValue() # Force to be valid values curval = self.findParam("curval").getValue() curval = max(curval, rng[0]) curval = min(curval, rng[1]) self.findParam("curval").setLimits(rng) self.findParam("curval").setValue(curval) self.paramRange = rng self.paramValueItem = self.findParam("curval") self.paramStep = self.findParam("step").getValue() self.paramRepeat = self.findParam("repeat").getValue() self.paramType = self.findParam("datatype").getValue() try: self.paramScript = eval(self.findParam("parampath").getValue()) except SyntaxError as e: logging.error("Syntax Error: %s" % str(e)) try: Parameter.setParameter(self.paramScript + [curval]) except: pass self.tracesrequired = ( math.ceil(((self.paramRange[1] - self.paramRange[0]) / self.paramStep) * self.paramRepeat) + 1 ) self.tracesreqChanged.emit(self.paramNum, self.tracesrequired)
def findNewValue(self, mode="linear"): """ Find new value for this parameter """ if str.lower(mode) == "linear": self.cnt += 1 if self.cnt == self.paramRepeat: # Done this one, next step self.cnt = 0 newval = self.paramValueItem.getValue() + self.paramStep if newval > self.paramRange[1]: newval = self.paramRange[0] self.rangeComplete.emit(self.paramNum) # Cast type to required value newval = self.paramType(newval) self.paramValueItem.setValue(newval) parameter = self.paramScript+[newval] try: Parameter.setParameter(parameter) except: raise StopIteration("Choose a valid Parameter Path/Value combination. Got: " + str(parameter)) else: raise ValueError("Unknown Increment Type %s" % mode)
def dcmTimeout(self): try: self.qtadc.sc.getStatus() # The following happen with signals, so a failure will likely occur outside of the try...except # For this reason we do the call to .getStatus() to verify USB connection first Parameter.setParameter(['OpenADC', 'Clock Setup', 'Refresh Status', None], blockSignal=True) Parameter.setParameter(['OpenADC', 'Trigger Setup', 'Refresh Status', None], blockSignal=True) except Exception as e: self.dis() raise e
def dcmTimeout(self): if self.connectStatus.value(): try: self.qtadc.sc.getStatus() # The following happen with signals, so a failure will likely occur outside of the try...except # For this reason we do the call to .getStatus() to verify USB connection first Parameter.setParameter(['OpenADC', 'Clock Setup', 'Refresh Status', None], blockSignal=True) Parameter.setParameter(['OpenADC', 'Trigger Setup', 'Refresh Status', None], blockSignal=True) except USBError: self.dis() raise Warning("Error in the scope. It may have been disconnected.") except Exception as e: self.dis() raise e
def __init__(self, parent): super(GlitchExplorerDialog, self).__init__(parent) self.setWindowTitle("Glitch Explorer") self.setMinimumWidth(500) self.mainLayout = QVBoxLayout() self.mainSplitter = QSplitter(self) self.mainSplitter.setOrientation(Qt.Vertical) self.tableList = [] self.tuneParamList = [] #Add default table self.table = QTableWidget(1,1) # self.table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.mainSplitter.addWidget(self.table) self.getParams().register() self.getParams().addChildren([ {'name':'Clear Output Table', 'type':'action', 'action':self.clearTable}, {'name':'Plot Widget', 'type':'action', 'action':self.openPlotWidget}, {'name':'Reset', 'type':'action', 'action':self.reset, 'tip':"Resets all Tuning Parameters to its minimum value."}, {'name':'Tuning Parameters', 'key':'numtune', 'type':'int', 'value':0, 'limits':(0, 4), 'action':self.updateParameters, 'readonly':False}, {'name':'Traces Required', 'key':'tracesreq', 'type':'int', 'value':1, 'limits':(1, 1E99), 'readonly':True, 'children':[ {'name':'Use this value', 'type':'action', 'action':lambda _: Parameter.setParameter(['Generic Settings', 'Acquisition Settings', 'Number of Traces',self.findParam('tracesreq').getValue()])}, ]}, {'name':'Normal Response', 'type':'str', 'key':'normalresp', 'value':'s.startswith("Bad")'}, {'name':'Successful Response', 'type':'str', 'key':'successresp', 'value':'s.startswith("Welcome")'}, {'name':'Recordings', 'type':'group', 'expanded':False, 'children':[ {'name':'Load existing', 'type':'action', 'key':'open', 'action':lambda _:self.loadRecordings()}, {'name':'Autosave Multi-Capture Results', 'type':'bool', 'key':'saveresults', 'value':True}, {'name':'Autosaved filename', 'type':'str', 'key':'savefilename', 'value':'', "readonly":True}, {'name':'Notes', 'type':'text', 'key':'savenotes', 'value':""}, ]}, ]) self.paramTree = ParameterTree() self.paramTree.addParameters(self.getParams()._PyQtGraphParameter) self.mainSplitter.addWidget(self.paramTree) self.statusLabel = QLabel("") self.mainSplitter.addWidget(self.statusLabel) # self.mainSplitter.setHandleWidth(100) self.mainLayout.addWidget(self.mainSplitter) self.setLayout(self.mainLayout) self.hide() #Do an update self.table.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) self.table.horizontalHeader().setResizeMode(QHeaderView.Interactive) self.clearTable() self._campaignRunning = False
def setParameter(self, pathAndValue): """Set the parameter value, given its path. It should be registered in Parameter.registeredParameters""" Parameter.setParameter(pathAndValue)
def __init__(self, parent): super(GlitchExplorerDialog, self).__init__(parent) self.setWindowTitle("Glitch Explorer") self.setMinimumWidth(500) self.mainLayout = QVBoxLayout() self.mainSplitter = QSplitter(self) self.mainSplitter.setOrientation(Qt.Vertical) self.tableList = [] self.tuneParamList = [] # Add default table self.table = QTableWidget(1, 1) # self.table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.mainSplitter.addWidget(self.table) self.getParams().register() self.getParams().addChildren( [ {"name": "Clear Output Table", "type": "action", "action": self.clearTable}, {"name": "Plot Widget", "type": "action", "action": self.openPlotWidget}, { "name": "Reset", "type": "action", "action": self.reset, "tip": "Resets all Tuning Parameters to its minimum value.", }, { "name": "Tuning Parameters", "key": "numtune", "type": "int", "value": 0, "limits": (0, 4), "action": self.updateParameters, "readonly": False, }, { "name": "Traces Required", "key": "tracesreq", "type": "int", "value": 1, "limits": (1, 1e99), "readonly": True, "children": [ { "name": "Use this value", "type": "action", "action": lambda _: Parameter.setParameter( [ "Generic Settings", "Acquisition Settings", "Number of Traces", self.findParam("tracesreq").getValue(), ] ), } ], }, {"name": "Normal Response", "type": "str", "key": "normalresp", "value": 's.startswith("Bad")'}, { "name": "Successful Response", "type": "str", "key": "successresp", "value": 's.startswith("Welcome")', }, { "name": "Recordings", "type": "group", "expanded": False, "children": [ { "name": "Load existing", "type": "action", "key": "open", "action": lambda _: self.loadRecordings(), }, {"name": "Autosave Multi-Capture Results", "type": "bool", "key": "saveresults", "value": True}, { "name": "Autosaved filename", "type": "str", "key": "savefilename", "value": "", "readonly": True, }, {"name": "Notes", "type": "text", "key": "savenotes", "value": ""}, ], }, ] ) self.paramTree = ParameterTree() self.paramTree.addParameters(self.getParams()._PyQtGraphParameter) self.mainSplitter.addWidget(self.paramTree) self.statusLabel = QLabel("") self.mainSplitter.addWidget(self.statusLabel) # self.mainSplitter.setHandleWidth(100) self.mainLayout.addWidget(self.mainSplitter) self.setLayout(self.mainLayout) self.hide() # Do an update self.table.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) self.table.horizontalHeader().setResizeMode(QHeaderView.Interactive) self.clearTable() self._campaignRunning = False
def setParameter(self, pathAndValue): """Set the parameter value, given its path. It should be registered in Parameter.registeredParameters""" Parameter.setParameter(pathAndValue)