summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2002-03-03 20:11:47 +0000
committercliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2002-03-03 20:11:47 +0000
commit7fe54d52ac6ec9918326724298e9bb64099fd952 (patch)
treeb73ad1cc776b67d00b8d33133a3ace8b629ebd78
parent576de25542db50e756a32fe783a1ffa32ae51fb2 (diff)
downloadpyserial-git-7fe54d52ac6ec9918326724298e9bb64099fd952.tar.gz
added SerialException if port can not be opened
-rw-r--r--pyserial/serial/serialutil.py3
-rw-r--r--pyserial/serial/serialwin32.py20
2 files changed, 15 insertions, 8 deletions
diff --git a/pyserial/serial/serialutil.py b/pyserial/serial/serialutil.py
index fb3f359..057cd74 100644
--- a/pyserial/serial/serialutil.py
+++ b/pyserial/serial/serialutil.py
@@ -1,4 +1,7 @@
+class SerialException(Exception):
+ pass
+
class FileLike:
"""An abstract file like class.
diff --git a/pyserial/serial/serialwin32.py b/pyserial/serial/serialwin32.py
index c4aa142..8fda924 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.3 $")[1] #extract CVS version
+VERSION = string.split("$Revision: 1.4 $")[1] #extract CVS version
PARITY_NONE, PARITY_EVEN, PARITY_ODD = range(3)
STOPBITS_ONE, STOPBITS_TWO = (1, 2)
@@ -43,13 +43,17 @@ class Serial(serialutil.FileLike):
self.portstr = 'COM%d' % (port+1) #numbers are transformed to a string
#self.portstr = '\\\\.\\COM%d' % (port+1) #WIN NT format??
- self.hComPort = win32file.CreateFile(self.portstr,
- win32con.GENERIC_READ | win32con.GENERIC_WRITE,
- 0, # exclusive access
- None, # no security
- win32con.OPEN_EXISTING,
- win32con.FILE_ATTRIBUTE_NORMAL | win32con.FILE_FLAG_OVERLAPPED,
- None)
+ try:
+ self.hComPort = win32file.CreateFile(self.portstr,
+ win32con.GENERIC_READ | win32con.GENERIC_WRITE,
+ 0, # exclusive access
+ None, # no security
+ win32con.OPEN_EXISTING,
+ win32con.FILE_ATTRIBUTE_NORMAL | win32con.FILE_FLAG_OVERLAPPED,
+ None)
+ except:
+ self.hComPort = None #'cause __del__ is called anyway
+ raise serialutil.SerialException, "could not open port"
# Setup a 4k buffer
win32file.SetupComm(self.hComPort, 4096, 4096)