diff --git a/script/RobotTCP.py b/script/RobotTCP.py index ea24afe..791aa66 100644 --- a/script/RobotTCP.py +++ b/script/RobotTCP.py @@ -65,51 +65,47 @@ class RobotTCP(TcpDevice, Stoppable): def get_var(self, name): return self.execute('get_var', name) - def get_varb(self, name): - return True if (self.execute('get_bool', name).strip() == '1') else False - def get_str(self, name): return self.execute('get_str', name) def get_arr(self, name, size): return self.execute('get_arr', name, size) - def get_trf(self, name): - return self.execute('get_trf', name) + def get_bool(self, name = "b"): + return True if (self.execute('get_bool', name).strip() == '1') else False - def get_jnt(self, name): - return self.execute('get_jnt', name) + def get_int(self, name ="n"): + return int(self.get_var(name)) - def get_pnt(self, name): - return self.execute('get_pnt', name) + def get_float(self, name ="n"): + return float(self.get_var(name)) - def get_int(self): - return int(self.get_var("n")) - - def get_float(self): - return float(self.get_var("n")) - - def get_bool(self, name): - return self.get_varb("b") - - def get_int_arr(self, size): + def get_int_arr(self, size, name="arr"): # not working. A Jython bug in PyUnicaode? #return [int(x) for x in self.get_arr("arr", size)] ret = [] - a=self.get_arr("arr", size) + a=self.get_arr(name, size) for i in range(size): ret.append(int(a[i])) return ret - def get_float_arr(self, size): + def get_float_arr(self, size, name="arr"): #return [float(x) for x in self.get_arr("arr", size)] ret = [] a=self.get_arr("arr", size) for i in range(size): ret.append(int(a[i])) return ret - + def get_trf(self, name="t"): + return self.execute('get_trf', name) + + def get_jnt(self, name="j"): + return self.execute('get_jnt', name) + + def get_pnt(self, name="p"): + return self.execute('get_pnt', name) + def eval_int(self, cmd): self.evaluate("n=" + cmd) return self.get_int() @@ -120,7 +116,19 @@ class RobotTCP(TcpDevice, Stoppable): def eval_bool(self, cmd): self.evaluate("b=" + cmd) - return self.get_bool(self) + return self.get_bool() + + def eval_jnt(self, cmd): + self.evaluate("j=" + cmd) + return self.get_jnt() + + def eval_trf(self, cmd): + self.evaluate("t=" + cmd) + return self.get_trf() + + def eval_pnt(self, cmd): + self.evaluate("p=" + cmd) + return self.get_pnt() #Robot control @@ -218,6 +226,11 @@ class RobotTCP(TcpDevice, Stoppable): #This function can timeout since it synchronizes move. Better check state before def close(self, tool): return self.evaluate("close(" + tool + " )") + + #Arm position + def herej(self): + return get_jnt("") + #Updating def update_status(self): @@ -225,8 +238,8 @@ class RobotTCP(TcpDevice, Stoppable): self.read_working_mode() self.is_powered() self.get_monitor_speed() - self.is_empty() - self.is_settled() + #self.is_empty() + #self.is_settled() def poll_events(self): ev = self.read_event() @@ -239,7 +252,7 @@ class RobotTCP(TcpDevice, Stoppable): start = time.time() self.update_status() self.poll_events() - #self.setState(State.Busy if self.status=="move" else State.Ready) + self.setState(State.Busy if self.status=="move" else State.Ready) self.setState(State.Ready if self.empty and self.settled else State.Busy) #print time.time() - start except Exception, e: