summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Do not time out for -1 msec (wait methods)old/5.1Denis Shienkov2013-09-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the documentation of QIODevice: * http://qt-project.org/doc/qt-5.1/qtcore/qiodevice.html#waitForBytesWritten * http://qt-project.org/doc/qt-5.1/qtcore/qiodevice.html#waitForReadyRead these wait methods should not time out if msecs is -1. Currently, the behavior does not match the expected behavior as the negative values were overridden by zero. The operation returns as soon as the event loop processing happens. Now this problem is solved for Windows: the INFINITE flag has been added to the WaitForMultipleObjects call. See the MSDN documentation for details below: http://msdn.microsoft.com/en-us/library/windows/desktop/ms687025%28v=vs.85%29.aspx Note: the check is added only for -1 to be consistent with the behavior of other QIODevice subclasses. If it is any other negative integer, the value will be cast to the corresponding positive value which will indicate the waiting time. Tested with Qt4 and then Qt5. Change-Id: I2b8c8310723bca7beb9af0213edf4c855b5ac6ae Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Add support for BSD4 baud rates, i.e. not Unix compatibleLaszlo Papp2013-09-191-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) These baud rates were revealed for BSD 4 based operating systems. The relevant Qt macro might be added in the future once the grouping is fixed for all the baudrates. As for the time being, no other UNIX operating system has support for this that that is being awared of, other than BSDs, so that may result an easily maintainable code. 2) For future reference, it may be groupped separately from the "truly standard rates" as they are not yet present on Linux (and perhaps other Unix variants) and so forth. Therefore, it might result a simpler maintainable and more compact code snippet. 3) It is unknown if other UNIX variants add support for these in the future, but based on the last few decades, probably not any soon. 4) See the following headers for further details about the BSD, Mac and so forth termios.h content: OpenBSD: http://fxr.watson.org/fxr/source/sys/termios.h?v=OPENBSD#L228 FreeBSD: http://svnweb.freebsd.org/base/head/sys/sys/_termios.h?view=markup Apple: http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/sys/termios.h 5) The following wikipedia page can also serve a good basis for checking what the BSD 4 OS type includes for future reference if needed. http://en.wikipedia.org/wiki/Berkeley_Software_Distribution#4.4BSD_and_descendants 6) The macros may be necessary in the future as a user might define the baudrate on his own to get this right (i.e. with Qt4), but this can lead to confusion and errors as the kernel will actually not support it. This remains to be seen. 7) Another change follows this one fixing the grouping for the baud rates properly. 8) Thank you to Israel Lins Albuquerque for bringing up the topic on Gerrit. Change-Id: I04afe63f956f4a03dc45a81c5431110b8754127d Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Doc: language and standard reviewNico Vertriest2013-09-181-3/+4
| | | | | | | Task-number: QTBUG-32173 Change-Id: I225bc1e4dfe3c12d3441c86002305c542377cf5d Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Use the term 'directions' for representing the directionsLaszlo Papp2013-09-049-47/+47
| | | | | | | | | | | | 1) The previous 'dir' is incorrect because it should be plural for consistency based upon the other variable names. 2) 'dir' can be misleading in the context where such a term is also used for representing a directory, like in our case. Change-Id: I650cc64c2669286a4d7ef071a2ab3b7b63228977 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Fix the compilation for Android with Qt 5.Laszlo Papp2013-09-032-2/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) The termios struct is basically copied and pasted from the documentation: http://linux.die.net/man/3/termios Since, it is just an interface without complicated methods, it is not copyrightable, so it is safe enough. 2) This is also the same situation with the two defines we need for the kernel interface. They are just interface numbers, and not something that copyrightable. This has also been double checked and discussed with Lars in email. 3) The ::tcdrain convenience method cannot be used on Android, so the fallback "raw" ioctl syscall is used with the relevant parameters, e.g. TCSBREAK. http://linux.die.net/man/3/tcdrain 5) cfsetspeed seems to be a BSD 4.4 extension based on the termios(3) man page: http://linux.die.net/man/3/termios "cfsetspeed() is a 4.4BSD extension. It takes the same arguments as cfsetispeed(), and sets both input and output speed." ... hence this is replaced with separate calls for input and output without a specific Android "ifdef" in the code. It is actually also more consistent with the setcfispeed and setcfospeed just right above that snippet. Task-number: QTBUG-33139 Change-Id: If0abb8cec9e900fa2b6fc24df938cb778a344d55 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Unix: Deleting a duplicating call of a non-blocking mode on descriptorDenis Shienkov2013-08-261-2/+0
| | | | | | | | | | | | The call fcntl(fd, F_SETFL, FNDELAY) is superfluous because a flag FNDELAY duplicates by functionality an existing flag O_NONBLOCK in open() function. See more info, e.g.: http://linux.die.net/man/2/open Tested on Gnu/Linux distro's with Qt4 and Qt5. Change-Id: I01be72e78a9493af8077245cbf6a88e8c9d164ee Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Linux: Are added the missed QLatin1Char into libudev implementationDenis Shienkov2013-08-241-2/+2
| | | | | | Change-Id: Ic125079bd9154f9094aaf2878c514eeac2753038 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Qt 4: Refactor the shell handling for header generationLaszlo Papp2013-08-231-7/+3
| | | | | | | | | | | | | | | It does not make much sense to use branches for only a minor difference, hence there is now a precheck for the host os and the quote variable is set accordingly. This is a slightly modified version of what QtCreator's qtcreator.pro is using. Basically, single quote is used here for the quote variable rather than double quote as double quote is causing issues at least on my machine. Task-number: QTBUG-33125 Change-Id: I9eb0a0a62e1404a095cfc3b1bd68c519552d23b8 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Windows: acquire identifiers using the SetupDiGetDeviceInstanceId functionDenis Shienkov2013-08-181-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | This decision uses one identification string of the device instead of the list of hardware identifiers. See more detail in MSDN: * http://msdn.microsoft.com/en-us/library/windows/hardware/ff551106%28v=vs.85%29.aspx * http://msdn.microsoft.com/en-us/library/windows/hardware/ff541327%28v=vs.85%29.aspx The device instance ID unambiguously identifies the device in system and contains necessary values of identifiers, that allows to resolve some issues: * we can abandon a patch: https://codereview.qt-project.org/#change,61633 and Task-number: QTBUG-32684 automatically will be resolved * we can apply a patch: https://codereview.qt-project.org/#change,61752 because instance ID also contains the serial number info Checked on Windows 7 and 8 with USB PL2303 converter, USB Modem ZTE MF180, USB Android Modems, USB Motorola CDC ACM device. Change-Id: If3b67b5b34d65de060a0e7682ba426cd94a01fa7 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Linux: removed the duplicated linking of libudevDenis Shienkov2013-08-171-4/+0
| | | | | | | | | Existence checking and linking of libudev is already carried out by means of pkgconfig. Change-Id: I5233ab2ce7ed342d95e8ba646b4024c8ad6b8a78 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Eliminate the "q_ptr->" call by using Q_Q(QSerialPort)Laszlo Papp2013-07-287-61/+139
| | | | | | | | | | | Unfortunately, the q_ptr data member cannot yet be deleted from the internal data class because QIODevicePrivate would need to be inherited then. That is not a simple change considering the Qt4 support. Hence, that part of the logic is put on hold, but can be expected in an upcoming change at some point, soon. Change-Id: Ic8ba9621dd647f4afa1b91d01c858c836d1cc0c8 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Remove the const modifier from the pinoutSignals internal methodsLaszlo Papp2013-07-276-6/+6
| | | | | | | | | Logically, these methods set the error on their member, the public QSerialPort class, hence these are not const methods similarly to the public variant. Change-Id: I1580cf371556c820ce8e7df43121bc2800b08b40 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Remove the unnecessary Q_DECLARE_PUBLIC from the data classLaszlo Papp2013-07-271-1/+0
| | | | | | Change-Id: I8293dfc6d492bac59fa830d499902cabdc8d95dd Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Put Q_DECLARE_PRIVATE in the beginning of the classLaszlo Papp2013-07-271-1/+1
| | | | | | | | | This seems to be a usual practice by the majority of the Qt classes. There are a few examples against it, but that is the minority. Change-Id: I92f47f283a6cd279bc978761cb1ee375a514eeba Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Merge remote-tracking branch 'origin/release' into stableSergio Ahumada2013-07-265-15/+60
|\ | | | | | | Change-Id: Icf3f1dd9f471f33d129a74053c0599c6013170d7
| * Windows: Add PCI vendor and device identifier detectionv5.1.1Denis Shienkov2013-07-251-11/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PCI identifiers are different to the USB identifiers, as in: * USB: VID_, PID_ * PCI: VEN_, DEV_ For more info see MSDN: * USB: http://msdn.microsoft.com/en-us/library/windows/hardware/ff553356%28v=vs.85%29.aspx * PCI: http://msdn.microsoft.com/en-us/library/windows/hardware/ff546262%28v=vs.85%29.aspx Therefore, the method availablePorts() skipped processing of PCI prefixes. Now, problem was resolved. Task-number: QTBUG-32018 Change-Id: I098a35a170043b9c58b74cb278e4daff34b1f84e Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
| * Do not set an error for timeout as there is no timeout error handled yetLaszlo Papp2013-07-242-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will need a proper extension later with a dedicated timeout error for 5.2 which will follow this change. See the following QIODevice subclasses for details to get a rough idea: http://doc-snapshot.qt-project.org/qt5-stable/qtcore/qprocess.html#ProcessError-enum http://qt-project.org/doc/qt-5.0/qtcore/qfiledevice.html#FileError-enum http://doc-snapshot.qt-project.org/qt5-stable/qtnetwork/qabstractsocket.html#SocketError-enum This will also mean, we need to duplicate the qt_safe_select and qt_core_unix.cpp etc files as qt_safe_select is exported, but only from a private header. Anyway, more explain to come for that change. Task-number: QTBUG-32016 Change-Id: If10cd7b5575636f0f7ee3368258e80bd4766ff3a Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * Add changes-5.1.1 fileSergio Ahumada2013-07-231-0/+25
| | | | | | | | | | | | Change-Id: Ie9cb797b15859da5e0a4dcfeba6736c6ab3245bf Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
| * Linux: Added enumeration of Motorola IMX serial portsDenis Shienkov2013-07-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For Embedded "Freescale i.MX Linux" platform is added the filter for the Motorola IMX serial ports. These serial ports has names like "/dev/ttymxc*", see kernel sources: * http://lxr.free-electrons.com/source/drivers/serial/imx.c?v=2.6.31 Task-number: QTBUG-32563 Change-Id: I97b33cdbc8f1a8ff72a171e52ddc10cc0f53b4a2 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* | Catch only the WinEventAct for the event notifier for process completionFrancisco Gonzalez2013-07-241-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | This is necessary to filter out events like ThreadChange. The documentation writes "The object is moved to another thread. This is the last event sent to this object in the previous thread.". See the following url for details: http://qt-project.org/doc/qt-5.0/qtcore/qevent.html#Type-enum Change-Id: I091a4c1fe7f64337835e8ee1492c47cc73322fdc Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Do not use the const specifier for Q_D inside non-const methodsLaszlo Papp2013-07-241-3/+3
| | | | | | | | | | | | Change-Id: Ife35ae9f83e63f14f6eb56351454848933e9f3db Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* | Bump MODULE_VERSION to 5.1.2Sergio Ahumada2013-07-241-1/+1
|/ | | | | | Change-Id: Iecde0c3af8be02e73ba993bfb565dbba2a75ffa2 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Use QT_INSTALL_HEADERS instead of QT_INSTALL_PREFIX/includeLaszlo Papp2013-07-191-1/+1
| | | | | | | | | It is more accurate this way as there might be scenarios, like Red Hat, where the headers are not installed into $$QT_INSTALL_PREFIX/include. Task-number: QTBUG-31966 Change-Id: I4be31a4b218aed008fecba81e8d2b91616cea370 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Revert "Add property to set exclusivity"Laszlo Papp2013-07-089-129/+24
| | | | | | | | | | | | | | | | | | | This reverts commit 4c67500e5d14e561e37b4bdc056f059d3eefdfa4. "dev: unfrozen branch, containing alpha-quality code that is ready to go into beta testing at any time" ... from: http://qt-project.org/wiki/Branch-Guidelines Please respect the basic principles. In doubts, do not approve changes yourself, but ask for help. Besides the illegit nature of this change, it has fundamental documentation issues as well. It is summer, and this can wait until 5.2, so please do /not/ rush with approvals. Change-Id: Ic2763394035c776088cb28f9c04086920cedb3a2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add more "See also" references for the serial port info documentationLaszlo Papp2013-07-081-0/+22
| | | | | | Change-Id: I90fbcd6ce4f88869528ea8757aa7dd428c3adaa3 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Add a missing space to the codeLaszlo Papp2013-07-081-1/+1
| | | | | | Change-Id: I8e97e51801dbef8154f2dcba1bd2b9464486eccf Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Use consistent style for local constLaszlo Papp2013-07-081-3/+2
| | | | | | | | | | | | Should be: * consistent name with the rest * static as it is used only once inside the desired method * const int instead of enum for sanity and consistency Change-Id: I7a7a7b894a559d03b02a4358c87c464045950253 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Merge branch 'release' into stableSergio Ahumada2013-07-031-1/+1
|\ | | | | | | Change-Id: I82f533fb54d2c32ab0831f709320d2044eccc70e
| * Windows: Fix waitAnyEvent() methodDenis Shienkov2013-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wrong comparison between unsigned variable waitResult and signed size of vector. The waitResult variable was interpreted as signed data type, that led to an wrong result of comparison (e.g. when waitResult = WAIT_FAILED (0xFFFFFFFF)). The solution - convert the size of the array to an unsigned data type and leave waitResult without conversion. Thanks to "boo kan, ong". Task-number: QTBUG-32017 Change-Id: Iff25304d3d0345f47e3edc363a999a7b979cb1bb Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* | Add property to set exclusivityAlex Henrie2013-07-039-24/+129
| | | | | | | | | | | | | | | | | | Disabling the serial port driver's exclusive mode is necessary for pseudo serial ports and some USB/serial adapters to work correctly. Change-Id: I74d45feed619817b61e265b00aec8b0ebfae7a33 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Enums intended as flags is moved to Q_FLAGS() macroDenis Shienkov2013-06-251-1/+2
| | | | | | | | | | | | | | Task-number: QTBUG-31964 Change-Id: I771ace406cc549e9c48d84fe90974487202ee14b Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* | Fix an erratic name of enum "Rate" on "BaudRate" in Q_ENUMS macroDenis Shienkov2013-06-251-1/+1
| | | | | | | | | | | | Change-Id: I74ceefbb108c142fe260a5c86a9f610b0de91cde Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* | Use debug_and_release_target for mixed release and build selectionLaszlo Papp2013-06-251-1/+1
| | | | | | | | | | | | | | | | | | It is more appropriate as it is a more abstract use case than just tightening it to Windows. Change-Id: I60d0ea472299b3048ad6762512d632d010366f95 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-06-201-2/+7
|\ \ | |/ | | | | Change-Id: I08b51226675178ae62fa93c91bc8dd04d18bd62f
| * Windows: Fix no longer receive data after EV_TXEMPTY triggered for CDC ACM ↵v5.1.0-rc2v5.1.0-rc1v5.1.0Denis Shienkov2013-06-071-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | device A previous patch * SHA1 ID: 2bcac223e64599eb74889975053f6547000b13cb introduced a regression: after triggering of EV_TXEMPTY a reception of data is stopped. The reason for this was an immediate return from the handler processCompletionRoutine(). The solution - do not do an immediate return and let to call method startAsyncRead(). Thanks to Dan Task-number: QTPLAYGROUND-22 Change-Id: I1a6b358e6bbaba94527dc9db98a2ab046a8c6f05 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
| * Windows: Fix false ResourceError triggering for CDC ACM devicesDenis Shienkov2013-06-061-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When transmitted data to the USB serial port of the class CDC ACM, is triggered an unexpected TXEMPTY event, which we didn't add to a mask of events in SetCommMask(). In this case handler processCompletionRoutine() interpreted it as ResourceError. This DCD ACM devices over USB connection using the Microsoft USB serial driver (usbser.sys). Thus, allegedly, this behavior identical for all standard CDC ACM devices on Windows. Solution - check on unexpected EV_TXEMPTY flag and immediately return true from processCompletionRoutine(). Thanks to Josh Handley. Task-number: QTPLAYGROUND-22 Change-Id: Iac3eccc79e243e5bbf1a34cd44458c9ad265a5db Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* | Bump MODULE_VERSION to 5.1.1Sergio Ahumada2013-05-291-1/+1
|/ | | | | | Change-Id: I27019a0056156434a1151c09b3d5b38eba23897e Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* sync.profile: Point dependencies to an empty stringSergio Ahumada2013-05-261-1/+1
| | | | | | | | | | | This means that we are going to use the same branch name for the dependencies as the branch of the repository under test. If we are testing the 'stable' branch, all dependencies will point to the 'stable' branch as well. Change-Id: Ibb0cf31b90d04f280691859d66486803ff58cc78 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Doc: Updates based on sanity checkv5.1.0-beta1Venugopal Shivashankar2013-05-0611-299/+93
| | | | | | | | | | | | | - Removed redundant qdoc pages on supported platforms, getting source, and building from source. - Added a module page to list the C++ classes - Removed unnecessary \module commands in several pages - Made a few language edits to class documentation - Updated the index page with some introductory content - Fixed broken links to the examples Change-Id: Ia7bd74b383f344426814db736f7bc4cd77c13992 Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Update the documentation and internal setBreakEnabled APILaszlo Papp2013-05-067-22/+11
| | | | | | | | | | | | | The change 0add3b934b8405fc5b65efeba9f05cc1dc353e64 changed the API, and we had a compromise in there to get the API changes in as soon as possible. This change tries to address the suggested documentation and internal API changes. Only tested on Linux with Qt 4.8.4 and Qt 5.1, so it might break on other platforms. Change-Id: I153e5a35d76beb26e04dbabf184bc9b90ef4b70b Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* Fix examples directory layoutKai Koehne2013-05-0351-28/+30
| | | | | | | | | | | | | Move examples into a dedicated 'serialport' directory. This is in line with what the other modules do, and makes sure that the examples show up in a sensible place even for the 'combined' source packages. Task-number: QTBUG-30912 Change-Id: Iefa2b634df3d2eb34f655b34f6fb24a224b78869 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Revert "Refactor the Windows port enumeration from GUID classes to ↵Denis Shienkov2013-04-301-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | devinterfaces" This reverts commit 3bfe998860e0bfd3ce48784188eaa0d58bf86da1. Patch with enumerating of devices through interfaces GUID's enters many regressions, breaks universality and complicates realization. For example, it breaks enumeration of CDC ACM devices. Moreover, some devices (like Nokia phones) has incorrect registration in Windows registry so workaround will greatly complicates code. Decision with use of GUID's interfaces was worse than the previous with use of setup GUID's. Thus, was made the decision to roll away changes on really working decision with Setup Class GUID's. Now tested for devices: * built-in serial port * USB/Serial converter on PL2303 chip * USB/Serial converter on FTDI chip * USB/Bluetooth dongle with standard MS bluetooth stack * USB/CDMA Modem ZTE MF180 * Com0com virtual serial ports * Eltima virtual serial ports * Telit virtual serial ports * CDC ACM serial port on Motorola E398 phone * CDC ACM (and modem) serial port on Nokia E95 phone on Windows XP/7/8. Task-number: QTPLAYGROUND-27 Change-Id: Icc893e9e54e51dbf78da2d132dab6db986d94e03 Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Eliminate the blocking terminal example notes as it still does not existLaszlo Papp2013-04-302-4/+2
| | | | | Change-Id: I28986ada705996ada22b30d10877ea9eed0dba8f Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* API change: setBreak -> setBreakEnabledThiago Macieira2013-04-272-6/+2
| | | | | | | | | setBreak(false) to disable breaks are a bad idea. clearBreak(false) to enable breaks are an even worse idea. So rename the function to setBreakEnabled(), which follows existing Qt patterns. Change-Id: I5f76afc3c9e7039b55be231f6be4d5d20ec2e537 Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Workaround for fix sending of data for WinCE platformDenis Shienkov2013-04-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit * sha1: 544f927c3724344d01d45d19151d236c143f8c83 entered regression of implementation of data writing to the serial port. Regression is that after data writing to the internal ring buffer of a class these data really aren't transferred to the serial port and remain in this buffer because no event EV_TXEMPTY triggered. This event will occur only after the serial port will transfer at least one byte of data and the FIFO buffer of the driver becomes the free for transmission of the next portion of data from ring buffer of class. Thus the simplest decision is the forced call of WriteFile() of function after each addition of the internal ring buffer to trigger EV_TXEMPTY sequence. In this case we launch WriteFile() implicitly through the notifyWrite() method with the WriteChunkSize parameter (instead of one byte) to optimize transmission for speed (theoretically). WARNING: This decision is just a workaround and not a real fix, shall be decided in the future in more correct and effective way. Tested for target: "-platform win32-msvc2005 -xplatform wincewm50pocket-msvc2005" on standard Pocket PC WM5.0 Device Emulator. Task-number: QTPLAYGROUND-13 Change-Id: I4b3a36fa064dee92406a7511eb2b98b2a55e5315 Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Fix of errors of compilation on WinCE platformDenis Shienkov2013-04-211-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some previous commits entered regressions in compile process, namely: * sha1: 544f927c3724344d01d45d19151d236c143f8c83 After implementation of a new concept of internal architecture of library, is entered regression for the indefinite eventMask variable in the waitForReadOrWrite() method. Solution - to define a variable into this method. * sha1: 3ea635d74d4035c9036c2b7208b162620f51aa8b Entered the name space regression for the class CommEventNotifier. Solution - not to use a name space for this class. Tested for target: "-platform win32-msvc2005 -xplatform wincewm50pocket-msvc2005" Task-number: QTPLAYGROUND-13 Change-Id: I9dbcc0023f06c1b0e6d7b1b670828650382ab785 Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Refactor the Windows port enumeration from GUID classes to devinterfacesDenis Shienkov2013-04-201-12/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier enumeration of devices was made through GUID classes. But MSDN says that this approach became outdated (since Windows 2000), and instead of classes it is necessary to use GUID interfaces. See: * http://msdn.microsoft.com/en-us/library/windows/hardware/ff545036%28v=vs.85%29.aspx * http://msdn.microsoft.com/en-us/library/windows/hardware/ff545046%28v=vs.85%29.aspx Thus there was a changeover of: * GUID_DEVCLASS_PORTS by GUID_DEVINTERFACE_COMPORT * GUID_CLASS_MODEM by GUID_DEVINTERFACE_MODEM Of course, flags for the SetupDiGetClassDevs() function changed also. This approach decided the following: * Use of newer API for enumeration * There is no need GUID classes for non-standard "purely" the virtual devices (like com0com and so forth) * There is no need to check for name "LPT" existence, because GUID_DEVINTERFACE_COMPORT belong only to serial ports devices (instead of GUID_DEVCLASS_PORTS that include serial and parallel ports). It is checked on devices: * Built-in serial ports * USB/Serial converters (PL, FTDI) * USB Bluetooth serial ports (with standard MS stack) * USB modems (ZTE MF180) * Com0com virtual serial ports * Eltima virtual serial ports * Telit virtual serial ports It is checked on OS: Windows XP/Vista/7/8 Change-Id: I9da51d815ac5081a95113659be2b38ebd31275a4 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* Add further device filters on Linux without libudevDenis Shienkov2013-04-191-1/+3
| | | | | | | | | | | | | | Added: * ttyAMA filter for AMBA serial ports, e.g. see http://lxr.free-electrons.com/source/drivers/tty/serial/amba-pl011.c * ircomm filter for infrared serial devices, e.g. see http://www.tldp.org/HOWTO/html_single/Infrared-HOWTO/ Change-Id: I9e1cd04513a937f080978a7ecc7139a906de40f0 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
* doc: Minor changes to qtserialport.qdocconfSergio Ahumada2013-04-162-5/+8
| | | | | | | | | Organizing the file a bit to make it match other qdocconf files. Also, renaming \title Qt Serial Port to match other modules. Change-Id: I65938cad5184ca886765272294ce07d117f77b5a Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* Mentioning of Unbuffered mode in the open() method is removedDenis Shienkov2013-04-101-2/+1
| | | | | | | | | At present the Unbuffered mode isn't supported, therefore the mentioning is deleted. Change-Id: I399dd7ac79f6571a5d0738957120a046b2422fef Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>