From dae8f9729293d89266db2f46362aa0de8794953c Mon Sep 17 00:00:00 2001 From: "Michael D. M. Dryden" <mdryden@chem.utoronto.ca> Date: Thu, 19 Nov 2015 14:01:56 -0500 Subject: [PATCH] Switch serial instance into dstat_comm. --- dstat-interface/dstat_comm.py | 32 ++++++++++++++------------------ dstat-interface/main.py | 22 ++++++++++++---------- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/dstat-interface/dstat_comm.py b/dstat-interface/dstat_comm.py index 64dfba1..931e163 100644 --- a/dstat-interface/dstat_comm.py +++ b/dstat-interface/dstat_comm.py @@ -45,33 +45,33 @@ def version_check(ser_port): ser_port -- address of serial port to use """ - ser = delayedSerial(ser_port, baudrate=1000000, timeout=1) + global serial_instance + serial_instance = delayedSerial(ser_port, baudrate=1000000, timeout=1) - ser.write("ck") + serial_instance.write("ck") - ser.flushInput() - ser.write('!') + serial_instance.flushInput() + serial_instance.write('!') - while not ser.read()=="C": + while not serial_instance.read()=="C": time.sleep(.5) - ser.write('!') - + serial_instance.write('!') - ser.write('V') - for line in ser: + serial_instance.write('V') + for line in serial_instance: if line.startswith('V'): input = line.lstrip('V') elif line.startswith("#"): print line elif line.lstrip().startswith("no"): print line - ser.flushInput() + serial_instance.flushInput() break parted = input.rstrip().split('.') print parted - return [(int(parted[0]), int(parted[1])), ser] + return (int(parted[0]), int(parted[1])) @@ -139,16 +139,12 @@ class Experiment(object): self.commands[1] += (self.parameters['gain']) self.commands[1] += " " - def run(self, ser): + def run(self): """Execute experiment. Connects and sends handshake signal to DStat then sends self.commands. Don't call directly as a process in Windows, use run_wrapper instead. - - Arguments: - ser -- serial instance to use """ - self.serial = ser -# self.serial.write("ck") + self.serial = serial_instance try: self.serial.flushInput() @@ -198,7 +194,7 @@ class Experiment(object): (scan, self.serial.read(size=self.databytes)))) elif line.startswith('S'): scan += 1 - elif line.startswith("#"): + elif line.lstrip().startswith("#"): print line elif line.lstrip().startswith("no"): print line diff --git a/dstat-interface/main.py b/dstat-interface/main.py index f1da0b3..e079e24 100755 --- a/dstat-interface/main.py +++ b/dstat-interface/main.py @@ -201,8 +201,8 @@ class Main(object): try: self.on_pot_stop_clicked() gobject.source_remove(self.ocp_proc) # Stop OCP measurements - self.serial.close() - del(self.serial) + comm.serial_instance.close() + except AttributeError: pass @@ -216,7 +216,7 @@ class Main(object): self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True) self.ocp_exp = comm.OCPExp(self.send_p) - self.ocp_exp.run_wrapper(self.serial) + self.ocp_exp.run_wrapper() self.send_p.close() # need for EOF signal to work @@ -293,7 +293,7 @@ class Main(object): for i in self.current_exp.commands: self.rawbuffer.insert_at_cursor(i) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() # need for EOF signal to work @@ -339,7 +339,7 @@ class Main(object): self.plot.clearall() self.plot.changetype(self.current_exp) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() @@ -391,7 +391,7 @@ class Main(object): self.plot.clearall() self.plot.changetype(self.current_exp) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() @@ -452,7 +452,7 @@ class Main(object): self.plot.clearall() self.plot.changetype(self.current_exp) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() @@ -509,7 +509,7 @@ class Main(object): self.plot.clearall() self.plot.changetype(self.current_exp) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() @@ -534,7 +534,7 @@ class Main(object): self.plot.clearall() self.plot.changetype(self.current_exp) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() @@ -565,7 +565,7 @@ class Main(object): self.plot.clearall() self.plot.changetype(self.current_exp) - self.current_exp.run_wrapper(self.serial) + self.current_exp.run_wrapper() self.send_p.close() @@ -738,6 +738,8 @@ class Main(object): pass except IOError: pass + except EOFError: + pass def on_file_save_exp_activate(self, menuitem, data=None): """Activate dialogue to save current experiment data. """ -- GitLab