diff options
Diffstat (limited to 'src/serialport/qserialportinfo_mac.cpp')
-rw-r--r-- | src/serialport/qserialportinfo_mac.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/serialport/qserialportinfo_mac.cpp b/src/serialport/qserialportinfo_mac.cpp index 2c2564e..d540b15 100644 --- a/src/serialport/qserialportinfo_mac.cpp +++ b/src/serialport/qserialportinfo_mac.cpp @@ -43,6 +43,7 @@ #include "qserialportinfo.h" #include "qserialportinfo_p.h" +#include "qserialport_unix_p.h" #include <sys/param.h> @@ -290,4 +291,38 @@ QList<QSerialPortInfo> QSerialPortInfo::availablePorts() return serialPortInfoList; } +QList<qint32> QSerialPortInfo::standardBaudRates() +{ + return QSerialPortPrivate::standardBaudRates(); +} + +bool QSerialPortInfo::isBusy() const +{ + QString lockFilePath = serialPortLockFilePath(portName()); + if (lockFilePath.isEmpty()) + return false; + + QFile reader(lockFilePath); + if (!reader.open(QIODevice::ReadOnly)) + return false; + + QByteArray pidLine = reader.readLine(); + pidLine.chop(1); + if (pidLine.isEmpty()) + return false; + + qint64 pid = pidLine.toLongLong(); + + if (pid && (::kill(pid, 0) == -1) && (errno == ESRCH)) + return false; // PID doesn't exist anymore + + return true; +} + +bool QSerialPortInfo::isValid() const +{ + QFile f(systemLocation()); + return f.exists(); +} + QT_END_NAMESPACE |