diff --git a/script/devices/RobotTCP.py b/script/devices/RobotTCP.py index 4461854..bfab1f6 100644 --- a/script/devices/RobotTCP.py +++ b/script/devices/RobotTCP.py @@ -26,6 +26,7 @@ class RobotTCP(TcpDevice, Stoppable): self.lock = threading.Lock() self.joint_forces = None self.current_task = None + self.current_task_ret = None self.high_level_tasks = [] self.cartesian_destination = None #self.flange_pos = [None] * 6 @@ -492,8 +493,10 @@ class RobotTCP(TcpDevice, Stoppable): if int(sts[6]) < 0: if self.current_task is not None: log("Task "+ str(self.current_task) + " finished with code: " + str(sts[7]), False) - self.current_task = None - + try: + self.current_task, self.current_task_ret = None, int(sts[7]) + except: + self.current_task, self.current_task_ret = None, None for i in range(6): self.joint_pos[i] = float(sts[8 + i]) for i in range(6): @@ -662,7 +665,7 @@ class RobotTCP(TcpDevice, Stoppable): raise Exception("Cannot start task: " + task) log("Task started: " + str(program) + " - status: " + str(status) + " (" + str(code) + ")", False) - self.current_task = program + self.current_task, self.current_task_ret = program, None self.update() #self._update_state() return code @@ -677,7 +680,8 @@ class RobotTCP(TcpDevice, Stoppable): def get_task_ret(self): - return self.eval_int("tcp_ret") + #return self.eval_int("tcp_ret") + return self.current_task_ret def clear_task_ret(self): return self.evaluate("tcp_ret=0") @@ -689,7 +693,7 @@ class RobotTCP(TcpDevice, Stoppable): if self.current_task is None: for task in self.high_level_tasks: if self.get_task_status(task)[0]>=0: - self.current_task = task + self.current_task, self.current_task_ret = task, None log("Task detected: " + str(self.current_task), False) return self.current_task @@ -703,6 +707,7 @@ class RobotTCP(TcpDevice, Stoppable): finally: if polling is not None: self.polling = cur_polling + return self.get_task_ret() def assert_no_task(self): task = self.check_task() diff --git a/script/test/TestCmdSynchronization.py b/script/test/TestCmdSynchronization.py index 82dda1c..7ba26d5 100644 --- a/script/test/TestCmdSynchronization.py +++ b/script/test/TestCmdSynchronization.py @@ -15,8 +15,8 @@ try: flag = robot.start_task('moveDewar') print "moveDewar: ", flag log("Waiting", False) - robot.wait_task_finished(TASK_WAIT_ROBOT_POLLING) - log("Moving dewar finished - " + get_pos_str(), False) + ret = robot.wait_task_finished(TASK_WAIT_ROBOT_POLLING) + log("Moving dewar finished (" + str(ret) + ") - pos: " + get_pos_str(), False) robot.assert_dewar_wait() @@ -24,8 +24,8 @@ try: flag = robot.start_task('movePark') print "movePark: ", flag log("Waiting", False) - robot.wait_task_finished(TASK_WAIT_ROBOT_POLLING) - log("Moving park finished - " + get_pos_str(), False) + ret = robot.wait_task_finished(TASK_WAIT_ROBOT_POLLING) + log("Moving park finished (" + str(ret) + ") - pos: " + get_pos_str(), False) robot.assert_park() finally: