Files
x06da/script/local.py
2016-02-17 11:04:45 +01:00

45 lines
1.1 KiB
Python

###################################################################################################
# Deployment specific global definitions - executed after startup.py
###################################################################################################
dtor = math.pi /180.0
def A2E(t,h=1.0,k=1.0,l=1.0, deg =True, ln = False):
lncorr= 2.e-4 if ln else 0.0
d0 =2 * 5.43102 * (1.0-lncorr) / math.sqrt(h**2+k**2+l**2)
tt = (t * dtor) if (deg or (t>1.0)) else t
return 12.39842 / (d0*math.sin(tt))
def get_energy(debug_msg = True):
t2 = caget("X06DA-OP-MO1:ROX2.RBV",'d')
e = A2E(abs(t2))
if debug_msg:
print 'Energy [keV]:'+ str(e) + ' Wavelength [A]:' + str(12.39842/e)
return e
run("fit")
run("rock")
run("sete")
run("seteq")
def fbm():
"""
"""
run("fbm")
def rocknroll():
"""
"""
run("rocknroll")
import ch.psi.pshell.device.ReadonlyRegisterBase as ReadonlyRegisterBase
class EnergyReader(ReadonlyRegisterBase):
def doRead(self):
return get_energy(False)
add_device(EnergyReader("energy"), True)