This commit is contained in:
gac-S_Changer
2018-06-13 17:42:33 +02:00
parent 14398f49c1
commit 43b46a171f
22 changed files with 707 additions and 109 deletions

View File

@@ -13,6 +13,7 @@ class Hexiposi(DiscretePositionerBase):
self.moved = True
self.homing_state = State.Disabled
self.rback = self.UNKNOWN_POSITION
self.timeout = 3.0
def doInitialize(self):
super(Hexiposi, self).doInitialize()
@@ -24,7 +25,7 @@ class Hexiposi(DiscretePositionerBase):
return json.loads(response.text)
def get_status(self):
self.status = self.get_response(requests.get(url=self.url+"get"))
self.status = self.get_response(requests.get(url=self.url+"get", timeout=self.timeout))
self.estop = self.status["estop"]
self.homed = self.status["homed"]
self.error = self.status["errorCode"]
@@ -48,10 +49,10 @@ class Hexiposi(DiscretePositionerBase):
return self.status
def move_pos(self, pos):
return self.get_response(requests.get(url=self.url+"set?pos=" + str(pos)))
return self.get_response(requests.get(url=self.url+"set?pos=" + str(pos), timeout=self.timeout))
def move_home(self):
ret = self.get_response(requests.get(url=self.url+"set?home=1"))
ret = self.get_response(requests.get(url=self.url+"set?home=1", timeout=self.timeout))
try:
self.waitState(self.homing_state,1200)
except:
@@ -59,10 +60,10 @@ class Hexiposi(DiscretePositionerBase):
return ret
def stop_move(self):
return self.get_response(requests.get(url=self.url+"set?stop=1"))
return self.get_response(requests.get(url=self.url+"set?stop=1", timeout=self.timeout))
def set_offset(self, offset):
return self.get_response(requests.get(url=self.url+"setOffset?offset="+str(offset)))
return self.get_response(requests.get(url=self.url+"setOffset?offset="+str(offset), timeout=self.timeout))
def doUpdate(self):
self.get_status()

View File

@@ -24,7 +24,7 @@ class RobotSC(RobotTCP):
def __init__(self, name, server, timeout = 1000, retries = 1):
RobotTCP.__init__(self, name, server, timeout, retries)
self.set_tasks(["getDewar", "putDewar", "putGonio", "getGonio", "robotRecover", "moveDewar", "movePark", "moveGonio","moveHeater", "moveScanner"])
self.set_known_points(["pHome", "pPark", "pDewarHome", "pGonioHome", "pDewarWait", "pGonioGet", "pScanHome", "pHeaterHome"])
self.set_known_points(["pHome", "pPark", "pDewarHome", "pGonioHome", "pDewarWait", "pGonioGet", "pScanHome", "pHeaterHome", "pHeater", "pHeaterBottom"])
self.setPolling(DEFAULT_ROBOT_POLLING)
def move_dewar(self):
@@ -65,15 +65,23 @@ class RobotSC(RobotTCP):
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
self.assert_gonio()
def move_home(self):
self.start_task('moveHome')
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
self.assert_home()
def move_park(self):
self.start_task('movePark')
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
self.assert_park()
def move_heater(self):
self.start_task('moveHeater')
def move_heater(self, speed=-1, to_bottom=True):
self.start_task('moveHeater', speed, to_bottom)
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
self.assert_heater()
if to_bottom:
self.assert_heater_bottom()
else:
self.assert_heater()
def robot_recover(self):
@@ -134,7 +142,13 @@ class RobotSC(RobotTCP):
return self.is_in_point("pDewarWait")
def is_heater(self):
return self.is_in_point("pHeaterHome")
return self.is_in_point("pHeater")
def is_heater_home(self):
return self.is_in_point("pHeaterHome")
def is_heater_bottom(self):
return self.is_in_point("pHeaterBottom")
def is_gonio(self):
return self.is_in_point("pGonioHome")
@@ -149,9 +163,15 @@ class RobotSC(RobotTCP):
def assert_home(self):
self.assert_in_point("pHome")
def assert_heater(self):
def assert_heater_home(self):
self.assert_in_point("pHeaterHome")
def assert_heater(self):
self.assert_in_point("pHeater")
def assert_heater_bottom(self):
self.assert_in_point("pHeaterBottom")
def assert_park(self):
self.assert_in_point("pPark")

View File

@@ -43,6 +43,7 @@ class RobotTCP(TcpDevice, Stoppable):
self.frame = FRAME_DEFAULT
self.polling_interval = 0.01
self.reset = True
self.default_tolerance = 10
self.task_start_retries = 3
self.exception_on_task_start_failure = True #Tasks may start and be finished when checked
@@ -454,8 +455,12 @@ class RobotTCP(TcpDevice, Stoppable):
#taskCreate "t1", 10, read(sMessage)
cmd = 'taskCreate "' + name + '", ' + str(priority) + ', ' + program + '('
for i in range(len(args)):
cmd += str(args[i]) + (',' if (i<(len(args)-1)) else '')
for i in range(len(args)):
val = args[i]
if type(val) == bool:
if val == True: val = "true"
elif val == False: val = "false"
cmd += str(val) + (',' if (i<(len(args)-1)) else '')
cmd+=')'
self.evaluate(cmd)
@@ -574,7 +579,7 @@ class RobotTCP(TcpDevice, Stoppable):
return self.distance_p("tcp_p", name)
def is_in_point(self, p, tolerance = None): #Tolerance in mm
tolerance = 10 if tolerance == None else tolerance
tolerance = self.default_tolerance if tolerance == None else tolerance
d = self.get_distance_to_pnt(p)
if d<0:
raise Exception ("Error calculating distance to " + p + " : " + str(d))
@@ -589,9 +594,9 @@ class RobotTCP(TcpDevice, Stoppable):
except:
ret[i] = None
return ret
def is_in_points(self, *pars, **kwargs): #Tolerance in mm
tolerance = 10 if (kwargs is None) or (not kwargs.has_key("tolerance")) or (kwargs["tolerance"] is None) else kwargs["tolerance"]
tolerance = self.default_tolerance if (kwargs is None) or (not kwargs.has_key("tolerance")) or (kwargs["tolerance"] is None) else kwargs["tolerance"]
ret = self.get_distance_to_pnts(*pars)
for i in range(len(ret)):
if ret[i]<0: