From 9381a5dcef6d2ae32398229ef18b533db1470bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 5 Nov 2020 15:36:23 +0100 Subject: [PATCH] Add serial number to uart information --- libnymea-zigbee/zigbeenode.cpp | 5 +++++ libnymea-zigbee/zigbeenode.h | 2 ++ libnymea-zigbee/zigbeeuartadapter.cpp | 23 +++++++++++++++----- libnymea-zigbee/zigbeeuartadapter.h | 10 ++++++--- libnymea-zigbee/zigbeeuartadaptermonitor.cpp | 14 +++++++----- libnymea-zigbee/zigbeeuartadaptermonitor.h | 2 +- 6 files changed, 41 insertions(+), 15 deletions(-) diff --git a/libnymea-zigbee/zigbeenode.cpp b/libnymea-zigbee/zigbeenode.cpp index 87109c7..47f8b75 100644 --- a/libnymea-zigbee/zigbeenode.cpp +++ b/libnymea-zigbee/zigbeenode.cpp @@ -51,6 +51,11 @@ bool ZigbeeNode::connected() const return m_connected; } +QUuid ZigbeeNode::networkUuid() const +{ + return m_network->networkUuid(); +} + ZigbeeDeviceObject *ZigbeeNode::deviceObject() const { return m_deviceObject; diff --git a/libnymea-zigbee/zigbeenode.h b/libnymea-zigbee/zigbeenode.h index e3059aa..cde7137 100644 --- a/libnymea-zigbee/zigbeenode.h +++ b/libnymea-zigbee/zigbeenode.h @@ -57,6 +57,8 @@ public: State state() const; bool connected() const; + QUuid networkUuid() const; + ZigbeeDeviceObject *deviceObject() const; quint16 shortAddress() const; diff --git a/libnymea-zigbee/zigbeeuartadapter.cpp b/libnymea-zigbee/zigbeeuartadapter.cpp index 8ccfbcf..b8e6295 100644 --- a/libnymea-zigbee/zigbeeuartadapter.cpp +++ b/libnymea-zigbee/zigbeeuartadapter.cpp @@ -52,14 +52,24 @@ void ZigbeeUartAdapter::setDescription(const QString &description) m_description = description; } -QString ZigbeeUartAdapter::systemLocation() const +QString ZigbeeUartAdapter::serialPort() const { - return m_systemLocation; + return m_serialPort; } -void ZigbeeUartAdapter::setSystemLocation(const QString &systemLocation) +void ZigbeeUartAdapter::setSerialPort(const QString &serialPort) { - m_systemLocation = systemLocation; + m_serialPort = serialPort; +} + +QString ZigbeeUartAdapter::serialNumber() const +{ + return m_serialNumber; +} + +void ZigbeeUartAdapter::setSerialNumber(const QString &serialNumber) +{ + m_serialNumber = serialNumber; } bool ZigbeeUartAdapter::hardwareRecognized() const @@ -95,7 +105,10 @@ void ZigbeeUartAdapter::setBaudRate(qint32 baudRate) QDebug operator<<(QDebug debug, const ZigbeeUartAdapter &adapter) { debug.nospace() << "ZigbeeUartAdapter(" << adapter.name() << " - " << adapter.description(); - debug.nospace() << ", " << adapter.systemLocation(); + debug.nospace() << ", " << adapter.serialPort(); + if (!adapter.serialNumber().isEmpty()) { + debug.nospace() << ", " << adapter.serialNumber(); + } if (adapter.hardwareRecognized()) { debug.nospace() << "Suggested backend: " << adapter.zigbeeBackend(); debug.nospace() << ", " << adapter.baudRate(); diff --git a/libnymea-zigbee/zigbeeuartadapter.h b/libnymea-zigbee/zigbeeuartadapter.h index 85e3e08..443c88a 100644 --- a/libnymea-zigbee/zigbeeuartadapter.h +++ b/libnymea-zigbee/zigbeeuartadapter.h @@ -44,8 +44,11 @@ public: QString description() const; void setDescription(const QString &description); - QString systemLocation() const; - void setSystemLocation(const QString &systemLocation); + QString serialPort() const; + void setSerialPort(const QString &serialPort); + + QString serialNumber() const; + void setSerialNumber(const QString &serialNumber); bool hardwareRecognized() const; void setHardwareRecognized(bool hardwareRecognized); @@ -59,7 +62,8 @@ public: private: QString m_name; QString m_description; - QString m_systemLocation; + QString m_serialPort; + QString m_serialNumber; bool m_hardwareRecognized = false; Zigbee::ZigbeeBackendType m_zigbeeBackend = Zigbee::ZigbeeBackendTypeDeconz; diff --git a/libnymea-zigbee/zigbeeuartadaptermonitor.cpp b/libnymea-zigbee/zigbeeuartadaptermonitor.cpp index 1a9336e..5443f99 100644 --- a/libnymea-zigbee/zigbeeuartadaptermonitor.cpp +++ b/libnymea-zigbee/zigbeeuartadaptermonitor.cpp @@ -182,14 +182,14 @@ bool ZigbeeUartAdapterMonitor::isValid() const return m_isValid; } -void ZigbeeUartAdapterMonitor::addAdapterInternally(const QString &systemLocation) +void ZigbeeUartAdapterMonitor::addAdapterInternally(const QString &serialPort) { foreach (const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts()) { - if (serialPortInfo.systemLocation() != systemLocation) + if (serialPortInfo.systemLocation() != serialPort) continue; - if (m_availableAdapters.keys().contains(systemLocation)) { - qCWarning(dcZigbeeAdapterMonitor()) << "The adapter" << systemLocation << "has already been added to the monitor."; + if (m_availableAdapters.keys().contains(serialPort)) { + qCWarning(dcZigbeeAdapterMonitor()) << "The adapter" << serialPort << "has already been added to the monitor."; continue; } @@ -215,12 +215,14 @@ void ZigbeeUartAdapterMonitor::addAdapterInternally(const QString &systemLocatio adapter.setName(serialPortInfo.portName()); } + if (serialPortInfo.description().isEmpty()) { adapter.setDescription("Unknown"); } else { adapter.setDescription(serialPortInfo.description()); } - adapter.setSystemLocation(serialPortInfo.systemLocation()); + adapter.setSerialPort(serialPortInfo.systemLocation()); + adapter.setSerialNumber(serialPortInfo.serialNumber()); // Check if we recognize this adapter from USB information if (serialPortInfo.manufacturer().toLower().contains("dresden elektronik")) { @@ -234,7 +236,7 @@ void ZigbeeUartAdapterMonitor::addAdapterInternally(const QString &systemLocatio } qCDebug(dcZigbeeAdapterMonitor()) << "Added" << adapter; - m_availableAdapters.insert(adapter.systemLocation(), adapter); + m_availableAdapters.insert(adapter.serialPort(), adapter); emit adapterAdded(adapter); } diff --git a/libnymea-zigbee/zigbeeuartadaptermonitor.h b/libnymea-zigbee/zigbeeuartadaptermonitor.h index dea9521..499edf9 100644 --- a/libnymea-zigbee/zigbeeuartadaptermonitor.h +++ b/libnymea-zigbee/zigbeeuartadaptermonitor.h @@ -53,7 +53,7 @@ private: QHash m_availableAdapters; - void addAdapterInternally(const QString &systemLocation); + void addAdapterInternally(const QString &serialPort); signals: void adapterAdded(const ZigbeeUartAdapter &adapter);