diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2013-03-17 20:47:18 +0400 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-17 21:05:13 +0100 |
commit | bdf92a7ed066db6782277b243ffe29f3cc4a0847 (patch) | |
tree | f9850b87028f5ff177136251d2b7d4431b5e440e | |
parent | 169b901f6af118f9eccacc2d8ab4d6d8c8c0d8d1 (diff) | |
download | qtserialport-bdf92a7ed066db6782277b243ffe29f3cc4a0847.tar.gz |
Win32: Fix read sequence with considering the type of policy
Method startAsyncRead() should only be called in case of a policy
type IgnorePolicy installed. In other types of policies should be
re-trigger startWaitCommEvent() method for correctly catch
frame/parity errors for each char readed.
Change-Id: I94e002d0634fc6cc9763ac492972735393bbf3a2
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
-rw-r--r-- | src/serialport/qserialport_win.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/serialport/qserialport_win.cpp b/src/serialport/qserialport_win.cpp index 3a42816..5747b26 100644 --- a/src/serialport/qserialport_win.cpp +++ b/src/serialport/qserialport_win.cpp @@ -178,7 +178,7 @@ public: bool ret = dptr->completeAsyncRead(numberOfBytesTransferred); // start async read for possible remainder into driver queue - if (ret && numberOfBytesTransferred > 0) { + if (ret && (numberOfBytesTransferred > 0) && (dptr->policy == QSerialPort::IgnorePolicy)) { dptr->startAsyncRead(); } else { // driver queue is emplty, so startup wait comm event CommOverlappedEventNotifier *n = |