Make it possible to set the port values before opening
authorLaszlo Papp <lpapp@kde.org>
Sun, 2 Mar 2014 14:35:37 +0000 (14:35 +0000)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 6 Mar 2014 09:47:32 +0000 (10:47 +0100)
commit7c737e0edcb93585856c65890ef34e5c5a28ee6b
tree8daf3a17a6d2b8696b82ba48ca6a9f03badeca43
parent903c050fa4fdd2124f9f0709520b75a557080a92
Make it possible to set the port values before opening

This patch also changes the behavior of the open method. We do not use port
detection anymore for good. It has been a broken concept, and it is very
unlikely that anyone has ever relied on it. If anyone had done that, they would
be in trouble anyway, getting noisy warnings needlessly and all that.

The other option was also considered to keep this behavior optionally as the
default, but that would complicate the API too much without not much gain.

The default port settings are now also the sane 9600,8,N,1, and no flow control.
Also please note that the serial port is closed automatically in the open method
if any of the settings fails.

Several subsequent changes can follow this one, namely:

* Changing the examples to show this usage.

* Add a QSerialPortSettings data structure as it seems to be common currently in
client codes.

* Add the QML plugin with only thin wrapper declarative classes and all that.

* Deprecate the restore settings on close API.

* Remove the internal current and restored data representations.

* Add further error values to the API for the fine tuning of the error reporting
when there are setting errors on open.

* Add proper test coverage.

In short, this change opens the gate up for many interesting subsequent changes
that would be useful for the module overall.

In general, this change makes it possible to reach the feature parity with
QextSerialPort so that we are not much worse anymore. We could do the same that
QextSerialPort could do many years ago, already.

Task-number: QTBUG-33774

Change-Id: I8527672f8b0bb2581fa7054ccffda66ab7fa4a85
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
src/serialport/qserialport.cpp
src/serialport/qserialport_symbian.cpp
src/serialport/qserialport_symbian_p.h
src/serialport/qserialport_unix.cpp
src/serialport/qserialport_unix_p.h
src/serialport/qserialport_win.cpp
src/serialport/qserialport_win_p.h
src/serialport/qserialport_wince.cpp