Beispiel #1
0
 def __init__ (self,pvPrefix="", mnemonic=""):
     """
     **Constructor**
     See :class:`py4syn.epics.StandardDevice`
     
     Parameters
     ----------
     pvPrefix : `string`
         Lauda's device base naming of the PV (Process Variable)
     mnemonic : `string`
         Lauda's mnemonic
     """
     StandardDevice.__init__(self, mnemonic)
     self.pvBTemp = PV(pvPrefix + ":BTEMP")
     self.pvETemp = PV(pvPrefix + ":ETEMP")
     self.pvBLevel = PV(pvPrefix+ ":BLEVEL")
     self.pvBSP = PV(pvPrefix+":BSP")
     self.pvBPower = PV(pvPrefix+":BPOWER") 
     self.pvBOverTemp = PV(pvPrefix+":BOVERTEMP")
     self.pvBTN = PV(pvPrefix+":BTN")
     self.pvBStatus = PV(pvPrefix + ":BSTATS")
     self.pvBThermoStatus = PV(pvPrefix + ":BTHERMOSTATS")
     self.pvWSP = PV(pvPrefix + ":WSP")
     self.pvWPump = PV(pvPrefix + ":WPUMP")
     self.pvWTN = PV(pvPrefix + ":WTN")
     self.pvWStart = PV(pvPrefix + ":WSTART")
     self.pvWStop = PV(pvPrefix + ":WSTOP")
    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')

        """
        StandardDevice.__init__(self, 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','GetCurrRange','SetCurrRange',
                                '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, mnemonic, description, backwardFormula,
                 forwardFormulasDict):
        """
        **Pseudo Motor class Constructor**

        Parameters
        ----------
        mnemonic : `string`
            Motor mnemonic

        description : `string`
            Motor Description

        backwardFormula : `string`
            Mathematical Formula used to calculate the Pseudo motor position based on other motors

        forwardFormulasDict : `dictionary`
            Dictionary containing mathematical relations to move each of the motors involved in the pseudo motor movement
        """
        StandardDevice.__init__(self, mnemonic)
        self.name = mnemonic

        self.description = description
        self.backFormula = backwardFormula
        self.forwardDict = forwardFormulasDict
Beispiel #4
0
 def __init__(self, pvStatusName="", pvControlName="", pvHutchName="", mnemonic="", invert=False):
     StandardDevice.__init__(self, mnemonic)
     self.delay = 0.01
     self.invert = invert
     self.pvStatus = PV(pvStatusName)
     self.pvControl = PV(pvControlName)
     self.pvHutch = PV(pvHutchName)
Beispiel #5
0
 def __init__(self, pvPrefix="", mnemonic=""):
     """
     **Constructor**
     See :class:`py4syn.epics.StandardDevice`
     
     Parameters
     ----------
     pvPrefix : `string`
         Lauda's device base naming of the PV (Process Variable)
     mnemonic : `string`
         Lauda's mnemonic
     """
     StandardDevice.__init__(self, mnemonic)
     self.pvBTemp = PV(pvPrefix + ":BTEMP")
     self.pvETemp = PV(pvPrefix + ":ETEMP")
     self.pvBLevel = PV(pvPrefix + ":BLEVEL")
     self.pvBSP = PV(pvPrefix + ":BSP")
     self.pvBPower = PV(pvPrefix + ":BPOWER")
     self.pvBOverTemp = PV(pvPrefix + ":BOVERTEMP")
     self.pvBTN = PV(pvPrefix + ":BTN")
     self.pvBStatus = PV(pvPrefix + ":BSTATS")
     self.pvBThermoStatus = PV(pvPrefix + ":BTHERMOSTATS")
     self.pvWSP = PV(pvPrefix + ":WSP")
     self.pvWPump = PV(pvPrefix + ":WPUMP")
     self.pvWTN = PV(pvPrefix + ":WTN")
     self.pvWStart = PV(pvPrefix + ":WSTART")
     self.pvWStop = PV(pvPrefix + ":WSTOP")
Beispiel #6
0
    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()
Beispiel #7
0
    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 __init__(self, pvRotaryMagnetName="", mnemonic=""):
     StandardDevice.__init__(self, mnemonic)
     self._active = False
     self._done = self.isDone()
     self.pvRotaryMagnetDESC = PV(pvRotaryMagnetName + ".DESC")
     self.pvRotaryMagnetVAL = PV(pvRotaryMagnetName + ".VAL",
                                 self.onValChange)
Beispiel #9
0
    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 == 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'))

        self.motor.add_callback('DMOV',self.onStatusChange)
        self._moving = self.isMovingPV()
        
        self.motorDesc = self.getDescription()
Beispiel #10
0
    def __init__(self, pvName, mnemonic, scalerObject=""):
        """
        **Constructor**

        Parameters
        ----------
        pvName : `string`
            Charge-Coupled Device (CCD)'s naming of the PV (Process Variable)
        mnemonic : `string`
            Device mnemonic
        scalerObject : `object`
            It represents logically the Scaler device
        """

        StandardDevice.__init__(self, mnemonic)
        self.pvAcquire = PV(pvName+":Acquire", callback=self.onAcquireChange)
        self.pvConfigWait = PV(pvName+":Wait", callback=self.onWaitChange)
        self.pvAutoIncrement = PV(pvName+":AutoIncrement")
        self.pvMinX = PV(pvName+":MinX")
        self.pvMinY = PV(pvName+":MinY")
        self.pvSizeX = PV(pvName+":SizeX")
        self.pvSizeY = PV(pvName+":SizeY")
        self.pvAcquireTime = PV(pvName+":AcquireTime")
        self.pvFileNumber = PV(pvName+":FileNumber")
        self.pvNumImages = PV(pvName+":NumImages")
        self.pvFilePath = PV(pvName+":FilePath")
        self.pvFileName = PV(pvName+":FileName")
        self.pvCommand = PV(pvName+":StrInput")
        self.pvCommandOut = PV(pvName+":StrOutput")
        self.scaler = scalerObject
        self._done = self.isDone()
        self._doneConfig = self.isDoneConfig()
        self.time = float(self.pvAcquireTime.get()/1000000) #Convert from microsecond to second
Beispiel #11
0
    def __init__(self, pvName, mnemonic, imageBufferQueue=None, processName=""):
        StandardDevice.__init__(self, mnemonic)
        self.processName = processName
        self.initCamera = True
        self.initNELM = True
        self.NCount = 0
        self.NData = 0
        self.imageBufferQueue = imageBufferQueue

        self.pvData = PV(pvName+":Data", auto_monitor=True)
        self.pvData.add_callback(self.onDataChange)

        self.pvAcquire = PV(pvName+":Acquire", callback=self.onAcquireChange, auto_monitor=True)
        self.pvAcquireRBV = PV(pvName+":Acquire_RBV", callback=self.onAcquireRBVChange, auto_monitor=True)
        self.pvNELM = PV(pvName+":Data.NELM", callback=self.onNELMChange)

        self._done = self.isDone()

        self.pvPixelSize = PV(pvName + ":PixelSize")
        self.pvCheckImage = PV(pvName + ":CheckImage")
        self.pvMinX = PV(pvName + ":MinX")
        self.pvMinY = PV(pvName + ":MinY")
        self.pvSizeX = PV(pvName + ":SizeX")
        self.pvSizeY = PV(pvName + ":SizeY")
        self.pvAcquireTime = PV(pvName+":AcquireTime")
        self.pvAcquireTimeBase = PV(pvName+":AcquireTimeBase")
        self.pvDelayTime = PV(pvName + ":DelayTime")
        self.pvDelayTimeBase = PV(pvName + ":DelayTimeBase")

        self.pvFileFormat = PV(pvName + ":FileFormat")
        self.pvFileName = PV(pvName + ":FileName")
        self.pvFileNumber = PV(pvName + ":FileNumber")
        self.pvFilePath = PV(pvName + ":FilePath")
    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')

        """
        StandardDevice.__init__(self, 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)
Beispiel #13
0
 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)
Beispiel #14
0
 def __init__(self, pvStatusName="", pvControlName="", pvHutchName="", mnemonic="", invert=False):
     StandardDevice.__init__(self, mnemonic)
     self.delay = 0.01
     self.invert = invert
     self.pvStatus = PV(pvStatusName)
     self.pvControl = PV(pvControlName)
     self.pvHutch = PV(pvHutchName)
Beispiel #15
0
    def __init__(self, pvName, mnemonic, scalerObject=""):
        """
        **Constructor**

        Parameters
        ----------
        pvName : `string`
            Charge-Coupled Device (CCD)'s naming of the PV (Process Variable)
        mnemonic : `string`
            Device mnemonic
        scalerObject : `object`
            It represents logically the Scaler device
        """

        StandardDevice.__init__(self, mnemonic)
        self.pvAcquire = PV(pvName + ":Acquire", callback=self.onAcquireChange)
        self.pvConfigWait = PV(pvName + ":Wait", callback=self.onWaitChange)
        self.pvAutoIncrement = PV(pvName + ":AutoIncrement")
        self.pvMinX = PV(pvName + ":MinX")
        self.pvMinY = PV(pvName + ":MinY")
        self.pvSizeX = PV(pvName + ":SizeX")
        self.pvSizeY = PV(pvName + ":SizeY")
        self.pvAcquireTime = PV(pvName + ":AcquireTime")
        self.pvFileNumber = PV(pvName + ":FileNumber")
        self.pvNumImages = PV(pvName + ":NumImages")
        self.pvFilePath = PV(pvName + ":FilePath")
        self.pvFileName = PV(pvName + ":FileName")
        self.pvCommand = PV(pvName + ":StrInput")
        self.pvCommandOut = PV(pvName + ":StrOutput")
        self.scaler = scalerObject
        self._done = self.isDone()
        self._doneConfig = self.isDoneConfig()
        self.time = float(self.pvAcquireTime.get() /
                          1000000)  #Convert from microsecond to second
