summaryrefslogtreecommitdiffstats
path: root/src/serialport/qserialportinfo_win.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-03-07 19:32:54 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-03-07 19:32:54 +0100
commitf8449352c9af0ee8055c6a85981e092e9d109b9d (patch)
tree458d4f44ce94b764b773cacfc200329c0cb988d5 /src/serialport/qserialportinfo_win.cpp
parent5bee9d9f0f8cf5415ad9337aed88bccac3c15ce1 (diff)
parenta2467f9ec2d09d6d665d169e0fb450169f921b12 (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Diffstat (limited to 'src/serialport/qserialportinfo_win.cpp')
-rw-r--r--src/serialport/qserialportinfo_win.cpp25
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()),