def __init__(self, pvPrefix="", mnemonic="", channel=0): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvPrefix : `string` LakeShore331's device base naming of the PV (Process Variable); Like DXAS:LS331; mnemonic : `string` LakeShore331's mnemonic """ StandardDevice.__init__(self, mnemonic) self.lakeshore331 = Device( pvPrefix + ':', ('GetHEAT', 'GetHeaterRange', 'GetAPIDD', 'GetAPIDI', 'GetAPIDP', 'GetASetPoint', 'GetBPIDD', 'GetBPIDI', 'GetBPIDP', 'GetBSetPoint', 'GetCTempA', 'GetCTempB', 'GetKTempA', 'GetKTempB', 'SetHeaterRange', 'SetAPIDD', 'SetAPIDI', 'SetAPIDP', 'SetASetPoint', 'SetBPIDD', 'SetBPIDI', 'SetBPIDP', 'SetBSetPoint', 'GetCmode', 'SetCmode')) self.ls331_control = Device(pvPrefix + ':CONTROL:', ['SetAPID', 'SetBPID', 'Trigger']) if (channel == 1): self.ls331_channel = LakeShore_t.Channel_B else: # Default self.ls331_channel = LakeShore_t.Channel_A
def set_prefix(self, prefix): if prefix.endswith(':'): prefix = prefix[:-1] if prefix.endswith(':image1'): prefix = prefix[:-7] if prefix.endswith(':cam1'): prefix = prefix[:-5] self.prefix = prefix self.ad_img = Device(prefix + ':image1:', delim='', attrs=self.img_attrs) self.ad_cam = Device(prefix + ':cam1:', delim='', attrs=self.cam_attrs) self.title.SetLabel("Epics AreaDetector: %s" % prefix) self.connect_pvs()
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Power supply base naming of the PV (Process Variable) mnemonic : `string` Power supply mnemonic """ super().__init__(mnemonic) self.pvName = pvName self.voltage = Device(pvName + ':VOLTAGE:', self.RANGE) self.current = Device(pvName + ':CURRENT:', self.RANGE) self.program = Device(pvName + ':PROGRAM:', self.PROGRAM) self.programVoltage = Device(pvName + ':PROGRAM:VOLTAGE:', self.PROGRAM_SUB) self.programCurrent = Device(pvName + ':PROGRAM:CURRENT:', self.PROGRAM_SUB) self.resetPV = PV(pvName + ':RESET') self.mode = Device(pvName + ':MODE:', ['SET', 'GET', 'GET.PROC']) self.operationFlag = Device( pvName + ':', ['GET:OPERATION:FLAG', 'GET:OPERATION:FLAG.PROC']) self.timePV = PV(pvName + ':PROGRAM:TIME:ADD') self.error = Device(pvName + ':', ['ERROR', 'ERROR.PROC', 'ERROR:TEXT']) self.defaults() # Operation mode (voltage x current) is cached, so get it immediatelly self.procAndGet(self.mode, 'GET')
def set_prefix(self, prefix): if prefix.endswith(':'): prefix = prefix[:-1] if prefix.endswith(':image1'): prefix = prefix[:-7] if prefix.endswith(':cam1'): prefix = prefix[:-5] self.prefix = prefix self.ad_img = Device(prefix + ':image1:', delim='', attrs=self.img_attrs) self.ad_cam = Device(prefix + ':cam1:', delim='', attrs=self.cam_attrs) self.config_filesaver(prefix, self.format) w, h = self.GetImageSize() self.cam_name = prefix
def __init__(self, pvName, mnemonic): StandardDevice.__init__(self, mnemonic) self.pvName = pvName self.modem = Device(pvName + ':FONE:', ('discar.PROC', 'audio', 'numero', 'discar.VALA')) self._status = self.getStatus() self.modem.add_callback('discar.VALA', self.onStatusChange)
def set_prefix(self, prefix): self.prefix = prefix self.ad_img = Device(prefix + ':image1:', delim='', attrs=self.img_attrs) self.title.SetLabel("Fly2AD: %s" % prefix) self.connect_pvs()
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Power supply base naming of the PV (Process Variable) mnemonic : `string` Temperature controller mnemonic """ super().__init__(mnemonic) self.device = Device(pvName + ':', ['termopar', 'target', 'status', 'stepNum', 'programTable', 'programming', 'run', 'stop', 'advance', 'setPatternCount', 'timeScale', 'level1', 'reset', 'pause', 'sendCommand', 'pidtable', 'numPIDElements', 'paused', 'getP', 'getI', 'getD', 'power']) self.programmingDone = Event() self.newTemperature = Event() self.newStep = Event() self.device.add_callback('programming', self.onProgrammingChange) self.device.add_callback('termopar', self.onTemperatureChange) self.device.add_callback('stepNum', self.onStepChange) self.timeScaleCache = self.device.get('timeScale') self.pvName = pvName self.rate = 5 self.presetDone = False
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Motor's base naming of the PV (Process Variable) mnemonic : `string` Motor's mnemonic """ StandardDevice.__init__(self, mnemonic) self.pvName = pvName self.pvType = PV(pvName + ".RTYP", connection_timeout=3) if (self.pvType.status is None): raise Exception("Epics PV " + pvName + " seems to be offline or not reachable") if (self.pvType.get() != "motor"): raise Exception(pvName + " is not an Epics Motor") self.motor = Device( pvName + '.', ('RBV', 'VAL', 'DRBV', 'DVAL', 'RLV', 'RVAL', 'RRBV', 'STOP', 'MOVN', 'LLS', 'HLS', 'SSET', 'SUSE', 'SET', 'VELO', 'EGU', 'DMOV', 'STUP', 'DESC', 'BDST', 'HLM', 'LLM', 'DHLM', 'DLLM', 'VOF', 'FOF', 'OFF', 'DIR', 'LVIO', 'HOMF', 'HOMR')) self.motor.add_callback('DMOV', self.onStatusChange) self._moving = self.isMovingPV() self.motorDesc = self.getDescription()
def __init__(self, pvName, mnemonic, timeBased=False): """ **Constructor** To use this Keithley Class you must pass the PV (Process Variable) prefix. .. Note:: e.g.: SXS:K6514 Examples -------- >>> from KeithleyClass import * >>> name = Keithley('SOL:K6514', 'k1') """ Keithley6514.__init__(self, pvName, mnemonic) self.pvName = pvName self.timeBased = timeBased self.keithley = Device( pvName + ':', ('GetMed', 'SetMed', 'GetMedRank', 'SetMedRank', 'GetAver', 'SetAver', 'GetAverCoun', 'SetAverCoun', 'GetNPLC', 'SetNPLC', 'GetAutoZero', 'SetAutoZero', 'GetZeroCheck', 'SetZeroCheck', 'GetAverTCon', 'SetAverTCon', 'GetRange', 'SetRange', 'GetZeroCor', 'SetZeroCor', 'GetAutoCurrRange', 'SetAutoCurrRange' 'Count', 'ContinuesMode', 'CNT', 'OneMeasure')) self.pvMeasure = PV(pvName + ':' + 'Measure', auto_monitor=False) self._counting = self.isCountingPV() self.keithley.add_callback('CNT', self.onStatusChange)
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Power supply base naming of the PV (Process Variable) mnemonic : `string` Temperature controller mnemonic """ super().__init__(mnemonic) self.device = Device(pvName + ':', ['PV:RBV', 'SP','RR', 'RR:RBV', 'WSP:RBV', 'O' , 'O:RBV', 'MAN']) self.newTemp = Event() self.pvName = pvName
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Power supply base naming of the PV (Process Variable) mnemonic : `string` Temperature controller mnemonic """ super().__init__(mnemonic) self.device = Device(pvName + ':', ['READ_TEMP_LOOP_HSET', 'READ_TEMP_LOOP_TSET','READ_TEMP_SIG_TEMP', 'READ_RAMP_TEMP','READ_LEVEL_METER','READ_SAMPLE_FLOW','READ_SHIELD_FLOW', 'SET_RAMP_TEMP', 'SET_TEMP_LOOP_TSET']) self.newTemp = Event() self.pvName = pvName
def __init__(self, mnemonic, pvName, axis): super().__init__(mnemonic) self.hexapode = Device( pvName + ':', ('STATE#PANEL:SET', 'STATE#PANEL:GET', 'STATE#PANEL:BUTTON', 'MOVE#PARAM:CM', 'MOVE#PARAM:X', 'MOVE#PARAM:Y', 'MOVE#PARAM:Z', 'MOVE#PARAM:RX', 'MOVE#PARAM:RY', 'MOVE#PARAM:RZ', ':POSUSER:X', ':POSUSER:Y', ':POSUSER:Z', ':POSUSER:RX', ':POSUSER:RY', ':POSUSER:RZ', ':POSMACH:X', ':POSMACH:Y', ':POSMACH:Z', ':POSMACH:RX', ':POSMACH:RY', ':POSMACH:RZ', 'CFG#CS:1', 'CFG#CS:2', 'STATE#POSVALID?', 'CFG#CS?:1', 'CFG#CS?:2', 'CFG#CS?:3', 'CFG#CS?:4', 'CFG#CS?:5', 'CFG#CS?:6', 'CFG#CS?:7', 'CFG#CS?:8', 'CFG#CS?:9', 'CFG#CS?:10', 'CFG#CS?:11', 'CFG#CS?:12', 'CFG#CS?:13')) self.axis = axis self.axis_dic = {"X": 1, "Y": 2, "Z": 3, "RX": 4, "RY": 5, "RZ": 6} self.axis_number = self.axis_dic[self.axis] self.rbv = PV(pvName + ':' + 'POSUSER:'******'POSUSER:'******'POSUSER:'******'POSUSER:' + self.axis + ".SCAN", 9)
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Power supply base naming of the PV (Process Variable) mnemonic : `string` Temperature controller mnemonic """ super().__init__(mnemonic) self.pvName = pvName self.lauda = Device(pvName + ':', [ 'BLEVEL', 'BOVERTEMP', 'BPOWER', 'BSP', 'BSTATS', 'BTEMP', 'BTN', 'BTHERMOSTATS', 'WSP', 'WSTART', 'ETEMP', 'WPUMP', 'WSTOP', 'WTN' ]) self.newTemperature = Event() self.lauda.add_callback('BTEMP', self.onTemperatureChange) # Skip initial callback self.newTemperature.wait(1)
def __init__(self, pvName, mnemonic): """ **Constructor** See :class:`py4syn.epics.StandardDevice` Parameters ---------- pvName : `string` Power supply base naming of the PV (Process Variable) mnemonic : `string` Temperature controller mnemonic """ super().__init__(mnemonic) self.pvName = pvName self.linkam = Device(pvName + ':', ['setRate', 'setLimit', 'pending', 'temp', 'stop', 'setSpeed', 'pumpMode', 'status', 'start']) self.done = Event() self.newTemperature = Event() self.pending = bool(self.linkam.get('pending')) self.setRate(5) self.linkam.add_callback('pending', self.onPendingChange) self.linkam.add_callback('temp', self.onTemperatureChange)
def __init__(self, prefix): self.device = Device(prefix, delim=':', attrs=self.attrs) time.sleep(0.1) self.read_pvfile()
def connect_pvs(self, prefix): prefix = fix_ad_prefix(prefix) self.adcam = Device(prefix, delim='', attrs=self.ad_attrs) self.adcam.add_callback('cam1:ArrayCounter_RBV', self.onNewImage)
def set_prefix(self, prefix): self.prefix = prefix self.ad_img = Device(prefix, delim='', attrs=self.img_attrs) w, h = self.GetImageSize() self.cam_name = prefix