summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Fix documentation warningsTopi Reinio2019-11-111-0/+2
| | | | | | | | | | | | | | The header file for QWinOverlappedIoNotifier is not available when building on non-Windows platform - as the class is \internal anyway, suppress the Clang-parser warnings by marking also the member functions as \internal. Remove a link to example file page terminal/console.cpp, as QDoc no longer treats these files as linkable targets. Fixes: QTBUG-79809 Change-Id: Ic3bc33c1c27bc234513fe6977877116ed16c22eb Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Remove excess module conditionv5.14.0-beta2Joerg Bornemann2019-10-151-1/+0
| | | | | | | | That condition overwrites the actual condition at the top of the file. Fixes: QTBUG-79208 Change-Id: I70905ed693b30b6aa15b29bbf42acf33d9df2b35 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Avoid possible symbol clashes on static builds on Windowsv5.14.0-beta1Denis Shienkov2019-09-252-4/+4
| | | | | | | | | | | | | We have same 'resolveSymbols' functions names in the global namespace as in the qtserialport module and as in the qtserialbus module. This can lead to the arbitrary call of this function from a different module that can lead to the crash or other issue (e.g. to this issue QTBUG-78546). So, we can just to rename this function that solves this issue in the future. Change-Id: I25f9d2a33c6858c5194d8c76eefd518eecfb6f7b Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Port ntddmodm config test to new configure systemv5.14.0-alpha1Liang Qi2019-09-181-0/+42
| | | | | | | Change-Id: Ib8c633534df0cf025b8d9845de6322b8285e73c1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-171-7/+3
|\ | | | | | | Change-Id: I946c7c1cfb6b34e15f21f83e7a3ce01f34874839
| * Revert "Emit _q_notify only if there's no notification pending"Denis Shienkov2019-09-091-7/+3
| | | | | | | | | | | | | | | | | | | | This reverts commit 85ee2c658a45d2958a54045951d236769640337f. That commit completely breaks the I/O on Windows. Task-number: QTBUG-78086 Change-Id: I9125967d6cb5b1cb4e33d0bad80ee66322e5ccc7 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Mark QSerialPortInfo::isBusy as obsolete/deprecated in the docsAlex Blasche2019-08-061-0/+1
| | | | | | | | | | | | Change-Id: I007eb08f66a17d6e8ba200dc2e4e0529ba696ffa Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Remove usages of deprecated APIsSona Kurazyan2019-08-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | - Fixed the build with disabled deprecated APIs. - Made the docs for deprecated APIs to compile conditionally, based on the deprecation version. Task-number: QTBUG-76491 Change-Id: I38fbd84254d3d35b2bc208994c9fd70142450ad8 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-223-2/+435
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I0f003a4aef121836be3ed7f1b82e23321fdfe884
| * Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-07-111-3/+7
| |\
| | * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-111-3/+7
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I5ce880f305ebb0af7f7803769cecf2c899bede12
| | | * Emit _q_notify only if there's no notification pendingJoerg Bornemann2019-07-011-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the waitXXX functions in a loop, many _q_notify signals are emitted. They are connection via Qt::QueuedConnection, but the event loop never gets the chance to process them. Introduce a counter to count the attempts to send a notification, but only send it once. Fixes: QTBUG-74961 Change-Id: I0ee4522db63844bdd37169d3a31bde2d6f92f383 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | | Doc: Replace example file lists with links to code.qt.ioTopi Reinio2019-07-091-0/+1
| |/ / | | | | | | | | | | | | | | | Task-number: QTBUG-74391 Change-Id: I5a468676a2dd9dd44aa80d39a614b06acb0aed81 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-111-2/+10
| |\ \ | | |/ | | | | | | Change-Id: I3d5718006e8fee8fa3c2f97aec03183a4db1aa7c
| | * QSerialPortInfo: Fix enumeration of 'Gadget' serial devices on LinuxDenis Shienkov2019-05-071-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'gadget' serial devices have no parent nodes and were skipped from enumeration. We need to check the names of these devices against the 'ttyGS' prefix and then add matching devices to the enumeration. [ChangeLog] Fixed enumeration of 'Gadget' (/dev/ttyGS*) serial devices on Linux. Change-Id: I88afd80358153795152c1b2c929ca5bfb3adbabb Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch> Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | QSerialPort: Port to alertable I/O functions on WindowsDenis Shienkov2019-06-087-637/+418
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes the QWinOverlappedIoNotifier in favor of alertable I/O functions like {Read|Write}FileEx(). The reason is that the QWinOverlappedIoNotifier is very complex to maintain. To use the alertable functions in the serial port we need an alertable analog of WaitCommEvent function. This function does not exist in the Win32 API, but we implement it trough a set of the system NtXXX and RtlXXX functions, which are resolved dynamically. This patch was tested with auto-tests and the examples using the: * com0com virtual serial port driver. * eltima virtual serial port driver. * pl2303 USB/serial converters. Task-number: QTBUG-74961 Change-Id: Idc428173eee7a1066a4693de00aa38416c4ee86c Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13v5.13.0-beta1v5.13.0-alpha1Qt Forward Merge Bot2019-02-021-2/+2
|\ \ | |/ | | | | Change-Id: I3931aca16393acc9c698dcf018801e1d031004bc
| * Android: Enable building again with the supported NDK versionAndy Shaw2019-01-231-2/+2
| | | | | | | | | | Change-Id: I9cf8c41c4fb37728154bc0cd74124a549b00e3ff Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-11-241-1/+1
|\ \ | |/ | | | | Change-Id: I35bc56c0e1bc2efa96c86c7a0a33322e72a4fdd9
| * Remove wince check as it is not supportedOliver Wolff2018-11-221-1/+1
| | | | | | | | | | | | Change-Id: Ie4f4239368e292cfbd7e36456c7c1d638d404077 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix namespaced buildLiang Qi2018-10-041-2/+2
|/ | | | | | | | | | It is not allowed to include files within Qt namespace. See 5b99f3a3 in qtbase dev. Change-Id: I21af750ef73dfe3c1191c1e8cc843c3235be3c19 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Exclude clang-cl from enum value deprecationFriedemann Kleint2018-04-171-2/+2
| | | | | | | | | | Fixes numerous warnings: unknown pragma ignored [-Wunknown-pragmas] when compiling with clang-cl. Task-number: QTBUG-63512 Change-Id: Idba2ab207d6512e3930ee467b98d4dc73b8aeb25 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Start overlapped I/O notifier before any asynchronous operationv5.11.0-beta4Denis Shienkov2018-04-091-3/+6
| | | | | | | | | | | | | | | | | | This commit d57b9e83857253a1479f89fca18ea5856db39fb7 introduced a regression, where the QSP may ignore all the read events when the data comes to the device within opening. In this case, even re-opening of a device does not help. Reason is that the QWinOverlappedIoNotifier is enabled after than the startAsyncCommunication() called, that probably, leads to ignoring for all EV_RXCHAR events. A workaround is to enable the notifier before than any of I/O operation called. Task-number: QTBUG-67224 Change-Id: I21538fddc4dfd850c600e1d74f3c393a59a00549 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Don't poll for POLLIN event if device is open in WriteOnly on Linuxv5.11.0-beta3v5.11.0-beta2Denis Shienkov2018-03-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Following code snippet: QSerialPort serial("/dev/ttyUSB0"); serial.open(QIODevice::WriteOnly); serial.write("ABCDEF"); serial.waitForBytesWritten(-1); causes an application crash if some of data will be received by the serial port. Reason is that qt_poll_msecs() triggered with POLLIN event, even if the device is opened with O_WRONLY flag. In this case the readNotification() handler is called, which trying to reserve some space from the uninitialized read QRingBuffer, that causes an assertion. Solution is to don't use the POLLIN event if device is open with O_WRONLY flag. Change-Id: I205be31608359f52b5ef286a33dd266ed11a2649 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-161-13/+19
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Icf5a1d17d2a9ea612449f2fdbf6903892cbed411
| * Fix license headersJani Heikkinen2018-01-151-13/+19
| | | | | | | | | | | | | | | | old header.LGPL21 was used in some src files.Replace ones in src/ with correct header.LGPL one. Also remove unnecessary license files. Change-Id: I1d752c8361b8b23fcd3232818553da60bbdabfca Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Doc: Resolve 'Cannot tie this documentation to anything' warningTopi Reinio2018-01-121-3/+3
| | | | | | | | | | | | | | | | As QWinOverlappedIoNotifierPrivate is not documented, replace the /*! ... */ comment with a standard C-style comment. Change-Id: I813e62503214fc686b913ccd770fb6e35922baa9 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Doc: Move extra comments into the QDoc comment blockTopi Reinio2018-01-121-3/+6
| | | | | | | | | | | | | | | | QDoc requires the function body to follow immediately after the /*! ... */ comment. Change-Id: I385bdfe16003e29950352a83ddb13fe75badcc5f Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-207-121/+79
|\ \ | |/ | | | | | | | | | | | | Conflicts: examples/serialport/blockingmaster/masterthread.h examples/serialport/blockingslave/slavethread.h Change-Id: I6b6bf25b41ff0f1b0b9632069d3b13f6c47c6421
| * Update include instructions in documentation overview pagesv5.10.0-beta4Andre Hartmann2017-11-032-4/+17
| | | | | | | | | | | | | | | | | | The examples were already adopted to use <QSerialPort> instead <QtSerialPort/QtSerialPort>. Change-Id: Id9d3b0b04f31ac3d32554aa34941696903511577 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-301-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/serialport/blockingmaster/masterthread.cpp Change-Id: I3716089bae99247f98ed02656d4418de5f866c1d
| | * Update waitFor{ReadyRead|BytesWritten} documentation for timeoutsAndre Hartmann2017-09-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QSerialPort] Added a note to the documentation that waitForReadyRead() and waitForBytesWritten() never time out if the parameter msecs is -1. Change-Id: I5852da14faf1bba5a338db6a8764da582238aae7 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * | Fix order for some includesv5.10.0-beta3Denis Shienkov2017-10-251-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | Qt includes should be added before platform-specific includes. Change-Id: Ie8bcf306c9e0f3d5d719ee57bcddc8bd2967f5cb Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: André Hartmann <aha_1980@gmx.de>
| * | Allow more paths for lookup of lock-file directoriesDenis Shienkov2017-10-251-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It makes sense to use the QStandardPaths::writableLocation(QStandardPaths::TempLocation) directory for any of Unix-like platforms, as a 'last resort' to store the lock-files, if no other preferable directory was found. Change-Id: Ifd1a5789c014388509b29837171d3fdc440d63e6 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | Make some more d-pointers constDenis Shienkov2017-10-241-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I844f5102077e7b4d5240947a614bfb163c8b7890 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: André Hartmann <aha_1980@gmx.de>
| * | Add missed 'explicit' keywordsDenis Shienkov2017-10-241-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I12da9eb3a57fc312fb4b029714166af10755ca76 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: André Hartmann <aha_1980@gmx.de>
| * | Use C++11 member class initializationDenis Shienkov2017-10-124-94/+46
| | | | | | | | | | | | | | | | | | Change-Id: I427b993a3a71f199029a8956cdf0dc2c98f0e444 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: André Hartmann <aha_1980@gmx.de>
* | | Replace Q_DECL_OVERRIDE with overrideKevin Funk2017-09-212-14/+14
|/ / | | | | | | | | | | Change-Id: Ia7491b477bac319a8e0ee1a3e20778c8078edb15 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Port QWinOverlappedIoNotifier to QDeadlineTimerThiago Macieira2017-08-154-28/+24
| | | | | | | | | | Change-Id: Ib57b52598e2f452985e9fffd1459eb18587c99e3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-074-7/+13
|\ \ | |/ | | | | | | | | | | | | Conflicts: .qmake.conf src/serialport/qserialport_win.cpp Change-Id: Icc832e218a1135cb82e780ccaa63abd990289eaf
| * QSPP::startAsyncRead(): set a correct type for variableAlex Trotsenko2017-05-041-1/+1
| | | | | | | | | | | | | | | | 'bytesToRead' takes the result of signed 64-bit computation which could be negative. So, its type should be qint64. Change-Id: Ib51129143fcb70475ad383df417ae4282c858e41 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * Fix possible UB in ReadFile()v5.9.0-beta4Alex Trotsenko2017-04-251-1/+1
| | | | | | | | | | | | | | | | This patch replicates commit 225ef1baeb0e49f157f3ba1271915e623bd27dd9 for Windows. Change-Id: Ic4e3444183289e7ce1a487500633fb5ad95590b9 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * Fix possible UB in read() under UnixAlex Trotsenko2017-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | If the user calls setReadBufferSize() with a value lesser than the current size of the read buffer, then we get UB in readNotification(): readFromPort(nullptr, some_negative_value); Change-Id: Iddf5838c84c8615670285e9883c48f29faacc07e Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * Fix bytesToWrite()Alex Trotsenko2017-04-221-2/+5
| | | | | | | | | | | | | | | | | | We should not add the size of the internal write buffer here because QIODevice::bytesToWrite() already checks it. Also, take into account the size of 'writeChunkBuffer' on Windows. Change-Id: I87dfcb4dd1cd9d2bbb6f82a084d79fb4db9323d8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Doc: Remove unnecessary \fn tag for the swap() functionDenis Shienkov2017-03-181-2/+1
| | | | | | | | | | | | | | ... as this function is implemented in cpp file. Change-Id: Ia5a0c262ebdb4b98b4575c85ab45fdc93742731f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
| * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-03-101-0/+4
| |\ | | | | | | | | | Change-Id: Ib336529542ae9b78937ad1573fde71ccfcc4c1ad
| | * Doc: Describe limitations to use of QSP::setRequestToSend()5.8Denis Shienkov2017-03-061-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | The limitations were introduced by the commit 56c001b, but were not documented. Change-Id: I5e44ab78e2e5cce2477ebc1f83280fa8c22e0ef6 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Use local copy of QWinOverlappedIoNotifierDenis Shienkov2017-05-174-2/+524
| | | | | | | | | | | | | | | | | | | | | | | | ... as there are plans to remove it from the QtCore. Change-Id: I79a2250b7b392896fa1c7307488a74dd44d62736 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | | Improve read performance when the buffer size is limitedAlex Trotsenko2017-04-264-25/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Read notifications should be enabled all the time while the device is opened unless the buffer size limit is reached. To enable the read notifier again, the user needs to read the data or enlarge the buffer with a setReadBufferSize() call. According to that scenario, it's very likely that the device will toggle the state of notifier twice (on->off->on) in one notification cycle. This patch prevents this unnecessary toggling by: - unconditionally setting the notifier's state in setReadBufferSize()/ readData(); - deferring the notification disabling in readNotification() on Unix and in completeAsyncRead() on Windows to the next notification cycle. Change-Id: I97fc041bb705c034a7e73d1437e64b9b34dc2c18 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | Increase buffer chunk sizesDenis Shienkov2017-04-264-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces the number of syscalls and thus the CPU load when dealing with fast ports. And 32KiB seems still small enough to be no concern on modern hardware even if it's excessive for a given port. Change-Id: I4749e4255627d3abf2393323216e01ac6436413b Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>