This commit is contained in:
37
script/devices/Gonio.py
Normal file
37
script/devices/Gonio.py
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
|
||||
def home_fast_table():
|
||||
caput ("SAR-EXPMX:ASYN.AOUT", "enable plc 1")
|
||||
|
||||
def get_fx_pos():
|
||||
return caget("SAR-EXPMX:MOT_FX.RBV", 'f')
|
||||
|
||||
def set_fx_pos(pos):
|
||||
return caput("SAR-EXPMX:MOT_FX.VAL", float(pos))
|
||||
|
||||
|
||||
def get_fy_pos():
|
||||
return caget("SAR-EXPMX:MOT_FY.RBV", 'f')
|
||||
|
||||
def set_fy_pos(pos):
|
||||
return caput("SAR-EXPMX:MOT_FY.VAL", float(pos))
|
||||
|
||||
def get_ry_pos():
|
||||
return caget("SAR-EXPMX:MOT_ROT_Y.RBV", 'f')
|
||||
|
||||
def set_ry_pos(pos):
|
||||
return caput("SAR-EXPMX:MOT_ROT_Y.VAL", float(pos))
|
||||
|
||||
def get_cz_pos():
|
||||
return caget("SAR-EXPMX:MOT_CZ.RBV", 'f')
|
||||
|
||||
def set_cz_pos(pos):
|
||||
return caput("SAR-EXPMX:MOT_CZ.VAL", float(pos))
|
||||
|
||||
def get_cx_pos():
|
||||
return caget("SAR-EXPMX:MOT_CX.RBV", 'f')
|
||||
|
||||
def set_cx_pos(pos):
|
||||
return caput("SAR-EXPMX:MOT_CX.VAL", float(pos))
|
||||
|
||||
|
||||
@@ -95,10 +95,16 @@ class Hexiposi(DiscretePositionerBase):
|
||||
self.move_pos(self.val)
|
||||
#Workaround as state does not changes immediatelly
|
||||
if moving:
|
||||
try:
|
||||
self.waitState(State.Busy,1200)
|
||||
except:
|
||||
pass
|
||||
#try:
|
||||
# self.waitState(State.Busy,1200)
|
||||
#except:
|
||||
# print sys.exc_info()[1]
|
||||
start = time.time()
|
||||
while self.state != State.Busy:
|
||||
if time.time() - start > 1.5:
|
||||
print "Timeout waiting Hexiposi busy"
|
||||
break
|
||||
self.update()
|
||||
|
||||
def is_in_position(self, pos):
|
||||
return take() == pos
|
||||
@@ -131,7 +137,7 @@ class Hexiposi(DiscretePositionerBase):
|
||||
dev = Hexiposi("hexiposi", "myriotell:8002/hexiposi")
|
||||
|
||||
add_device(dev, True)
|
||||
hexiposi.polling=500
|
||||
hexiposi.polling=1000
|
||||
#print dev.url
|
||||
#print dev.get_status()
|
||||
|
||||
@@ -144,4 +150,4 @@ class hexiposi_position(ReadonlyRegisterBase):
|
||||
|
||||
add_device(hexiposi_position(), True)
|
||||
hexiposi_position.polling = 1000
|
||||
|
||||
hexiposi.set_deadband(0.5)
|
||||
|
||||
@@ -112,6 +112,8 @@ def release_psys():
|
||||
"""
|
||||
Release psys safety
|
||||
"""
|
||||
if is_manual_mode():
|
||||
raise Exception ("Cannot release PSYS in manual mode")
|
||||
release_psys_safety.write(False)
|
||||
time.sleep(0.01)
|
||||
release_psys_safety.write(True)
|
||||
|
||||
Reference in New Issue
Block a user