diff options
author | cliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a> | 2004-07-28 01:08:25 +0000 |
---|---|---|
committer | cliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a> | 2004-07-28 01:08:25 +0000 |
commit | 7ffcfefb04d183fbf56879fbff42916bc64a9833 (patch) | |
tree | fd46370023c544aaa5e0db49aee5eaf8ede0ef32 /pyserial | |
parent | af3dfd59c12d667d73b753db1a82fbb8c87a0403 (diff) | |
download | pyserial-git-7ffcfefb04d183fbf56879fbff42916bc64a9833.tar.gz |
apply [Patch 983106]
Diffstat (limited to 'pyserial')
-rw-r--r-- | pyserial/CHANGES.txt | 6 | ||||
-rw-r--r-- | pyserial/serial/serialwin32.py | 13 |
2 files changed, 16 insertions, 3 deletions
diff --git a/pyserial/CHANGES.txt b/pyserial/CHANGES.txt index d8b7211..7f93e64 100644 --- a/pyserial/CHANGES.txt +++ b/pyserial/CHANGES.txt @@ -150,3 +150,9 @@ Version 2.1 28 Jul 2004 New Features: - Implement write timeouts ('writeTimeout' parameter) + + +Version 2.2 XXXX + Bugfixes (win32): + - keep RTS/CTS state on port setting changes [Patch 983106] + diff --git a/pyserial/serial/serialwin32.py b/pyserial/serial/serialwin32.py index 5a22efd..af94bd8 100644 --- a/pyserial/serial/serialwin32.py +++ b/pyserial/serial/serialwin32.py @@ -11,7 +11,7 @@ import win32event # We use events and the WaitFor[Single|Multiple]Objects functi import win32con # constants. from serialutil import * -VERSION = "$Revision: 1.29 $".split()[1] #extract CVS version +VERSION = "$Revision: 1.30 $".split()[1] #extract CVS version #from winbase.h. these should realy be in win32con MS_CTS_ON = 16 @@ -59,6 +59,9 @@ class Serial(SerialBase): #Save original timeout values: self._orgTimeouts = win32file.GetCommTimeouts(self.hComPort) + self._rtsState = win32file.RTS_CONTROL_ENABLE + self._dtrState = win32file.RTS_CONTROL_ENABLE + self._reconfigurePort() # Clear buffers: @@ -141,8 +144,8 @@ class Serial(SerialBase): comDCB.fRtsControl = win32file.RTS_CONTROL_HANDSHAKE comDCB.fDtrControl = win32file.DTR_CONTROL_HANDSHAKE else: - comDCB.fRtsControl = win32file.RTS_CONTROL_ENABLE - comDCB.fDtrControl = win32file.DTR_CONTROL_ENABLE + comDCB.fRtsControl = self._rtsState + comDCB.fDtrControl = self._dtrState comDCB.fOutxCtsFlow = self._rtscts comDCB.fOutxDsrFlow = self._rtscts comDCB.fOutX = self._xonxoff @@ -245,16 +248,20 @@ class Serial(SerialBase): """Set terminal status line: Request To Send""" if not self.hComPort: raise portNotOpenError if level: + self._rtsState = win32file.RTS_CONTROL_ENABLE win32file.EscapeCommFunction(self.hComPort, win32file.SETRTS) else: + self._rtsState = win32file.RTS_CONTROL_DISABLE win32file.EscapeCommFunction(self.hComPort, win32file.CLRRTS) def setDTR(self,level=1): """Set terminal status line: Data Terminal Ready""" if not self.hComPort: raise portNotOpenError if level: + self._dtrState = win32file.DTR_CONTROL_ENABLE win32file.EscapeCommFunction(self.hComPort, win32file.SETDTR) else: + self._dtrState = win32file.DTR_CONTROL_DISABLE win32file.EscapeCommFunction(self.hComPort, win32file.CLRDTR) def getCTS(self): |