Files
dev/script/test/TestUndulatorScan.py
2018-01-19 10:56:53 +01:00

76 lines
2.2 KiB
Python
Executable File

import ch.psi.pshell.epics.ControlledVariable as ControlledVariable
import ch.psi.pshell.epics.ChannelSettlingCondition as ChannelSettlingCondition
import ch.psi.pshell.device.SettlingCondition as SettlingCondition
#cam_server.start("SAROP21-PSRD103_sp1", True)
pip.start("simulation_sp")
pip.stream.waitCacheChange(-1)
i = pip.stream.getChild("intensity")
iavg = create_averager(i, 2, interval = -1)
x=0
"""
class DCM(RegisterBase):
def doWrite(self, value):
print "Putting " , value
caput ("TESTIOC:TESTCALCOUT:Output", value)
print "Waiting " , value
cawait('TESTIOC:TESTCALCOUT:Output', value, timeout = 3600.0)
print "Done "
#if abs(value - self.read()) > IN_POSITION_BAND :
# raise Exception("Cannot set mono")
def doRead(self):
global x
x=x+1
return caget ("TESTIOC:TESTCALCOUT:Input") + x
#return caget("SARUN03-UIND030:FELPHOTENE.VAL")
undulator = DCM()
undulator.initialize()
"""
"""
class DCM(Readable, Writable):
def write(self, value):
print "Putting " , value
caput ("TESTIOC:TESTCALCOUT:Output", value)
print "Waiting " , value
cawait('TESTIOC:TESTCALCOUT:Output', value, timeout = 3600.0)
print "Done "
#if abs(value - self.read()) > IN_POSITION_BAND :
# raise Exception("Cannot set mono")
def read(self):
global x
x=x+1
return caget ("TESTIOC:TESTCALCOUT:Input") + x
#return caget("SARUN03-UIND030:FELPHOTENE.VAL")
undulator = DCM()
"""
class MySettlingCondition(SettlingCondition):
def waitSettled(self):
time.sleep(100)
cawait('TESTIOC:TESTCALCOUT:Input', value, timeout = 3600.0)
#return caget("SARUN03-UIND030:FELPHOTENE.VAL")
undulator = ControlledVariable("undulator", "TESTIOC:TESTCALCOUT:Output", "TESTIOC:TESTSINUS:SinCalc")
undulator.config.resolution = float('inf')
undulator.initialize()
undulator.setSettlingCondition(ChannelSettlingCondition("TESTIOC:TESTCALCOUT:Input", 0, None, 'i', None))
undulator.settlingCondition.latency = 100
lscan(undulator, [iavg], 1.0100, 1.18, 0.005 , latency= 0.2, range="auto")