From 167470e6381111001d73af6a6c10a6494fcc5afa Mon Sep 17 00:00:00 2001 From: Duane Johnson Date: Tue, 15 Nov 2011 22:03:18 -0600 Subject: [PATCH 1/2] Added a try/except block around readline so that disconnection does not yield a traceback. --- printcore.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/printcore.py b/printcore.py index 8573cec..66fa57d 100755 --- a/printcore.py +++ b/printcore.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from serial import Serial from threading import Thread +from select import error as SelectError import time import sys @@ -76,7 +77,15 @@ class printcore(): while(True): if(not self.printer or not self.printer.isOpen): break - line=self.printer.readline() + try: + line=self.printer.readline() + except SelectError, e: + if 'Bad file descriptor' in e.args[1]: + print "Can't read from printer (disconnected?)." + break + else: + raise + if(len(line)>1): self.log+=[line] if self.recvcb is not None: From 21d81f76a50cd144d588dfeed2689bd8353cfcbb Mon Sep 17 00:00:00 2001 From: ErikZalm Date: Sun, 20 Nov 2011 19:55:17 +0100 Subject: [PATCH 2/2] Enable T codes like T0 and T1. --- pronsole.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pronsole.py b/pronsole.py index fd3be45..96bdd6e 100755 --- a/pronsole.py +++ b/pronsole.py @@ -809,14 +809,14 @@ class pronsole(cmd.Cmd): print "! os.listdir('.')" def default(self,l): - if(l[0]=='M' or l[0]=="G"): + if(l[0]=='M' or l[0]=="G" or l[0]=='T'): if(self.p and self.p.online): print "SENDING:"+l self.p.send_now(l) else: print "Printer is not online." return - if(l[0]=='m' or l[0]=="g"): + if(l[0]=='m' or l[0]=="g" or l[0]=='t'): if(self.p and self.p.online): print "SENDING:"+l.upper() self.p.send_now(l.upper())