81 lines
2.2 KiB
Python
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()
|