Merge PR #610: Clean up network device discovery replies due to mechanism update

master
jenkins 2022-10-26 13:53:33 +02:00
commit 7bdc1c9853
9 changed files with 10 additions and 11 deletions

View File

@ -61,6 +61,7 @@ void IntegrationPluginBosswerk::discoverThings(ThingDiscoveryInfo *info)
// Unauthorized page which looks unique enough. // Unauthorized page which looks unique enough.
// If this proves to not be reliable enough, one more option would be to connect to TCP port 8899 which is open // If this proves to not be reliable enough, one more option would be to connect to TCP port 8899 which is open
// and responds to a proprietary binary protocol which would need to be reverse engineered first. // and responds to a proprietary binary protocol which would need to be reverse engineered first.
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, info, [=](const NetworkDeviceInfo &networkDeviceInfo){ connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, info, [=](const NetworkDeviceInfo &networkDeviceInfo){
qCDebug(dcBosswerk()) << "Probing device" << networkDeviceInfo.address(); qCDebug(dcBosswerk()) << "Probing device" << networkDeviceInfo.address();

View File

@ -57,6 +57,7 @@ void IntegrationPluginFronius::discoverThings(ThingDiscoveryInfo *info)
qCDebug(dcFronius()) << "Starting network discovery..."; qCDebug(dcFronius()) << "Starting network discovery...";
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover(); NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, info, [=](){ connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, info, [=](){
ThingDescriptors descriptors; ThingDescriptors descriptors;
qCDebug(dcFronius()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; qCDebug(dcFronius()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";

View File

@ -59,11 +59,6 @@ void GoeDiscovery::startDiscovery()
qCInfo(dcGoECharger()) << "Discovery: Start discovering the network..."; qCInfo(dcGoECharger()) << "Discovery: Start discovering the network...";
m_discoveryReply = m_networkDeviceDiscovery->discover(); m_discoveryReply = m_networkDeviceDiscovery->discover();
// Check if all network device infos which might already be discovered here to save time...
foreach (const NetworkDeviceInfo &networkDeviceInfo, m_discoveryReply->networkDeviceInfos()) {
checkNetworkDevice(networkDeviceInfo);
}
// Test any network device beeing discovered // Test any network device beeing discovered
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &GoeDiscovery::checkNetworkDevice); connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &GoeDiscovery::checkNetworkDevice);
@ -71,6 +66,7 @@ void GoeDiscovery::startDiscovery()
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
// The network device discovery is done // The network device discovery is done
m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos(); m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos();
m_discoveryReply->deleteLater();
m_discoveryReply = nullptr; m_discoveryReply = nullptr;
// Check if all network device infos have been verified // Check if all network device infos have been verified

View File

@ -113,6 +113,7 @@ void KebaDiscovery::startDiscovery()
connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &KebaDiscovery::sendReportRequest); connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &KebaDiscovery::sendReportRequest);
// Check what might be left on finished // Check what might be left on finished
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
qCDebug(dcKeba()) << "Discovery: Network discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "network devices"; qCDebug(dcKeba()) << "Discovery: Network discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "network devices";
m_networkDeviceInfos = discoveryReply->networkDeviceInfos(); m_networkDeviceInfos = discoveryReply->networkDeviceInfos();

View File

@ -55,7 +55,8 @@ IntegrationPluginMeross::~IntegrationPluginMeross()
void IntegrationPluginMeross::discoverThings(ThingDiscoveryInfo *info) void IntegrationPluginMeross::discoverThings(ThingDiscoveryInfo *info)
{ {
NetworkDeviceDiscoveryReply *reply = hardwareManager()->networkDeviceDiscovery()->discover(); NetworkDeviceDiscoveryReply *reply = hardwareManager()->networkDeviceDiscovery()->discover();
connect(reply, &NetworkDeviceDiscoveryReply::finished, info, [info, reply, this](){ connect(reply, &NetworkDeviceDiscoveryReply::finished, reply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(reply, &NetworkDeviceDiscoveryReply::finished, info, [info, reply, this](){
foreach (const NetworkDeviceInfo &deviceInfo, reply->networkDeviceInfos()) { foreach (const NetworkDeviceInfo &deviceInfo, reply->networkDeviceInfos()) {
qCDebug(dcMeross) << "Discovery result" << deviceInfo; qCDebug(dcMeross) << "Discovery result" << deviceInfo;
if (deviceInfo.hostName().toLower().startsWith("meross_smart_plug") || deviceInfo.macAddressManufacturer().toLower().contains("meross")) { if (deviceInfo.hostName().toLower().startsWith("meross_smart_plug") || deviceInfo.macAddressManufacturer().toLower().contains("meross")) {

View File

@ -69,6 +69,7 @@ void IntegrationPluginNetworkDetector::discoverThings(ThingDiscoveryInfo *info)
qCDebug(dcNetworkDetector()) << "-->" << networkDeviceInfo; qCDebug(dcNetworkDetector()) << "-->" << networkDeviceInfo;
}); });
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, info, [=](){ connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, info, [=](){
ThingDescriptors descriptors; ThingDescriptors descriptors;
qCDebug(dcNetworkDetector()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; qCDebug(dcNetworkDetector()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";

View File

@ -126,6 +126,7 @@ bool SpeedwireDiscovery::startDiscovery()
qCDebug(dcSma()) << "SpeedwireDiscovery: Start discovering network..."; qCDebug(dcSma()) << "SpeedwireDiscovery: Start discovering network...";
NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover(); NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover();
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
qCDebug(dcSma()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; qCDebug(dcSma()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
m_networkDeviceInfos = discoveryReply->networkDeviceInfos(); m_networkDeviceInfos = discoveryReply->networkDeviceInfos();

View File

@ -54,11 +54,6 @@ void SunnyWebBoxDiscovery::startDiscovery()
qCInfo(dcSma()) << "Discovery: SunnyWebBox: Starting network discovery..."; qCInfo(dcSma()) << "Discovery: SunnyWebBox: Starting network discovery...";
m_discoveryReply = m_networkDeviceDiscovery->discover(); m_discoveryReply = m_networkDeviceDiscovery->discover();
// Check all network device infos which might already be discovered here to save time...
foreach (const NetworkDeviceInfo &networkDeviceInfo, m_discoveryReply->networkDeviceInfos()) {
checkNetworkDevice(networkDeviceInfo);
}
// Test any network device beeing discovered // Test any network device beeing discovered
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &SunnyWebBoxDiscovery::checkNetworkDevice); connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &SunnyWebBoxDiscovery::checkNetworkDevice);
@ -66,6 +61,7 @@ void SunnyWebBoxDiscovery::startDiscovery()
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
// The network device discovery is done // The network device discovery is done
m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos(); m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos();
m_discoveryReply->deleteLater();
m_discoveryReply = nullptr; m_discoveryReply = nullptr;
// Check if all network device infos have been verified // Check if all network device infos have been verified

View File

@ -53,6 +53,7 @@ void IntegrationPluginWakeOnLan::discoverThings(ThingDiscoveryInfo *info)
qCDebug(dcWakeOnLan()) << "Starting network discovery..."; qCDebug(dcWakeOnLan()) << "Starting network discovery...";
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover(); NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
ThingDescriptors descriptors; ThingDescriptors descriptors;
qCDebug(dcWakeOnLan()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; qCDebug(dcWakeOnLan()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";