Files
sf-optics/script/scan_athos.py
2021-05-31 09:24:24 +02:00

61 lines
1.9 KiB
Python
Executable File

IN_POSITION_BAND = 10.0
#cam_server.start("SAROP21-PSRD103_sp1", True)
#cam_server.start("SAROP21-PPRM102_sp1", True)
#cam_server.start("SAROP21-PSRD103_sp1", True)
#cam_server.start("SAROP11-PSCR106_sp1", True)
#cam_server.start("SAROP11-PPRM122_sp1", True)
cam_server.start("SATOP21-PSCR162_sp1", True)
cam_server.stream.waitCacheChange(-1)
i = cam_server.stream.getChild("intensity")
iavg = create_averager(i, 20, interval = -1)
#ycent = cam_server.stream.getChild("y_center_of_mass")
#ycentavg = create_averager(ycent, 20, interval = -1)
#xcent = cam_server.stream.getChild("x_center_of_mass")
#xcentavg = create_averager(xcent, 20, interval = -1)
#iode = Channel("SLAAR21-LSCP-DRS1FNS:CH2:BOXCAR.VALP")
#iavg = create_averager(diode, 30, interval = -1)
def beam_ok():
I0 = caget ("SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG")
if I0 > 100:
return "Yes"
else :
return "No"
def before_sampling(rec):
while beam_ok() == "No":
time.sleep(0.1)
print(".")
def after_sampling(rec):
if beam_ok() == "No":
rec.invalidate()
i0 = Channel("SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG")
class SGM(RegisterBase):
def doWrite(self, value):
caput ("ATHOS:SetEnergy", value)
time.sleep(0.5)
cawait('ATHOS:MOVING', 1, timeout = 10.0, type = 'i')
# cawait('SFB_BEAM_ENERGY_ECOL:SUM-ERROR-OK', 1, timeout = 10.0, type = 'i')
# if abs(value - self.read()) > IN_POSITION_BAND :
# raise Exception("Cannot set mono")
def doRead(self):
return caget("ATHOS:photonenergy")
athos = SGM()
athos.initialize()
i0 = Channel("SATFE10-PEPG046:PHOTON-ENERGY-PER-PULSE-AVG")
#caput ("ATHOS:SetEnergy", 680.0)
lscan( athos, [iavg], 680.0, 680.2, 0.05,0.2)
#scan( (pitch2,alvra), [diode,i0], (5.0,2100.0),(8.0,2300.0),(0.1,1.0), latency= 0.2, before_read=before_sampling, after_read=after_