summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2009-07-30 17:25:09 +0000
committercliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2009-07-30 17:25:09 +0000
commit23dc2a04e04d23aa684cefa397abaa8c72f82ed7 (patch)
tree4c71ea20745dbbc470ec87a8035ddadb3d45de8f
parent0bbebbfa46daa115dd7f0fb38e6974578e7e6df3 (diff)
downloadpyserial-git-23dc2a04e04d23aa684cefa397abaa8c72f82ed7.tar.gz
remove type check and instead convert to bytes (Py 3.1 memoryview is not compatible w/ ctypes)
-rw-r--r--pyserial/serial/serialwin32.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/pyserial/serial/serialwin32.py b/pyserial/serial/serialwin32.py
index df58e77..af436bb 100644
--- a/pyserial/serial/serialwin32.py
+++ b/pyserial/serial/serialwin32.py
@@ -240,8 +240,10 @@ class Win32Serial(SerialBase):
def write(self, data):
"""Output the given string over the serial port."""
if not self.hComPort: raise portNotOpenError
- if not isinstance(data, (bytes, bytearray)):
- raise TypeError('expected %s or bytearray, got %s' % (bytes, type(data)))
+ #~ if not isinstance(data, (bytes, bytearray)):
+ #~ raise TypeError('expected %s or bytearray, got %s' % (bytes, type(data)))
+ # convert data (needed in case of memoryview instance: Py 3.1 io lib), ctypes doesn't like memoryview
+ data = bytes(data)
if data:
#~ win32event.ResetEvent(self._overlappedWrite.hEvent)
n = win32.DWORD()
@@ -253,7 +255,9 @@ class Win32Serial(SerialBase):
err = win32.GetOverlappedResult(self.hComPort, self._overlappedWrite, ctypes.byref(n), True)
if n.value != len(data):
raise writeTimeoutError
- return n.value
+ return n.value
+ else:
+ return 0
def flushInput(self):