From 3d62162f5e7486ec4012b6635c80af574e1cb7e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sun, 1 Nov 2020 22:17:59 +0100 Subject: [PATCH] Improve debug prints and rename adapter members --- .../deconz/zigbeebridgecontrollerdeconz.cpp | 2 - .../backends/deconz/zigbeenetworkdeconz.cpp | 13 +++- libnymea-zigbee/backends/nxp/interface/nxp.h | 29 +++++++- .../backends/nxp/zigbeenetworknxp.cpp | 12 ++- libnymea-zigbee/zdo/zigbeedeviceprofile.cpp | 8 +- libnymea-zigbee/zigbeebridgecontroller.cpp | 2 +- libnymea-zigbee/zigbeenetwork.cpp | 74 ++++++++++++------- libnymea-zigbee/zigbeenetwork.h | 6 ++ libnymea-zigbee/zigbeenetworkdatabase.cpp | 14 ++-- libnymea-zigbee/zigbeenetworkdatabase.h | 1 + libnymea-zigbee/zigbeeuartadapter.cpp | 30 ++++---- libnymea-zigbee/zigbeeuartadapter.h | 18 ++--- libnymea-zigbee/zigbeeuartadaptermonitor.cpp | 12 +-- 13 files changed, 144 insertions(+), 77 deletions(-) diff --git a/libnymea-zigbee/backends/deconz/zigbeebridgecontrollerdeconz.cpp b/libnymea-zigbee/backends/deconz/zigbeebridgecontrollerdeconz.cpp index 3f3805d..0902357 100644 --- a/libnymea-zigbee/backends/deconz/zigbeebridgecontrollerdeconz.cpp +++ b/libnymea-zigbee/backends/deconz/zigbeebridgecontrollerdeconz.cpp @@ -36,8 +36,6 @@ ZigbeeBridgeControllerDeconz::ZigbeeBridgeControllerDeconz(QObject *parent) : ZigbeeBridgeController(parent) { - qRegisterMetaType(); - m_interface = new ZigbeeInterfaceDeconz(this); connect(m_interface, &ZigbeeInterfaceDeconz::availableChanged, this, &ZigbeeBridgeControllerDeconz::onInterfaceAvailableChanged); connect(m_interface, &ZigbeeInterfaceDeconz::packageReceived, this, &ZigbeeBridgeControllerDeconz::onInterfacePackageReceived); diff --git a/libnymea-zigbee/backends/deconz/zigbeenetworkdeconz.cpp b/libnymea-zigbee/backends/deconz/zigbeenetworkdeconz.cpp index a8cfd4c..9bbe543 100644 --- a/libnymea-zigbee/backends/deconz/zigbeenetworkdeconz.cpp +++ b/libnymea-zigbee/backends/deconz/zigbeenetworkdeconz.cpp @@ -37,6 +37,7 @@ ZigbeeNetworkDeconz::ZigbeeNetworkDeconz(const QUuid &networkUuid, QObject *pare { m_controller = new ZigbeeBridgeControllerDeconz(this); connect(m_controller, &ZigbeeBridgeControllerDeconz::availableChanged, this, &ZigbeeNetworkDeconz::onControllerAvailableChanged); + connect(m_controller, &ZigbeeBridgeControllerDeconz::firmwareVersionChanged, this, &ZigbeeNetworkDeconz::firmwareVersionChanged); connect(m_controller, &ZigbeeBridgeControllerDeconz::apsDataConfirmReceived, this, &ZigbeeNetworkDeconz::onApsDataConfirmReceived); connect(m_controller, &ZigbeeBridgeControllerDeconz::apsDataIndicationReceived, this, &ZigbeeNetworkDeconz::onApsDataIndicationReceived); @@ -188,9 +189,9 @@ void ZigbeeNetworkDeconz::setCreateNetworkState(ZigbeeNetworkDeconz::CreateNetwo QByteArray paramData; QDataStream stream(¶mData, QIODevice::WriteOnly); - stream << static_cast(0); + stream << static_cast(extendedPanId()); stream.setByteOrder(QDataStream::LittleEndian); - qCDebug(dcZigbeeNetwork()) << "Configure APS extended PANID" << 0; + qCDebug(dcZigbeeNetwork()) << "Configure APS extended PANID" << extendedPanId(); ZigbeeInterfaceDeconzReply *reply = m_controller->requestWriteParameter(Deconz::ParameterApsExtendedPanId, paramData); connect(reply, &ZigbeeInterfaceDeconzReply::finished, this, [this, reply](){ if (reply->statusCode() != Deconz::StatusCodeSuccess) { @@ -434,9 +435,17 @@ void ZigbeeNetworkDeconz::startNetworkInternally() { qCDebug(dcZigbeeNetwork()) << "Start zigbee network internally"; + if (!m_database) { + QString networkDatabaseFileName = settingsDirectory().absolutePath() + QDir::separator() + QString("zigbee-network-%1.db").arg(networkUuid().toString().remove('{').remove('}')); + qCDebug(dcZigbeeNetwork()) << "Using ZigBee network database" << QFileInfo(networkDatabaseFileName).fileName(); + m_database = new ZigbeeNetworkDatabase(this, networkDatabaseFileName, this); + } + m_createNewNetwork = false; // Check if we have to create a pan ID and select the channel if (panId() == 0 || !m_coordinatorNode) { + qCDebug(dcZigbeeNetwork()) << "Generate new extended PAN ID..."; + setExtendedPanId(ZigbeeUtils::generateRandomPanId()); m_createNewNetwork = true; } diff --git a/libnymea-zigbee/backends/nxp/interface/nxp.h b/libnymea-zigbee/backends/nxp/interface/nxp.h index c459edf..5785321 100644 --- a/libnymea-zigbee/backends/nxp/interface/nxp.h +++ b/libnymea-zigbee/backends/nxp/interface/nxp.h @@ -1,3 +1,30 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* Copyright 2013 - 2020, nymea GmbH +* Contact: contact@nymea.io +* +* This file is part of nymea-zigbee. +* This project including source code and documentation is protected by copyright law, and +* remains the property of nymea GmbH. All rights, including reproduction, publication, +* editing and translation, are reserved. The use of this project is subject to the terms of a +* license agreement to be concluded with nymea GmbH in accordance with the terms +* of use of nymea GmbH, available under https://nymea.io/license +* +* GNU Lesser General Public License Usage +* Alternatively, this project may be redistributed and/or modified under the terms of the GNU +* Lesser General Public License as published by the Free Software Foundation; version 3. +* this project is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +* See the GNU Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License along with this project. +* If not, see . +* +* For any further details and any questions please contact us under contact@nymea.io +* or see our FAQ/Licensing Information on https://nymea.io/license/faq +* +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #ifndef NXP_H #define NXP_H @@ -21,7 +48,6 @@ public: CommandGetNetworkState = 0x08, CommandSetPermitJoinCoordinator = 0x09, - CommandSendApsDataRequest = 0x20 }; Q_ENUM(Command) @@ -56,7 +82,6 @@ public: }; Q_ENUM(LogLevel) - enum KeyType { KeyTypeGlobalLinkKey = 0x00, KeyTypeUniqueLinkKey = 0x01 diff --git a/libnymea-zigbee/backends/nxp/zigbeenetworknxp.cpp b/libnymea-zigbee/backends/nxp/zigbeenetworknxp.cpp index 4589ef0..47bafa4 100644 --- a/libnymea-zigbee/backends/nxp/zigbeenetworknxp.cpp +++ b/libnymea-zigbee/backends/nxp/zigbeenetworknxp.cpp @@ -36,6 +36,7 @@ ZigbeeNetworkNxp::ZigbeeNetworkNxp(const QUuid &networkUuid, QObject *parent) : { m_controller = new ZigbeeBridgeControllerNxp(this); connect(m_controller, &ZigbeeBridgeControllerNxp::availableChanged, this, &ZigbeeNetworkNxp::onControllerAvailableChanged); + connect(m_controller, &ZigbeeBridgeControllerNxp::firmwareVersionChanged, this, &ZigbeeNetworkNxp::firmwareVersionChanged); connect(m_controller, &ZigbeeBridgeControllerNxp::interfaceNotificationReceived, this, &ZigbeeNetworkNxp::onInterfaceNotificationReceived); connect(m_controller, &ZigbeeBridgeControllerNxp::controllerStateChanged, this, &ZigbeeNetworkNxp::onControllerStateChanged); connect(m_controller, &ZigbeeBridgeControllerNxp::apsDataConfirmReceived, this, &ZigbeeNetworkNxp::onApsDataConfirmReceived); @@ -324,8 +325,8 @@ void ZigbeeNetworkNxp::onControllerStateChanged(ZigbeeBridgeControllerNxp::Contr qCDebug(dcZigbeeNetwork()) << "We already have the coordinator node. Network starting done."; m_database->saveNode(m_coordinatorNode); - setState(StateRunning); setPermitJoiningInternal(false); + setState(StateRunning); return; } @@ -355,7 +356,14 @@ void ZigbeeNetworkNxp::onControllerStateChanged(ZigbeeBridgeControllerNxp::Contr setState(StateStarting); break; case ZigbeeBridgeControllerNxp::ControllerStateRunningUninitialized: { + // Create the database if there is no database available setState(StateStarting); + if (!m_database) { + QString networkDatabaseFileName = settingsDirectory().absolutePath() + QDir::separator() + QString("zigbee-network-%1.db").arg(networkUuid().toString().remove('{').remove('}')); + qCDebug(dcZigbeeNetwork()) << "Using ZigBee network database" << QFileInfo(networkDatabaseFileName).fileName(); + m_database = new ZigbeeNetworkDatabase(this, networkDatabaseFileName, this); + } + qCDebug(dcZigbeeNetwork()) << "Request controller version"; ZigbeeInterfaceNxpReply *reply = m_controller->requestVersion(); connect(reply, &ZigbeeInterfaceNxpReply::finished, this, [this, reply](){ @@ -586,6 +594,6 @@ void ZigbeeNetworkNxp::factoryResetNetwork() void ZigbeeNetworkNxp::destroyNetwork() { qCDebug(dcZigbeeNetwork()) << "Destroy network and delete the database"; - m_controller->disable(); + m_controller->disable(); clearSettings(); } diff --git a/libnymea-zigbee/zdo/zigbeedeviceprofile.cpp b/libnymea-zigbee/zdo/zigbeedeviceprofile.cpp index 5e71f38..6c13fb7 100644 --- a/libnymea-zigbee/zdo/zigbeedeviceprofile.cpp +++ b/libnymea-zigbee/zdo/zigbeedeviceprofile.cpp @@ -228,7 +228,7 @@ QDebug operator<<(QDebug debug, const ZigbeeDeviceProfile::MacCapabilities &macC debug.nospace() << " Power source main power: " << macCapabilities.powerSourceFlagMainPower << "\n"; debug.nospace() << " Receiver on when idle: " << macCapabilities.receiverOnWhenIdle << "\n"; debug.nospace() << " Security capability: " << macCapabilities.securityCapability << "\n"; - debug.nospace() << " Allocate address: " << macCapabilities.allocateAddress << "\n"; + debug.nospace() << " Allocate address: " << macCapabilities.allocateAddress; return debug; } @@ -241,7 +241,7 @@ QDebug operator<<(QDebug debug, const ZigbeeDeviceProfile::ServerMask &serverMas debug.nospace() << " Backup binding cache: " << serverMask.backupBindingCache << "\n"; debug.nospace() << " Primary discovery cache: " << serverMask.primaryDiscoveryCache << "\n"; debug.nospace() << " Backup discovery cache: " << serverMask.backupDiscoveryCache << "\n"; - debug.nospace() << " Network manager: " << serverMask.networkManager << "\n"; + debug.nospace() << " Network manager: " << serverMask.networkManager; return debug; } @@ -249,7 +249,7 @@ QDebug operator<<(QDebug debug, const ZigbeeDeviceProfile::DescriptorCapabilitie { debug.nospace() << "DescriptorCapabilities(" << ZigbeeUtils::convertByteToHexString(descriptorCapabilities.descriptorCapabilitiesFlag) << ")" << "\n"; debug.nospace() << " Extended active endpoint list available: " << descriptorCapabilities.extendedActiveEndpointListAvailable << "\n"; - debug.nospace() << " Extended simple descriptor list available: " << descriptorCapabilities.extendedSimpleDescriptorListAvailable << "\n"; + debug.nospace() << " Extended simple descriptor list available: " << descriptorCapabilities.extendedSimpleDescriptorListAvailable; return debug; } @@ -259,6 +259,6 @@ QDebug operator<<(QDebug debug, const ZigbeeDeviceProfile::PowerDescriptor &powe debug.nospace() << " Power mode: " << powerDescriptor.powerMode << "\n"; debug.nospace() << " Available power sources: " << powerDescriptor.availablePowerSources << "\n"; debug.nospace() << " Power source: " << powerDescriptor.powerSource << "\n"; - debug.nospace() << " Power level: " << powerDescriptor.powerLevel << "\n"; + debug.nospace() << " Power level: " << powerDescriptor.powerLevel; return debug; } diff --git a/libnymea-zigbee/zigbeebridgecontroller.cpp b/libnymea-zigbee/zigbeebridgecontroller.cpp index 2a57878..8b62d2e 100644 --- a/libnymea-zigbee/zigbeebridgecontroller.cpp +++ b/libnymea-zigbee/zigbeebridgecontroller.cpp @@ -30,7 +30,7 @@ ZigbeeBridgeController::ZigbeeBridgeController(QObject *parent) : QObject(parent) { - + qRegisterMetaType(); } QString ZigbeeBridgeController::firmwareVersion() const diff --git a/libnymea-zigbee/zigbeenetwork.cpp b/libnymea-zigbee/zigbeenetwork.cpp index fbc1282..f778cf6 100644 --- a/libnymea-zigbee/zigbeenetwork.cpp +++ b/libnymea-zigbee/zigbeenetwork.cpp @@ -112,6 +112,15 @@ void ZigbeeNetwork::setMacAddress(const ZigbeeAddress &zigbeeAddress) emit macAddressChanged(m_macAddress); } +QString ZigbeeNetwork::firmwareVersion() const +{ + if (bridgeController()) { + return bridgeController()->firmwareVersion(); + } else { + return QString(); + } +} + quint16 ZigbeeNetwork::panId() { return m_panId; @@ -272,6 +281,34 @@ void ZigbeeNetwork::removeZigbeeNode(const ZigbeeAddress &address) } +void ZigbeeNetwork::printNetwork() +{ + qCDebug(dcZigbeeNetwork()) << this; + foreach (ZigbeeNode *node, nodes()) { + qCDebug(dcZigbeeNetwork()) << " ---> " << node; + qCDebug(dcZigbeeNetwork()) << " " << node->nodeDescriptor(); + qCDebug(dcZigbeeNetwork()) << " " << node->powerDescriptor(); + qCDebug(dcZigbeeNetwork()) << " Endpoints: " << node->endpoints().count(); + foreach (ZigbeeNodeEndpoint *endpoint, node->endpoints()) { + qCDebug(dcZigbeeNetwork()) << " - " << endpoint; + qCDebug(dcZigbeeNetwork()) << " Input clusters:"; + foreach (ZigbeeCluster *cluster, endpoint->inputClusters()) { + qCDebug(dcZigbeeNetwork()) << " - " << cluster; + foreach (const ZigbeeClusterAttribute &attribute, cluster->attributes()) { + qCDebug(dcZigbeeNetwork()) << " - " << attribute; + } + } + qCDebug(dcZigbeeNetwork()) << " Output clusters:"; + foreach (ZigbeeCluster *cluster, endpoint->outputClusters()) { + qCDebug(dcZigbeeNetwork()) << " - " << cluster; + foreach (const ZigbeeClusterAttribute &attribute, cluster->attributes()) { + qCDebug(dcZigbeeNetwork()) << " - " << attribute; + } + } + } + } +} + void ZigbeeNetwork::addNodeInternally(ZigbeeNode *node) { if (m_nodes.contains(node)) { @@ -370,6 +407,8 @@ void ZigbeeNetwork::clearSettings() if (!m_database->wipeDatabase()) { qCWarning(dcZigbeeNetwork()) << "Failed to wipe the network database" << m_database->databaseName(); } + m_database->deleteLater(); + m_database = nullptr; } // Reset network configurations @@ -444,7 +483,7 @@ void ZigbeeNetwork::setState(ZigbeeNetwork::State state) m_state = state; if (state == StateRunning) { - qCDebug(dcZigbeeNetwork()) << this; + printNetwork(); } emit stateChanged(m_state); } @@ -543,32 +582,11 @@ void ZigbeeNetwork::onNodeClusterAttributeChanged(ZigbeeCluster *cluster, const QDebug operator<<(QDebug debug, ZigbeeNetwork *network) { - debug.nospace().noquote() << "ZigbeeNetwork (" << ZigbeeUtils::convertUint16ToHexString(network->panId()) - << ", Channel " << network->channel() - << ")" << "\n"; - foreach (ZigbeeNode *node, network->nodes()) { - debug.nospace().noquote() << " ---> " << node << "\n"; - debug.nospace().noquote() << " " << node->nodeDescriptor(); - debug.nospace().noquote() << " " << node->powerDescriptor(); - debug.nospace().noquote() << " Endpoints: " << node->endpoints().count() << "\n"; - foreach (ZigbeeNodeEndpoint *endpoint, node->endpoints()) { - debug.nospace().noquote() << " - " << endpoint << "\n"; - debug.nospace().noquote() << " Input clusters:" << "\n"; - foreach (ZigbeeCluster *cluster, endpoint->inputClusters()) { - debug.nospace().noquote() << " - " << cluster << "\n"; - foreach (const ZigbeeClusterAttribute &attribute, cluster->attributes()) { - debug.nospace().noquote() << " - " << attribute << "\n"; - } - } - debug.nospace().noquote() << " Output clusters:" << "\n"; - foreach (ZigbeeCluster *cluster, endpoint->outputClusters()) { - debug.nospace().noquote() << " - " << cluster << "\n"; - foreach (const ZigbeeClusterAttribute &attribute, cluster->attributes()) { - debug.nospace().noquote() << " - " << attribute << "\n"; - } - } - } - } - + debug.nospace().noquote() << "ZigbeeNetwork(" << network->macAddress() << ", " + << network->networkUuid().toString() << ", " + << network->backendType() << ", " + << "Channel: " << network->channel() << ", " + << network->state() + << ")"; return debug.space(); } diff --git a/libnymea-zigbee/zigbeenetwork.h b/libnymea-zigbee/zigbeenetwork.h index 0158c69..e4a7e3c 100644 --- a/libnymea-zigbee/zigbeenetwork.h +++ b/libnymea-zigbee/zigbeenetwork.h @@ -90,6 +90,8 @@ public: void setMacAddress(const ZigbeeAddress &zigbeeAddress); // Network configurations + QString firmwareVersion() const; + quint16 panId(); void setPanId(quint16 panId); @@ -108,6 +110,7 @@ public: bool permitJoining() const; void setPermitJoining(bool permitJoining); + quint8 generateSequenceNumber(); // Network nodes @@ -149,6 +152,8 @@ private: QList m_nodes; QList m_uninitializedNodes; + void printNetwork(); + private: void addNodeInternally(ZigbeeNode *node); void removeNodeInternally(ZigbeeNode *node); @@ -192,6 +197,7 @@ signals: void serialPortNameChanged(const QString &serialPortName); void serialBaudrateChanged(qint32 serialBaudrate); void macAddressChanged(const ZigbeeAddress &macAddress); + void firmwareVersionChanged(const QString &firmwareVersion); void panIdChanged(quint16 panId); void extendedPanIdChanged(quint64 extendedPanId); diff --git a/libnymea-zigbee/zigbeenetworkdatabase.cpp b/libnymea-zigbee/zigbeenetworkdatabase.cpp index a852ff7..6308c99 100644 --- a/libnymea-zigbee/zigbeenetworkdatabase.cpp +++ b/libnymea-zigbee/zigbeenetworkdatabase.cpp @@ -39,9 +39,9 @@ ZigbeeNetworkDatabase::ZigbeeNetworkDatabase(ZigbeeNetwork *network, const QStri m_network(network), m_databaseName(databaseName) { - m_db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), "zigbee"); + m_connectionName = QFileInfo(m_databaseName).baseName(); + m_db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), m_connectionName); m_db.setDatabaseName(m_databaseName); - qCDebug(dcZigbeeNetworkDatabase()) << "Opening zigbee network database" << m_db.databaseName(); if (!m_db.isValid()) { qCWarning(dcZigbeeNetworkDatabase()) << "The zigbee network database is not valid" << m_db.databaseName(); @@ -49,6 +49,7 @@ ZigbeeNetworkDatabase::ZigbeeNetworkDatabase(ZigbeeNetwork *network, const QStri return; } + qCDebug(dcZigbeeNetworkDatabase()) << "Opening zigbee network database" << m_db.databaseName(); if (!initDatabase()) { qCWarning(dcZigbeeNetworkDatabase()) << "Failed to initialize the database" << m_db.databaseName(); // FIXME: rotate database @@ -58,10 +59,9 @@ ZigbeeNetworkDatabase::ZigbeeNetworkDatabase(ZigbeeNetwork *network, const QStri ZigbeeNetworkDatabase::~ZigbeeNetworkDatabase() { - if (m_db.isOpen()) { - qCDebug(dcZigbeeNetworkDatabase()) << "Closing database" << m_db.databaseName(); - m_db.close(); - } + m_db.close(); + m_db = QSqlDatabase(); + QSqlDatabase::removeDatabase(m_connectionName); } QString ZigbeeNetworkDatabase::databaseName() const @@ -184,6 +184,8 @@ bool ZigbeeNetworkDatabase::wipeDatabase() return false; } m_db.close(); + m_db = QSqlDatabase(); + QSqlDatabase::removeDatabase(m_connectionName); // Delete database file QFile databaseFile(m_databaseName); diff --git a/libnymea-zigbee/zigbeenetworkdatabase.h b/libnymea-zigbee/zigbeenetworkdatabase.h index 3f1d35b..f18f13d 100644 --- a/libnymea-zigbee/zigbeenetworkdatabase.h +++ b/libnymea-zigbee/zigbeenetworkdatabase.h @@ -55,6 +55,7 @@ public: private: ZigbeeNetwork *m_network = nullptr; QString m_databaseName; + QString m_connectionName; QSqlDatabase m_db; bool initDatabase(); diff --git a/libnymea-zigbee/zigbeeuartadapter.cpp b/libnymea-zigbee/zigbeeuartadapter.cpp index ad540ac..8ccfbcf 100644 --- a/libnymea-zigbee/zigbeeuartadapter.cpp +++ b/libnymea-zigbee/zigbeeuartadapter.cpp @@ -62,43 +62,43 @@ void ZigbeeUartAdapter::setSystemLocation(const QString &systemLocation) m_systemLocation = systemLocation; } -bool ZigbeeUartAdapter::backendSuggestionAvailable() const +bool ZigbeeUartAdapter::hardwareRecognized() const { - return m_backendSuggestionAvailable; + return m_hardwareRecognized; } -void ZigbeeUartAdapter::setBackendSuggestionAvailable(bool backendSuggestionAvailable) +void ZigbeeUartAdapter::setHardwareRecognized(bool hardwareRecognized) { - m_backendSuggestionAvailable = backendSuggestionAvailable; + m_hardwareRecognized = hardwareRecognized; } -Zigbee::ZigbeeBackendType ZigbeeUartAdapter::suggestedZigbeeBackendType() const +Zigbee::ZigbeeBackendType ZigbeeUartAdapter::zigbeeBackend() const { - return m_suggestedZigbeeBackendType; + return m_zigbeeBackend; } -void ZigbeeUartAdapter::setSuggestedZigbeeBackendType(Zigbee::ZigbeeBackendType backendType) +void ZigbeeUartAdapter::setBackendType(Zigbee::ZigbeeBackendType backendType) { - m_suggestedZigbeeBackendType = backendType; + m_zigbeeBackend = backendType; } -qint32 ZigbeeUartAdapter::suggestedBaudRate() const +qint32 ZigbeeUartAdapter::baudRate() const { - return m_suggestedBaudRate; + return m_baudRate; } -void ZigbeeUartAdapter::setSuggestedBaudRate(qint32 baudRate) +void ZigbeeUartAdapter::setBaudRate(qint32 baudRate) { - m_suggestedBaudRate = baudRate; + m_baudRate = baudRate; } QDebug operator<<(QDebug debug, const ZigbeeUartAdapter &adapter) { debug.nospace() << "ZigbeeUartAdapter(" << adapter.name() << " - " << adapter.description(); debug.nospace() << ", " << adapter.systemLocation(); - if (adapter.backendSuggestionAvailable()) { - debug.nospace() << "Suggested backend: " << adapter.suggestedZigbeeBackendType(); - debug.nospace() << ", " << adapter.suggestedBaudRate(); + if (adapter.hardwareRecognized()) { + debug.nospace() << "Suggested backend: " << adapter.zigbeeBackend(); + debug.nospace() << ", " << adapter.baudRate(); } debug.nospace() << ")"; diff --git a/libnymea-zigbee/zigbeeuartadapter.h b/libnymea-zigbee/zigbeeuartadapter.h index f766d8d..85e3e08 100644 --- a/libnymea-zigbee/zigbeeuartadapter.h +++ b/libnymea-zigbee/zigbeeuartadapter.h @@ -47,23 +47,23 @@ public: QString systemLocation() const; void setSystemLocation(const QString &systemLocation); - bool backendSuggestionAvailable() const; - void setBackendSuggestionAvailable(bool backendSuggestionAvailable); + bool hardwareRecognized() const; + void setHardwareRecognized(bool hardwareRecognized); - Zigbee::ZigbeeBackendType suggestedZigbeeBackendType() const; - void setSuggestedZigbeeBackendType(Zigbee::ZigbeeBackendType backendType); + Zigbee::ZigbeeBackendType zigbeeBackend() const; + void setBackendType(Zigbee::ZigbeeBackendType backendType); - qint32 suggestedBaudRate() const; - void setSuggestedBaudRate(qint32 baudRate); + qint32 baudRate() const; + void setBaudRate(qint32 baudRate); private: QString m_name; QString m_description; QString m_systemLocation; - bool m_backendSuggestionAvailable = false; - Zigbee::ZigbeeBackendType m_suggestedZigbeeBackendType = Zigbee::ZigbeeBackendTypeDeconz; - qint32 m_suggestedBaudRate = 38400; + bool m_hardwareRecognized = false; + Zigbee::ZigbeeBackendType m_zigbeeBackend = Zigbee::ZigbeeBackendTypeDeconz; + qint32 m_baudRate = 38400; }; Q_DECLARE_METATYPE(ZigbeeUartAdapter) diff --git a/libnymea-zigbee/zigbeeuartadaptermonitor.cpp b/libnymea-zigbee/zigbeeuartadaptermonitor.cpp index 096779b..1a9336e 100644 --- a/libnymea-zigbee/zigbeeuartadaptermonitor.cpp +++ b/libnymea-zigbee/zigbeeuartadaptermonitor.cpp @@ -224,13 +224,13 @@ void ZigbeeUartAdapterMonitor::addAdapterInternally(const QString &systemLocatio // Check if we recognize this adapter from USB information if (serialPortInfo.manufacturer().toLower().contains("dresden elektronik")) { - adapter.setBackendSuggestionAvailable(true); - adapter.setSuggestedZigbeeBackendType(Zigbee::ZigbeeBackendTypeDeconz); - adapter.setSuggestedBaudRate(38400); + adapter.setHardwareRecognized(true); + adapter.setBackendType(Zigbee::ZigbeeBackendTypeDeconz); + adapter.setBaudRate(38400); } else if (serialPortInfo.manufacturer().toLower().contains("nxp")) { - adapter.setBackendSuggestionAvailable(true); - adapter.setSuggestedZigbeeBackendType(Zigbee::ZigbeeBackendTypeNxp); - adapter.setSuggestedBaudRate(115200); + adapter.setHardwareRecognized(true); + adapter.setBackendType(Zigbee::ZigbeeBackendTypeNxp); + adapter.setBaudRate(115200); } qCDebug(dcZigbeeAdapterMonitor()) << "Added" << adapter;