diff --git a/Ccs/communication.py b/Ccs/communication.py index 0af0438c1255f84487b2473a4822e1d0733ff3c5..11dd564be22d154b033e5d826481c0c1c5be53be 100644 --- a/Ccs/communication.py +++ b/Ccs/communication.py @@ -4,6 +4,7 @@ General purpose socket communication utilities """ +import io import queue import select import socket @@ -191,6 +192,20 @@ class Connector: self.receiver.stop() self.receiver = None + @property + def recvd_data(self): + if self.receiver is None: + return + + return self.receiver.recvd_data_buf.queue + + @property + def proc_data(self): + if self.receiver is None: + return + + return self.receiver.proc_data + class Receiver: """ @@ -287,6 +302,9 @@ class Receiver: self.proc_data_fd.write(procdata) else: self.proc_data_fd.write(str(procdata)) + except io.UnsupportedOperation as err: + print(err) + break except Exception as err: self.proc_data_fd.write('# {} #\n'.format(err)) continue @@ -300,7 +318,8 @@ class Receiver: self._isrunning = False print('Processing stopped') - self.proc_data_fd.close() + if self.proc_data_fd is not None: + self.proc_data_fd.close() def _msgdecoder(msg, fmt, sep=''):