Added a try/except block around readline so that disconnection does not yield a traceback.

master
Duane Johnson 2011-11-15 22:03:18 -06:00
parent 440a5ca5af
commit 167470e638
1 changed files with 10 additions and 1 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
from serial import Serial from serial import Serial
from threading import Thread from threading import Thread
from select import error as SelectError
import time import time
import sys import sys
@ -76,7 +77,15 @@ class printcore():
while(True): while(True):
if(not self.printer or not self.printer.isOpen): if(not self.printer or not self.printer.isOpen):
break 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): if(len(line)>1):
self.log+=[line] self.log+=[line]
if self.recvcb is not None: if self.recvcb is not None: