From 405886925c956822a2797f4a63eff245efe0c773 Mon Sep 17 00:00:00 2001 From: tao wang Date: Wed, 13 Sep 2023 11:14:50 +0800 Subject: [PATCH] FIX:fixed the issue of IP changes Change-Id: Iff87825ae92effa5a4e473d7282c172c6871c0cf --- src/slic3r/GUI/DeviceManager.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index bfe286d7b..5bead6573 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2436,6 +2436,7 @@ void MachineObject::reset() extruder_axis_status = LOAD; nozzle_diameter = 0.0f; network_wired = false; + dev_connection_name = ""; // reset print_json json empty_j; @@ -4754,13 +4755,24 @@ void DeviceManager::on_machine_alive(std::string json_str) // update properties /* ip changed */ obj = it->second; - if (obj->dev_ip.compare(dev_ip) != 0 && !obj->dev_ip.empty() - && obj->dev_connection_name.compare(connection_name) != 0 - ) { - BOOST_LOG_TRIVIAL(info) << "MachineObject IP changed from " << obj->dev_ip << " to " << dev_ip; - obj->dev_ip = dev_ip; + + if (obj->dev_ip.compare(dev_ip) != 0) { + if ( connection_name.empty() ) { + BOOST_LOG_TRIVIAL(info) << "MachineObject IP changed from " << obj->dev_ip << " to " << dev_ip; + obj->dev_ip = dev_ip; + } + else { + if ( obj->dev_connection_name.empty() || obj->dev_connection_name.compare(connection_name) == 0) { + BOOST_LOG_TRIVIAL(info) << "MachineObject IP changed from " << obj->dev_ip << " to " << dev_ip << " connection_name is " << connection_name; + if(obj->dev_connection_name.empty()){obj->dev_connection_name = connection_name;} + obj->dev_ip = dev_ip; + } + + } /* ip changed reconnect mqtt */ } + + obj->wifi_signal = printer_signal; obj->dev_connection_type= connect_type; obj->bind_state = bind_state;