From ee854fe47548ac6142a426be3795bbf68a558357 Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Mon, 20 Feb 2017 17:09:30 +0100 Subject: [PATCH] Script execution --- script/local.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/script/local.py b/script/local.py index 46b80e4..0871366 100644 --- a/script/local.py +++ b/script/local.py @@ -7,29 +7,38 @@ from ch.psi.pshell.serial import TcpDevice from ch.psi.pshell.modbus import ModbusTCP -class RobotTCP(TcpDevice): +class RobotTCP(TcpDevice): def __init__(self, name, server, timeout = 1000, retries = 1): TcpDevice.__init__(self, name, server) self.timeout = timeout self.retries = retries self.header = None self.trailer = "\n" + self.msg_id = 0 - def execute(self, system, command, *argv): - cmd = self.header if (self.header != None) else self.header - cmd = str(system) + "," + str(command) - for arg in argv: - cmd = cmd + "," + str(arg) + def sendReceive(msg): + tx = self.header if (self.header != None) else self.header + id = "%03d" % self.msg_id + self.msg_id = (self.msg_id+1)%1000 + tx = tx + id + " " + msg + self.getLogger().finer("TX = " + str(tx)) if (self.trailer != None): cmd = cmd + self.trailer - ret = "" - try: - ret = self.sendReceive(cmd, None, self.trailer , 0, self.timeout, self.retries).strip() - finally: - self.getLogger().info(cmd + " ret = " + str(ret)) - return ret + rx = self.sendReceive(cmd, None, self.trailer , 0, self.timeout, self.retries).strip() + self.getLogger().finer("RX = " + str(rx)) + if rx[:3] != id: + raise Exception("Received invalid message id") + return rx[3:] + + def execute(self, command, *argv): + msg = str(command) + for arg in argv: + msg = msg + "," + str(arg) + ret = self.sendReceive(msg) + return ret; + def mount(self, puck, sample): - return self.execute('1', '1', puck, sample) + return self.execute('Mount', puck, sample) add_device(RobotTCP("robot_tcp", "129.129.126.100:1000"), force = True)