Files
x11ma/script/devices/id.py
gac-x11ma e7b60c995b
2020-01-14 17:14:16 +01:00

84 lines
2.3 KiB
Python

POL_IDS={ "Circ_Plus": 1, "Circ_Minus": 2, "Lin_Hor":3, "Lin_Ver": 4}
def get_id_status(id):
# 0 = ok
# 1 = Warning
# 2 = Error
# 3 = Not available
if id<1 or id>2: raise Exception("Invalid id")
return caget("X11MA-ID1-USER:STATUS" if (id==1) else "X11MA-ID2-USER:STATUS")
def get_id_error(id):
# B0 (1) = PLC (Taper, Motor controller, Limitswitch....)
# B1 (2) = Encoders (cabel, not referenced)
# B2 (4) = FeedForward (PS off, PS defect, FF ausgeschaltet)
# B3 (8) = Operator COntrol
# B4 (16)= Moving Timeout (moving longer then 120 sec)
# B5 (32)= Interlock (Orbit, Temperature...)\
if id<1 or id>2:
raise Exception("Invalid id")
return caget("X11MA-ID1-USER:ERROR-SOURCE" if (id==1) else "X11MA-ID2-USER:ERROR-SOURCE")
def get_id_pol(id, as_string=False):
# 1: Circ+
# 2: Circ-
# 3: Lin H
# 4: Lin V
# 5: LIn
if id<1 or id>2: raise Exception("Invalid id")
ret = caget ("X11MA-ID1:MODE" if id==1 else "X11MA-ID2:MODE", 's' if as_string else 'i')
if ret!=0: return ret
#linear mode
alpha = get_alpha_id(id)
if alpha==0 : return 3
if alpha==90 : return 4
return 5
def get_alpha_id(id):
if id<1 or id>2: raise Exception("Invalid id")
return caget ("X11MA-ID1:ALPHA" if id==1 else "X11MA-ID2:ALPHA")
def put_id_offset(id, v):
if id<1 or id>2:
raise Exception("Invalid id")
caput(pv,"X11MA-ID1:ENERGY-OFFS" if (id==1) else "X11MA-ID2:ENERGY-OFFS",v)
def get_id_offset(id):
if id<1 or id>2:
raise Exception("Invalid id")
return caget("X11MA-ID1:ENERGY-OFFS" if (id==1) else "X11MA-ID2:ENERGY-OFFS")
def put_id_pol(id, pol, alpha=None):
#pol = 1 : Mode =1, alpha = 0 circ +
#pol = 2 : Mode =2, alpha = 0 circ -
#pol = 3 : Mode =0, alpha = 0 lin hor
#pol = 4 : Mode =0, alpha = 90 lin vert
#pol = 5 : Mode =0, alpha = ? lin rot
if id<1 or id>2:
raise Exception("Invalid id")
pv1="X11MA-ID1:MODE" if (id==1) else "X11MA-ID2:MODE"
pv2="X11MA-ID1:ALPHA" if (id==1) else "X11MA-ID2:ALPHA"
if pol == 1:
caput(pv1,1)
elif pol == 2:
caput(pv1,2)
elif pol == 3:
caput(pv1,0)
caput(pv2,0)
elif pol == 4:
caput(pv1,0)
caput(pv2,0)
elif pol == 5:
caput(pv1,0)
time.sleep(1.0)
caput(pv2,alpha)