From e377658e7c414318d5bcdc72b477a8e78e846fd0 Mon Sep 17 00:00:00 2001 From: "Eugeniy E. Mikhailov" Date: Wed, 5 Jan 2022 21:49:48 -0500 Subject: isolate communication logic --- qolab/hardware/i_server/i800.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/qolab/hardware/i_server/i800.py b/qolab/hardware/i_server/i800.py index c42b5dd..e7b8dcb 100644 --- a/qolab/hardware/i_server/i800.py +++ b/qolab/hardware/i_server/i800.py @@ -19,19 +19,22 @@ class I800(BasicInstrument): self.config['Device type']='TemperatureController' self.config['Device model'] = 'i800' self.config['FnamePrefix'] = 'temperature' - self.deviceProperties = {'Temerature'} + self.deviceProperties = {'Temperature'} - @BasicInstrument.tsdb_append - def getTemperature(self): + def query(self, qstr): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((self.host, self.port)) + s.send(qstr.encode('ascii')) + return s.recv(100).decode('ascii') + + @BasicInstrument.tsdb_append + def getTemperature(self): cmd_start_marker='*' modbus_address='01' command='X01'; # give decimal representation (X) of the temperature (01 address) - cmnd=f'POST / HTTP/1.1\r\n\r\n{cmd_start_marker}{modbus_address}{command}\r\n' - s.send(cmnd.encode('ascii')) - reply=s.recv(100).decode('ascii') - if reply[0:5] != '01X01': + qstr=f'POST / HTTP/1.1\r\n\r\n{cmd_start_marker}{modbus_address}{command}\r\n' + reply=self.query(qstr) + if reply[0:5] != f'{modbus_address}{command}': # check the proper echo response return None t = reply[5:] -- cgit v1.2.3