Beispiel #16
0
    def __init__(self, pvScalerName="", numberOfChannels=1, mnemonic=""):
        StandardDevice.__init__(self, mnemonic)
        self._counting = False
        self.pvScalerTP = PV(
            pvScalerName +
            ".TP")  # envia para o IOC do cintilador o tempo de exposicao
        #self.pvScalerCNT = PV(pvScalerName+".CNT", self.onStatusChange) # envia para o IOC o disparo da medida
        self.pvScalerCNT = PV(pvScalerName +
                              ".CNT")  # envia para o IOC o disparo da medida
        self.pvScalerFREQ = PV(pvScalerName + ".FREQ")
        self.pvScalerVAL = PV(pvScalerName + ".VAL", self.onValChange)
        self.pvScalerCounters = []
        self.pvScalerGates = []
        self.pvScalerPresets = []

        # Initial State
        if (self.pvScalerCNT.get() == 0 and self.pvScalerVAL.get() == 0):
            self._counting = False

        for i in range(1, 2 + numberOfChannels):
            self.pvScalerCounters.append(
                PV(pvScalerName + ".S" + str(i),
                   auto_monitor=False))  # valor do contador i
            self.pvScalerGates.append(PV(pvScalerName + ".G" + str(i)))
            self.pvScalerPresets.append(PV(pvScalerName + ".PR" + str(i)))
 def __init__(self, pvNameIN, pvNameOUT, mnemonic, scalerObject=""):
     StandardDevice.__init__(self, mnemonic)
     # IN   DXAS:DIO:bi8         # 1.0   (read TTL OUT from CCD)
     # OUT  DXAS:DIO:bo17        # 6.1   (write Trigger IN to CCD start acquisition)
     self.pvAcquire = PV(pvNameOUT)
     self.pvMonitor = PV(pvNameIN, callback=self.onAcquireChange)
     self._done = self.isDone()
     self.countTime = 1
Beispiel #18
0
 def __init__(self, pvName="", pvHutchName="", mnemonic=""):
     StandardDevice.__init__(self, mnemonic)
     self.delay = 0.01
     self.pvFilter1 = PV(pvName+":DIO:XIA:Filter1")
     self.pvFilter2 = PV(pvName+":DIO:XIA:Filter2")
     self.pvFilter3 = PV(pvName+":DIO:XIA:Filter3")
     self.pvFilter4 = PV(pvName+":DIO:XIA:Filter4")
     self.pvHutch = PV(pvHutchName)
    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')

        """
        StandardDevice.__init__(self, 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)
Beispiel #20
0
 def __init__(self, pvName, mnemonic, scalerObject=""):
     StandardDevice.__init__(self, mnemonic)
     self.pvAcquire = PV(pvName+":cam1:Acquire", callback=self.onAcquireChange)
     self.pvNumImages = PV(pvName+":cam1:NumImages")
     self.pvFileName = PV(pvName+":cam1:FileName") 
     self.pvFilePath = PV(pvName+":cam1:FilePath") 
     self.pvAcquireTime = PV(pvName+":cam1:AcquireTime")
     self.pvFileNumber = PV(pvName+":cam1:FileNumber")
     self.pvArrayCounter = PV(pvName+":cam1:ArrayCounter")
     self.pvArrayCounterRBV = PV(pvName+":cam1:ArrayCounter_RBV")
     self.scaler = scalerObject
     self._done = self.isDone()
     self.time = self.pvAcquireTime.get()
Beispiel #21
0
 def __init__(self, pvName, mnemonic, scalerObject=""):
     StandardDevice.__init__(self, mnemonic)
     self.pvAcquire = PV(pvName + ":cam1:Acquire",
                         callback=self.onAcquireChange)
     self.pvNumImages = PV(pvName + ":cam1:NumImages")
     self.pvFileName = PV(pvName + ":cam1:FileName")
     self.pvFilePath = PV(pvName + ":cam1:FilePath")
     self.pvAcquireTime = PV(pvName + ":cam1:AcquireTime")
     self.pvFileNumber = PV(pvName + ":cam1:FileNumber")
     self.pvArrayCounter = PV(pvName + ":cam1:ArrayCounter")
     self.pvArrayCounterRBV = PV(pvName + ":cam1:ArrayCounter_RBV")
     self.scaler = scalerObject
     self._done = self.isDone()
     self.time = self.pvAcquireTime.get()
Beispiel #22
0
    def __init__(self, pvPrefix="", mnemonic=""):
        StandardDevice.__init__(self, mnemonic)
        self.pvBVAL_RBV = PV(pvPrefix + ":BVAL_RBV")
        self.pvBVAL = PV(pvPrefix + ":BVAL")
        self.pvBPOS = PV(pvPrefix + ":BPOS")
        self.pvSVON = PV(pvPrefix + ":SVON")
        self.pvRUNNING = PV(pvPrefix + ":RUNNING")
        self.pvRUNNING.add_callback(self.finish)
        self.pvJOB = PV(pvPrefix + ":JOB")
        self.pvGOJOB = PV(pvPrefix + ":GOJOB")
        self.pvSTA1 = PV(pvPrefix + ":STA1")
        self.pvSTA2 = PV(pvPrefix + ":STA2")

        self.motomanfinish = False
Beispiel #23
0
  def __init__ (self,pvPrefix="", mnemonic=""):
      StandardDevice.__init__(self, mnemonic)
      self.pvBVAL_RBV = PV(pvPrefix + ":BVAL_RBV")
      self.pvBVAL = PV(pvPrefix + ":BVAL")
      self.pvBPOS = PV(pvPrefix+ ":BPOS")
      self.pvSVON = PV(pvPrefix+":SVON")
      self.pvRUNNING = PV(pvPrefix+":RUNNING")
      self.pvRUNNING.add_callback(self.finish)
      self.pvJOB = PV(pvPrefix+":JOB") 
      self.pvGOJOB = PV(pvPrefix+":GOJOB")
      self.pvSTA1 = PV(pvPrefix+":STA1")
      self.pvSTA2 = PV(pvPrefix + ":STA2")
 
      self.motomanfinish = False
Beispiel #24
0
    def __init__ (self,pvPrefix, mnemonic):
        StandardDevice.__init__(self, mnemonic)
        self.pvAcquire = PV(pvPrefix + ":Acquire")
        self.pvTime = PV(pvPrefix + ":Time")
        self.pvDataRBV = PV(pvPrefix+ ":Data_RBV")
        self.pvAcquireRBV = PV(pvPrefix+":Acquire_RBV")
        self.pvAcquireRBV.add_callback(self.finish)
        self.pvSettings = PV(pvPrefix+":Settings") 
        self.pvFlatfield = PV(pvPrefix+":FlatfieldCorrection")
        self.pvFlatfieldRBV = PV(pvPrefix+":FlatfieldCorrection_RBV")
        self.pvFlip = PV(pvPrefix + ":FlipChannels")
        self.pvFlipRBV = PV(pvPrefix + ":FlipChannels_RBV")
 
        self.mythenfinish = (self.pvAcquireRBV.get() == 0)
Beispiel #25
0
 def __init__(self, pvName, mnemonic):
     StandardDevice.__init__(self, mnemonic)
     self.pvAcquire = PV(pvName + ":Acquire", callback=self.onAcquireChange)
     self.pvAcquire_RBV = PV(pvName + ":Acquire_RBV")
     self.pvAcquireTime = PV(pvName + ":AcquireTime")
     self.pvAcquireTime_RBV = PV(pvName + ":AcquireTime_RBV")
     self.pvNumImages = PV(pvName + ":NumImages")
     self.pvNumImages_RBV = PV(pvName + ":NumImages_RBV")
     self.pvNumImagesCounter_RBV = PV(pvName + ":NumImagesCounter_RBV")
     self.pvNumExposures = PV(pvName + ":NumExposures")
     self.pvNumExposures_RBV = PV(pvName + ":NumExposures_RBV")
     self.pvNumExposuresCounter_RBV = PV(pvName +
                                         ":NumExposuresCounter_RBV")
     self.pvImageMode = PV(pvName + ":ImageMode")
     self.pvImageMode_RBV = PV(pvName + ":ImageMode_RBV")
     self.pvTriggerMode = PV(pvName + ":TriggerMode")
     self.pvTriggerMode_RBV = PV(pvName + ":TriggerMode_RBV")
     self.pvFrameType = PV(pvName + ":FrameType")
     self.pvFrameType_RBV = PV(pvName + ":FrameType_RBV")
     self.pvGain = PV(pvName + ":LFGain")
     self.pvGain_RBV = PV(pvName + ":LFGain_RBV")
     self.pvNumAccumulations = PV(pvName + ":NumAccumulations")
     self.pvNumAccumulations_RBV = PV(pvName + ":NumAccumulations_RBV")
     self.pvNumAcquisitions = PV(pvName + ":NumAcquisitions")
     self.pvNumAcquisitions_RBV = PV(pvName + ":NumAcquisitions_RBV")
     self.pvNumAcquisitionsCounter_RBV = PV(pvName +
                                            ":NumAcquisitionsCounter_RBV")
     self.pvBackgroundEnable = PV(pvName + ":LFBackgroundEnable")
     self.pvBackgroundEnable_RBV = PV(pvName + ":LFBackgroundEnable_RBV")
     self.pvBackgroundPath = PV(pvName + ":LFBackgroundPath")
     self.pvBackgroundPath_RBV = PV(pvName + ":LFBackgroundPath_RBV")
     self.pvBackgroundFile = PV(pvName + ":LFBackgroundFile")
     self.pvBackgroundFile_RBV = PV(pvName + ":LFBackgroundFile_RBV")
     self.pvFilePath = PV(pvName + ":FilePath")
     self.pvFilePath_RBV = PV(pvName + ":LFFilePath_RBV")
     self.pvFileName = PV(pvName + ":FileName")
     self.pvFileName_RBV = PV(pvName + ":LFFileName_RBV")
     self.pvFileNumber = PV(pvName + ":FileNumber")
     self.pvFileNumber_RBV = PV(pvName + ":FileNumber_RBV")
     self.pvArrayCounter = PV(pvName + ":ArrayCounter")
     self.pvArrayCounter_RBV = PV(pvName + ":ArrayCounter_RBV")
     self.pvAutoIncrement = PV(pvName + ":AutoIncrement")
     self.pvAutoIncrement_RBV = PV(pvName + ":AutoIncrement_RBV")
     self.pvImageArrayData = PV(pvName + ":image1:ArrayData")
     # Current state
     self._done = self.isDone()
     self.time = self.pvAcquireTime_RBV.get()
     self.countTime = 1
     self.paused = False
    def __init__(self, mnemonic, backwardFormula):
        """
        **Pseudo Counter class Constructor**

        Parameters
        ----------
        mnemonic : `string`
            Counter mnemonic

        backwardFormula : `string`
            Mathematical Formula used to calculate the Pseudo counter value position based on other counters
        """
        StandardDevice.__init__(self, mnemonic)        
        self.name = mnemonic
        self.backFormula = backwardFormula
    def __init__(self, mnemonic, backwardFormula):
        """
        **Pseudo Counter class Constructor**

        Parameters
        ----------
        mnemonic : `string`
            Counter mnemonic

        backwardFormula : `string`
            Mathematical Formula used to calculate the Pseudo counter value position based on other counters
        """
        StandardDevice.__init__(self, mnemonic)
        self.name = mnemonic
        self.backFormula = backwardFormula
    def __init__(self, pvPrefix="", mnemonic=""):
        """
        **Constructor**
        See :class:`py4syn.epics.StandardDevice`

        Parameters
        ----------
        pvPrefix : `string`
            Blue Ribbon BD306's device base naming of the PV (Process Variable)
        mnemonic : `string`
            Blue Ribbon BD306's mnemonic
        """
        StandardDevice.__init__(self, mnemonic)

        self.pvP1 = PV(pvPrefix + ":P1")
        self.pvP2 = PV(pvPrefix + ":P2")
Beispiel #29
0
 def __init__(self, pvName, mnemonic):
     """
     **Constructor**
     See :class:`py4syn.epics.StandardDevice`
     See :class:`py4syn.epics.ICountable`
     
     Parameters
     ----------
     pvName : `string`
         PV name (Process Variable)
     mnemonic : `string`
         Mnemonic
     """
     StandardDevice.__init__(self, mnemonic)
     self.pvName = pvName
     self.pv = PV(pvName)
Beispiel #30
0
 def __init__(self, pvName, mnemonic, scalerObject=""):
     StandardDevice.__init__(self, mnemonic)
     self.pvAcquire = PV(pvName + ":Acquire", callback=self.onAcquireChange)
     self.pvAcquire_RBV = PV(pvName + ":Acquire_RBV")
     self.pvAcquireTime = PV(pvName + ":AcquireTime")
     self.pvAcquireTime_RBV = PV(pvName + ":AcquireTime_RBV")
     self.pvNumImages = PV(pvName + ":NumImages")
     self.pvNumImages_RBV = PV(pvName + ":NumImages_RBV")
     self.pvNumImagesCounter_RBV = PV(pvName + ":NumImagesCounter_RBV")
     self.pvNumExposures = PV(pvName + ":NumExposures") 
     self.pvNumExposures_RBV = PV(pvName + ":NumExposures_RBV")
     self.pvNumExposuresCounter_RBV = PV(pvName + ":NumExposuresCounter_RBV")
     self.pvImageMode = PV(pvName + ":ImageMode")
     self.pvImageMode_RBV = PV(pvName + ":ImageMode_RBV")
     self.pvTriggerMode = PV(pvName + ":TriggerMode")
     self.pvTriggerMode_RBV = PV(pvName + ":TriggerMode_RBV")
     self.pvFrameType = PV(pvName + ":FrameType")
     self.pvFrameType_RBV = PV(pvName + ":FrameType_RBV")
     self.pvGain = PV(pvName + ":LFGain")
     self.pvGain_RBV = PV(pvName + ":LFGain_RBV")
     self.pvNumAccumulations = PV(pvName + ":NumAccumulations")
     self.pvNumAccumulations_RBV = PV(pvName + ":NumAccumulations_RBV")
     self.pvNumAcquisitions = PV(pvName + ":NumAcquisitions")
     self.pvNumAcquisitions_RBV = PV(pvName + ":NumAcquisitions_RBV")
     self.pvNumAcquisitionsCounter_RBV = PV(pvName + ":NumAcquisitionsCounter_RBV")
     self.pvBackgroundEnable = PV(pvName + ":LFBackgroundEnable")
     self.pvBackgroundEnable_RBV = PV(pvName + ":LFBackgroundEnable_RBV")
     self.pvBackgroundPath = PV(pvName + ":LFBackgroundPath")
     self.pvBackgroundPath_RBV = PV(pvName + ":LFBackgroundPath_RBV")
     self.pvBackgroundFile = PV(pvName + ":LFBackgroundFile")
     self.pvBackgroundFile_RBV = PV(pvName + ":LFBackgroundFile_RBV")
     self.pvFilePath = PV(pvName + ":FilePath")
     self.pvFilePath_RBV = PV(pvName + ":LFFilePath_RBV")
     self.pvFileName = PV(pvName + ":FileName") 
     self.pvFileName_RBV = PV(pvName + ":LFFileName_RBV")
     self.pvFileNumber = PV(pvName + ":FileNumber")
     self.pvFileNumber_RBV = PV(pvName + ":FileNumber_RBV")
     self.pvArrayCounter = PV(pvName + ":ArrayCounter")
     self.pvArrayCounter_RBV = PV(pvName + ":ArrayCounter_RBV")
     self.pvAutoIncrement = PV(pvName + ":AutoIncrement")
     self.pvAutoIncrement_RBV = PV(pvName + ":AutoIncrement_RBV")
     self.pvImageArrayData = PV(pvName + ":image1:ArrayData")
     # Counter device object
     #self.scaler = scalerObject
     self._done = self.isDone()
     self.time = self.pvAcquireTime_RBV.get()
     self.countTime = 1
 def __init__(self, pvName, mnemonic):
     """
     **Constructor**
     See :class:`py4syn.epics.StandardDevice`
     See :class:`py4syn.epics.ICountable`
     
     Parameters
     ----------
     pvName : `string`
         PV name (Process Variable)
     mnemonic : `string`
         Mnemonic
     """        
     StandardDevice.__init__(self, mnemonic)
     self.pvName = pvName
     self.countTime = 1
     self.value = 0
Beispiel #32
0
 def __init__(self, pvScalerName="", numberOfChannels=1, mnemonic=""):
     StandardDevice.__init__(self, mnemonic)
     self._counting = False
     self.pvScalerTP = PV(pvScalerName+".TP") # envia para o IOC do cintilador o tempo de exposicao
     #self.pvScalerCNT = PV(pvScalerName+".CNT", self.onStatusChange) # envia para o IOC o disparo da medida
     self.pvScalerCNT = PV(pvScalerName+".CNT") # envia para o IOC o disparo da medida
     self.pvScalerFREQ = PV(pvScalerName+".FREQ")                
     self.pvScalerVAL = PV(pvScalerName+".VAL", self.onValChange) 
     self.pvScalerCounters = []
     self.pvScalerGates = []
     self.pvScalerPresets = []
     
     # Initial State
     if(self.pvScalerCNT.get() == 0 and self.pvScalerVAL.get() == 0):
         self._counting = False
         
     for i in range(1,2+numberOfChannels):
         self.pvScalerCounters.append(PV(pvScalerName+".S"+str(i), auto_monitor=False)) # valor do contador i
         self.pvScalerGates.append(PV(pvScalerName+".G"+str(i)))
         self.pvScalerPresets.append(PV(pvScalerName+".PR"+str(i)))
Beispiel #33
0
    def __init__(self,
                 pvName,
                 mnemonic,
                 imageBufferQueue=None,
                 processName=""):
        StandardDevice.__init__(self, mnemonic)
        self.processName = processName
        self.initCamera = True
        self.initNELM = True
        self.NCount = 0
        self.NData = 0
        self.imageBufferQueue = imageBufferQueue

        self.pvData = PV(pvName + ":Data", auto_monitor=True)
        self.pvData.add_callback(self.onDataChange)

        self.pvAcquire = PV(pvName + ":Acquire",
                            callback=self.onAcquireChange,
                            auto_monitor=True)
        self.pvAcquireRBV = PV(pvName + ":Acquire_RBV",
                               callback=self.onAcquireRBVChange,
                               auto_monitor=True)
        self.pvNELM = PV(pvName + ":Data.NELM", callback=self.onNELMChange)

        self._done = self.isDone()

        self.pvPixelSize = PV(pvName + ":PixelSize")
        self.pvCheckImage = PV(pvName + ":CheckImage")
        self.pvMinX = PV(pvName + ":MinX")
        self.pvMinY = PV(pvName + ":MinY")
        self.pvSizeX = PV(pvName + ":SizeX")
        self.pvSizeY = PV(pvName + ":SizeY")
        self.pvAcquireTime = PV(pvName + ":AcquireTime")
        self.pvAcquireTimeBase = PV(pvName + ":AcquireTimeBase")
        self.pvDelayTime = PV(pvName + ":DelayTime")
        self.pvDelayTimeBase = PV(pvName + ":DelayTimeBase")

        self.pvFileFormat = PV(pvName + ":FileFormat")
        self.pvFileName = PV(pvName + ":FileName")
        self.pvFileNumber = PV(pvName + ":FileNumber")
        self.pvFilePath = PV(pvName + ":FilePath")
Beispiel #34
0
    def __init__(self, mnemonic, description, backwardFormula, forwardFormulasDict):
        """
        **Pseudo Motor class Constructor**

        Parameters
        ----------
        mnemonic : `string`
            Motor mnemonic

        description : `string`
            Motor Description

        backwardFormula : `string`
            Mathematical Formula used to calculate the Pseudo motor position based on other motors

        forwardFormulasDict : `dictionary`
            Dictionary containing mathematical relations to move each of the motors involved in the pseudo motor movement
        """
        StandardDevice.__init__(self, mnemonic)        
        self.name = mnemonic

        self.description = description
        self.backFormula = backwardFormula
        self.forwardDict = forwardFormulasDict
 def __init__(self, pvRotaryMagnetName="", mnemonic=""):
     StandardDevice.__init__(self, mnemonic)
     self._active = False
     self._done = self.isDone()
     self.pvRotaryMagnetDESC = PV(pvRotaryMagnetName+".DESC")
     self.pvRotaryMagnetVAL = PV(pvRotaryMagnetName+".VAL", self.onValChange)
Beispiel #36
0
    def __init__(self, mca, mnemonic, channel):
        StandardDevice.__init__(self, mnemonic)

        self.mca = mca
        self.mnemonic = mnemonic
        self.channel = channel
Beispiel #37
0
 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)