From 061a2cdb7e162b1e9ceb199984676126777d54ca Mon Sep 17 00:00:00 2001 From: Stone Li Date: Fri, 25 Aug 2023 09:10:14 +0800 Subject: [PATCH] ENH: do not change ip when connection name is different JIRA: STUDIO-4072 Change-Id: I6e72f894fa5eca91d5bbbfaca3e897be95c305e0 Signed-off-by: Stone Li (cherry picked from commit 15075195334a2e42097f3542402e1f889f480d3b) --- src/slic3r/GUI/DeviceManager.cpp | 9 ++++++++- src/slic3r/GUI/DeviceManager.hpp | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 066869386a..c1e696d826 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4704,6 +4704,10 @@ void DeviceManager::on_machine_alive(std::string json_str) if (j.contains("sec_link")) { sec_link = j["sec_link"].get(); } + std::string connection_name = ""; + if (j.contains("connection_name")) { + connection_name = j["connection_name"].get(); + } MachineObject* obj; @@ -4722,7 +4726,9 @@ 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()) { + 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; /* ip changed reconnect mqtt */ @@ -4754,6 +4760,7 @@ void DeviceManager::on_machine_alive(std::string json_str) obj->dev_connection_type = connect_type; obj->bind_state = bind_state; obj->bind_sec_link = sec_link; + obj->dev_connection_name = connection_name; //load access code AppConfig* config = Slic3r::GUI::wxGetApp().app_config; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index cae2402f2a..077e53849d 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -439,6 +439,7 @@ public: float nozzle_diameter { 0.0f }; std::string dev_connection_type; /* lan | cloud */ std::string connection_type() { return dev_connection_type; } + std::string dev_connection_name; /* lan | eth */ void set_dev_ip(std::string ip) {dev_ip = ip;}; bool has_access_right() { return !get_access_code().empty(); } std::string get_ftp_folder();