Implement remove node into the resource and missing network state changed signal handling
This commit is contained in:
parent
685948f8c8
commit
e9b5b618b2
@ -46,6 +46,7 @@ ZigbeeHardwareResourceImplementation::ZigbeeHardwareResourceImplementation(Zigbe
|
|||||||
ZigbeeHardwareResource(parent),
|
ZigbeeHardwareResource(parent),
|
||||||
m_zigbeeManager(zigbeeManager)
|
m_zigbeeManager(zigbeeManager)
|
||||||
{
|
{
|
||||||
|
connect(m_zigbeeManager, &ZigbeeManager::zigbeeNetworkChanged, this, &ZigbeeHardwareResourceImplementation::onZigbeeNetworkChanged);
|
||||||
connect(m_zigbeeManager, &ZigbeeManager::nodeAdded, this, &ZigbeeHardwareResourceImplementation::onZigbeeNodeAdded);
|
connect(m_zigbeeManager, &ZigbeeManager::nodeAdded, this, &ZigbeeHardwareResourceImplementation::onZigbeeNodeAdded);
|
||||||
connect(m_zigbeeManager, &ZigbeeManager::nodeRemoved, this, &ZigbeeHardwareResourceImplementation::onZigbeeNodeRemoved);
|
connect(m_zigbeeManager, &ZigbeeManager::nodeRemoved, this, &ZigbeeHardwareResourceImplementation::onZigbeeNodeRemoved);
|
||||||
connect(m_zigbeeManager, &ZigbeeManager::availableChanged, this, &ZigbeeHardwareResourceImplementation::onZigbeeAvailableChanged);
|
connect(m_zigbeeManager, &ZigbeeManager::availableChanged, this, &ZigbeeHardwareResourceImplementation::onZigbeeAvailableChanged);
|
||||||
@ -78,6 +79,17 @@ ZigbeeNode *ZigbeeHardwareResourceImplementation::getNode(const QUuid &networkUu
|
|||||||
return network->getZigbeeNode(extendedAddress);
|
return network->getZigbeeNode(extendedAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZigbeeHardwareResourceImplementation::removeNodeFromNetwork(const QUuid &networkUuid, ZigbeeNode *node)
|
||||||
|
{
|
||||||
|
ZigbeeNetwork *network = m_zigbeeManager->zigbeeNetworks().value(networkUuid);
|
||||||
|
if (!network) {
|
||||||
|
qCWarning(dcZigbeeResource()) << "Can not remove note from network" << networkUuid << "because there is no network with this uuid.";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
network->removeZigbeeNode(node->extendedAddress());
|
||||||
|
}
|
||||||
|
|
||||||
ZigbeeNetwork::State ZigbeeHardwareResourceImplementation::networkState(const QUuid &networkUuid)
|
ZigbeeNetwork::State ZigbeeHardwareResourceImplementation::networkState(const QUuid &networkUuid)
|
||||||
{
|
{
|
||||||
ZigbeeNetwork *network = m_zigbeeManager->zigbeeNetworks().value(networkUuid);
|
ZigbeeNetwork *network = m_zigbeeManager->zigbeeNetworks().value(networkUuid);
|
||||||
@ -141,6 +153,11 @@ void ZigbeeHardwareResourceImplementation::onZigbeeAvailableChanged(bool availab
|
|||||||
emit availableChanged(available);
|
emit availableChanged(available);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZigbeeHardwareResourceImplementation::onZigbeeNetworkChanged(ZigbeeNetwork *network)
|
||||||
|
{
|
||||||
|
emit networkStateChanged(network->networkUuid(), network->state());
|
||||||
|
}
|
||||||
|
|
||||||
void ZigbeeHardwareResourceImplementation::onZigbeeNodeAdded(const QUuid &networkUuid, ZigbeeNode *node)
|
void ZigbeeHardwareResourceImplementation::onZigbeeNodeAdded(const QUuid &networkUuid, ZigbeeNode *node)
|
||||||
{
|
{
|
||||||
qCDebug(dcZigbeeResource()) << node << "joined the network" << m_zigbeeManager->zigbeeNetworks().value(networkUuid);
|
qCDebug(dcZigbeeResource()) << node << "joined the network" << m_zigbeeManager->zigbeeNetworks().value(networkUuid);
|
||||||
|
|||||||
@ -51,6 +51,8 @@ public:
|
|||||||
void registerHandler(ZigbeeHandler *handler, HandlerType type = HandlerTypeVendor) override;
|
void registerHandler(ZigbeeHandler *handler, HandlerType type = HandlerTypeVendor) override;
|
||||||
|
|
||||||
ZigbeeNode* getNode(const QUuid &networkUuid, const ZigbeeAddress &extendedAddress) override;
|
ZigbeeNode* getNode(const QUuid &networkUuid, const ZigbeeAddress &extendedAddress) override;
|
||||||
|
void removeNodeFromNetwork(const QUuid &networkUuid, ZigbeeNode *node) override;
|
||||||
|
|
||||||
ZigbeeNetwork::State networkState(const QUuid &networkUuid) override;
|
ZigbeeNetwork::State networkState(const QUuid &networkUuid) override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
@ -62,6 +64,7 @@ protected:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onZigbeeAvailableChanged(bool available);
|
void onZigbeeAvailableChanged(bool available);
|
||||||
|
void onZigbeeNetworkChanged(ZigbeeNetwork *network);
|
||||||
void onZigbeeNodeAdded(const QUuid &networkUuid, ZigbeeNode *node);
|
void onZigbeeNodeAdded(const QUuid &networkUuid, ZigbeeNode *node);
|
||||||
void onZigbeeNodeRemoved(const QUuid &networkUuid, ZigbeeNode *node);
|
void onZigbeeNodeRemoved(const QUuid &networkUuid, ZigbeeNode *node);
|
||||||
|
|
||||||
|
|||||||
@ -56,6 +56,7 @@ public:
|
|||||||
|
|
||||||
virtual void registerHandler(ZigbeeHandler *handler, HandlerType type = HandlerTypeVendor) = 0;
|
virtual void registerHandler(ZigbeeHandler *handler, HandlerType type = HandlerTypeVendor) = 0;
|
||||||
virtual ZigbeeNode* getNode(const QUuid &networkUuid, const ZigbeeAddress &extendedAddress) = 0;
|
virtual ZigbeeNode* getNode(const QUuid &networkUuid, const ZigbeeAddress &extendedAddress) = 0;
|
||||||
|
virtual void removeNodeFromNetwork(const QUuid &networkUuid, ZigbeeNode *node) = 0;
|
||||||
|
|
||||||
virtual ZigbeeNetwork::State networkState(const QUuid &networkUuid) = 0;
|
virtual ZigbeeNetwork::State networkState(const QUuid &networkUuid) = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user