diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2016-03-07 19:32:54 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-03-07 19:32:54 +0100 |
commit | f8449352c9af0ee8055c6a85981e092e9d109b9d (patch) | |
tree | 458d4f44ce94b764b773cacfc200329c0cb988d5 /src/serialport/qserialportinfo_win.cpp | |
parent | 5bee9d9f0f8cf5415ad9337aed88bccac3c15ce1 (diff) | |
parent | a2467f9ec2d09d6d665d169e0fb450169f921b12 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I35f19a7d266f90e957bfe01534a40c4d98b40b34
Diffstat (limited to 'src/serialport/qserialportinfo_win.cpp')
-rw-r--r-- | src/serialport/qserialportinfo_win.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/serialport/qserialportinfo_win.cpp b/src/serialport/qserialportinfo_win.cpp index 061207a8..4e72ea4c 100644 --- a/src/serialport/qserialportinfo_win.cpp +++ b/src/serialport/qserialportinfo_win.cpp @@ -270,16 +270,22 @@ static QString parseDeviceSerialNumber(const QString &instanceIdentifier) return instanceIdentifier.mid(firstbound + 1, lastbound - firstbound - 1); } -static QString deviceSerialNumber(const QString &instanceIdentifier, +static QString deviceSerialNumber(QString instanceIdentifier, DEVINST deviceInstanceNumber) { - QString result = parseDeviceSerialNumber(instanceIdentifier); - if (result.isEmpty()) { - const DEVINST parentNumber = parentDeviceInstanceNumber(deviceInstanceNumber); - const QString parentInstanceIdentifier = deviceInstanceIdentifier(parentNumber); - result = parseDeviceSerialNumber(parentInstanceIdentifier); + forever { + const QString result = parseDeviceSerialNumber(instanceIdentifier); + if (!result.isEmpty()) + return result; + deviceInstanceNumber = parentDeviceInstanceNumber(deviceInstanceNumber); + if (deviceInstanceNumber == 0) + break; + instanceIdentifier = deviceInstanceIdentifier(deviceInstanceNumber); + if (instanceIdentifier.isEmpty()) + break; } - return result; + + return QString(); } QList<QSerialPortInfo> QSerialPortInfo::availablePorts() @@ -351,11 +357,6 @@ QList<QSerialPortInfo> QSerialPortInfo::availablePorts() return serialPortInfoList; } -QList<qint32> QSerialPortInfo::standardBaudRates() -{ - return QSerialPortPrivate::standardBaudRates(); -} - bool QSerialPortInfo::isBusy() const { const HANDLE handle = ::CreateFile(reinterpret_cast<const wchar_t*>(systemLocation().utf16()), |