diff --git a/script/RobotTCP.py b/script/RobotTCP.py index 317ddec..843014d 100644 --- a/script/RobotTCP.py +++ b/script/RobotTCP.py @@ -141,6 +141,16 @@ class RobotTCP(TcpDevice): self.powered = self.eval_int("getMonitorSpeed()") return self.powered + def get_monitor_speed(self): + self.powered = self.eval_int("getMonitorSpeed()") + return self.powered + + def set_monitor_speed(self, speed): + ret = self.eval_int("setMonitorSpeed(" + str(speed) + ")") + if (ret==-1): raise Exception("The robot is not in remote working mode") + if (ret==-2): raise Exception("The monitor speed is under the control of the operator") + if (ret==-3): raise Exception("The specified speed is not supported") + def enable(self): return self.evaluate("enablePower()") @@ -150,7 +160,7 @@ class RobotTCP(TcpDevice): def is_calibrated(self): return self.eval_bool("isCalibrated()") - def read_status(self): + def read_working_mode(self): try: mode = self.eval_int("workingMode(arr)") status = int(self.get_var("arr[0]")) @@ -171,18 +181,30 @@ class RobotTCP(TcpDevice): self.status = "invalid" except: self.working_mode = "invalid" - self.is_powered() return self.working_mode + def update_status(): + read_working_mode() + is_powered() + get_monitor_speed() + + def poll_events(): + ev = self.read_event() + if ec is not None: + self.getLogger().info(ev) + on_event(ev) + def doUpdate(self): try: - read_status() - ev = self.read_event() + self.update_status() + self.poll_events() self.setState(State.Ready) - self.getLogger().info(ev) except: self.setState(State.Offline) + + def on_event(ev): + pass def mount(self, puck, sample): return self.execute('mount', puck, sample) @@ -191,4 +213,4 @@ class RobotTCP(TcpDevice): add_device(RobotTCP("robot_tcp", "129.129.126.100:1000"), force = True) robot_tcp.setPolling(500) -robot_tcp.get_monitor_speed() \ No newline at end of file +robot_tcp.set_monitor_speed(20) \ No newline at end of file