Improve node removed behavior
This commit is contained in:
parent
977938c49f
commit
76d43fc99e
@ -353,16 +353,17 @@ void ZigbeeNetwork::removeZigbeeNode(const ZigbeeAddress &address)
|
|||||||
}
|
}
|
||||||
|
|
||||||
qCDebug(dcZigbeeNetwork()) << "Removing" << node << "from the newtork";
|
qCDebug(dcZigbeeNetwork()) << "Removing" << node << "from the newtork";
|
||||||
|
removeNodeInternally(node);
|
||||||
|
|
||||||
ZigbeeDeviceObjectReply *zdoReply = node->deviceObject()->requestMgmtLeaveNetwork();
|
ZigbeeDeviceObjectReply *zdoReply = node->deviceObject()->requestMgmtLeaveNetwork();
|
||||||
connect(zdoReply, &ZigbeeDeviceObjectReply::finished, this, [this, zdoReply, node](){
|
connect(zdoReply, &ZigbeeDeviceObjectReply::finished, this, [zdoReply, node](){
|
||||||
if (zdoReply->error() != ZigbeeDeviceObjectReply::ErrorNoError) {
|
if (zdoReply->error() != ZigbeeDeviceObjectReply::ErrorNoError) {
|
||||||
qCWarning(dcZigbeeNode()) << "Failed to send management leave request to" << node << zdoReply->error();
|
qCWarning(dcZigbeeNode()) << "Failed to send management leave request to" << node << zdoReply->error();
|
||||||
qCWarning(dcZigbeeNode()) << "This node is gonna be removed internally. TODO: try to remove using ZDO once it shows up the next time.";
|
qCWarning(dcZigbeeNode()) << "This node is gonna be removed internally. TODO: try to remove using ZDO once it shows up the next time.";
|
||||||
}
|
}
|
||||||
|
|
||||||
removeNode(node);
|
node->deleteLater();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZigbeeNetwork::printNetwork()
|
void ZigbeeNetwork::printNetwork()
|
||||||
@ -462,7 +463,8 @@ void ZigbeeNetwork::removeNodeInternally(ZigbeeNode *node)
|
|||||||
|
|
||||||
m_nodes.removeAll(node);
|
m_nodes.removeAll(node);
|
||||||
emit nodeRemoved(node);
|
emit nodeRemoved(node);
|
||||||
node->deleteLater();
|
|
||||||
|
m_database->removeNode(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZigbeeNetwork::initializeDatabase()
|
void ZigbeeNetwork::initializeDatabase()
|
||||||
@ -616,7 +618,7 @@ void ZigbeeNetwork::removeNode(ZigbeeNode *node)
|
|||||||
{
|
{
|
||||||
qCDebug(dcZigbeeNetwork()) << "Remove node" << node;
|
qCDebug(dcZigbeeNetwork()) << "Remove node" << node;
|
||||||
removeNodeInternally(node);
|
removeNodeInternally(node);
|
||||||
m_database->removeNode(node);
|
node->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZigbeeNetwork::removeUninitializedNode(ZigbeeNode *node)
|
void ZigbeeNetwork::removeUninitializedNode(ZigbeeNode *node)
|
||||||
|
|||||||
Reference in New Issue
Block a user