summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2002-04-08 23:13:14 +0000
committercliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2002-04-08 23:13:14 +0000
commit4616bf1fd3a3d038148f506023ad11fb76f87a95 (patch)
tree50660c27ebc0c94213ff6488b6be4957c9dd8c24
parentd47436966a93cdb2c7206d5f65f2a0fe57a92878 (diff)
downloadpyserial-git-4616bf1fd3a3d038148f506023ad11fb76f87a95.tar.gz
added uniform errorhandling when port opening fails, across platform modules
-rw-r--r--pyserial/serial/serialjava.py9
-rw-r--r--pyserial/serial/serialposix.py8
-rw-r--r--pyserial/serial/serialwin32.py6
3 files changed, 15 insertions, 8 deletions
diff --git a/pyserial/serial/serialjava.py b/pyserial/serial/serialjava.py
index d9e9714..9863de3 100644
--- a/pyserial/serial/serialjava.py
+++ b/pyserial/serial/serialjava.py
@@ -8,7 +8,7 @@
import sys, os, string, javax.comm
import serialutil
-VERSION = string.split("$Revision: 1.4 $")[1] #extract CVS version
+VERSION = string.split("$Revision: 1.5 $")[1] #extract CVS version
PARITY_NONE, PARITY_EVEN, PARITY_ODD, PARITY_MARK, PARITY_SPACE = (0,1,2,3,4)
STOPBITS_ONE, STOPBITS_TWO, STOPBITS_ONE_HALVE = (1, 2, 3)
@@ -46,8 +46,11 @@ class Serial(serialutil.FileLike):
else:
portId = device(port) #numbers are transformed to a comportid obj
self.portstr = portId.getName()
-
- self.sPort = portId.open("python serial module", 10)
+ try:
+ self.sPort = portId.open("python serial module", 10)
+ except Exception, msg:
+ self.sPort = None
+ raise serialutil.SerialException, "could not open port: %s" % msg
self.instream = self.sPort.getInputStream()
self.outstream = self.sPort.getOutputStream()
self.sPort.enableReceiveTimeout(30)
diff --git a/pyserial/serial/serialposix.py b/pyserial/serial/serialposix.py
index ddedcac..faa4af9 100644
--- a/pyserial/serial/serialposix.py
+++ b/pyserial/serial/serialposix.py
@@ -12,7 +12,7 @@
import sys, os, fcntl, termios, struct, string, select
import serialutil
-VERSION = string.split("$Revision: 1.5 $")[1] #extract CVS version
+VERSION = string.split("$Revision: 1.6 $")[1] #extract CVS version
PARITY_NONE, PARITY_EVEN, PARITY_ODD = range(3)
STOPBITS_ONE, STOPBITS_TWO = (1, 2)
@@ -166,7 +166,11 @@ class Serial(serialutil.FileLike):
self.portstr = port
else:
self.portstr = device(port) #numbers are transformed to a os dependant string
- self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
+ try:
+ self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
+ except Exception, msg:
+ self.fd = None
+ raise serialutil.SerialException, "could not open port: %s" % msg
fcntl.fcntl(self.fd, FCNTL.F_SETFL, 0) #set blocking
self.__tcgetattr() #read current settings
#set up raw mode / no echo / binary
diff --git a/pyserial/serial/serialwin32.py b/pyserial/serial/serialwin32.py
index 72b353e..4a11980 100644
--- a/pyserial/serial/serialwin32.py
+++ b/pyserial/serial/serialwin32.py
@@ -11,7 +11,7 @@ import win32con # constants.
import sys, string
import serialutil
-VERSION = string.split("$Revision: 1.5 $")[1] #extract CVS version
+VERSION = string.split("$Revision: 1.6 $")[1] #extract CVS version
PARITY_NONE, PARITY_EVEN, PARITY_ODD = range(3)
STOPBITS_ONE, STOPBITS_TWO = (1, 2)
@@ -51,9 +51,9 @@ class Serial(serialutil.FileLike):
win32con.OPEN_EXISTING,
win32con.FILE_ATTRIBUTE_NORMAL | win32con.FILE_FLAG_OVERLAPPED,
None)
- except:
+ except Exception, msg:
self.hComPort = None #'cause __del__ is called anyway
- raise serialutil.SerialException, "could not open port"
+ raise serialutil.SerialException, "could not open port: %s" % msg
# Setup a 4k buffer
win32file.SetupComm(self.hComPort, 4096, 4096)