Files
x04sa-es3/script/device/Mythen.py
2018-10-31 11:18:32 +01:00

81 lines
2.2 KiB
Python

class MythenAcquireTime(DeviceBase, Readable):
def __init__(self, mythen):
DeviceBase.__init__(self, mythen.name + " acquire time")
self.setParent(mythen)
def read(self):
return self.getParent().get_acquire_time(readback=False)
class Mythen(DeviceBase, Readable):
def __init__(self, name, prefix):
DeviceBase.__init__(self, name)
self.prefix = prefix
self.acquire_time = MythenAcquireTime(self)
def set_acquire_time(self, value):
caput(self.prefix + ":cam1:AcquireTime", float(value))
def get_acquire_time(self, readback = True):
if readback:
return caget(self.prefix + ":cam1:AcquireTime_RBV", 'd')
return caget(self.prefix + ":cam1:AcquireTime", 'd')
def set_threshold(self, value):
caput(self.prefix + ":cam1:ThresholdEnergy", int(value))
def get_threshold(self):
return caget(self.prefix + ":cam1:ThresholdEnergy_RBV", 'i')
def get_raw_data(self):
return caget(self.prefix + ":Stats5:ProfileCursorX_RBV")
#Single, Multiple, Continuous
def set_acquire_mode(self, value):
caput(self.prefix + ":cam1:ImageMode", value)
def get_acquire_mode(self):
return caget(self.prefix + ":cam1:ImageMode_RBV", 's')
def is_acquiring(self):
ret = caget( self.prefix + ":cam1:Acquire", 'i') == 1
self.setState(State.Busy if ret else State.Ready)
return ret
def start(self):
caput( self.prefix + ":cam1:Acquire",1)
self.setState(State.Busy)
def stop(self):
caput( self.prefix + ":cam1:Acquire",0)
self.setState(State.Ready)
def get_total_counts(self):
ret = caget( self.prefix + ":Stats5:Total_RBV", 'l')
self.setCache(ret, None)
return ret
def get_status(self):
return caget(self.prefix + ":cam1:DetectorState_RBV")
def doUpdate(self):
self.read()
self.is_acquiring()
def abort(self):
while (mythen.is_acquiring()):
mythen.stop()
time.sleep(0.25)
def read(self):
return self.get_total_counts()
add_device( Mythen("mythen", "X04SA-ES2-SD1"), True)
#mythen.polling = 1000
mythen.update()