mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-09 07:56:24 -06:00
ENH:add network detection for LAN mode printer
Change-Id: I0e3616b08f1a455df05c98c3b194ff9177df3ff1
This commit is contained in:
parent
9936c2b823
commit
c000ab2d8a
7 changed files with 29 additions and 16 deletions
|
@ -148,7 +148,7 @@ void ConnectPrinterDialog::on_button_confirm(wxCommandEvent &event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_obj) {
|
if (m_obj) {
|
||||||
m_obj->set_access_code(code.ToStdString());
|
m_obj->set_user_access_code(code.ToStdString());
|
||||||
wxGetApp().getDeviceManager()->set_selected_machine(m_obj->dev_id);
|
wxGetApp().getDeviceManager()->set_selected_machine(m_obj->dev_id);
|
||||||
}
|
}
|
||||||
EndModal(wxID_OK);
|
EndModal(wxID_OK);
|
||||||
|
|
|
@ -2032,7 +2032,7 @@ int MachineObject::connect(bool is_anonymous)
|
||||||
std::string password;
|
std::string password;
|
||||||
if (!is_anonymous) {
|
if (!is_anonymous) {
|
||||||
username = "bblp";
|
username = "bblp";
|
||||||
password = access_code;
|
password = get_access_code();
|
||||||
}
|
}
|
||||||
if (m_agent) {
|
if (m_agent) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -404,7 +404,7 @@ public:
|
||||||
std::string dev_connection_type; /* lan | cloud */
|
std::string dev_connection_type; /* lan | cloud */
|
||||||
std::string connection_type() { return dev_connection_type; }
|
std::string connection_type() { return dev_connection_type; }
|
||||||
void set_dev_ip(std::string ip) {dev_ip = ip;};
|
void set_dev_ip(std::string ip) {dev_ip = ip;};
|
||||||
bool has_access_right() { return !access_code.empty(); }
|
bool has_access_right() { return !get_access_code().empty(); }
|
||||||
void set_access_code(std::string code);
|
void set_access_code(std::string code);
|
||||||
std::string get_access_code();
|
std::string get_access_code();
|
||||||
void set_user_access_code(std::string code);
|
void set_user_access_code(std::string code);
|
||||||
|
|
|
@ -1714,7 +1714,7 @@ void GUI_App::init_networking_callbacks()
|
||||||
event.SetInt(1);
|
event.SetInt(1);
|
||||||
event.SetString(obj->dev_id);
|
event.SetString(obj->dev_id);
|
||||||
} else if (state == ConnectStatus::ConnectStatusFailed) {
|
} else if (state == ConnectStatus::ConnectStatusFailed) {
|
||||||
obj->set_access_code("");
|
obj->set_user_access_code("");
|
||||||
m_device_manager->set_selected_machine("");
|
m_device_manager->set_selected_machine("");
|
||||||
wxString text;
|
wxString text;
|
||||||
if (msg == "5") {
|
if (msg == "5") {
|
||||||
|
|
|
@ -141,13 +141,17 @@ void SendJob::process()
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
BOOST_LOG_TRIVIAL(error) << "access code is invalid";
|
BOOST_LOG_TRIVIAL(error) << "access code is invalid";
|
||||||
m_enter_ip_address_fun_fail();
|
m_enter_ip_address_fun_fail();
|
||||||
}
|
|
||||||
else {
|
|
||||||
m_enter_ip_address_fun_success();
|
|
||||||
}
|
|
||||||
m_job_finished = true;
|
m_job_finished = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (!m_chck_and_continue) {
|
||||||
|
m_enter_ip_address_fun_success();
|
||||||
|
m_job_finished = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
/* display info */
|
/* display info */
|
||||||
|
|
||||||
if (this->connection_type == "lan") {
|
if (this->connection_type == "lan") {
|
||||||
|
|
|
@ -21,6 +21,7 @@ class SendJob : public PlaterJob
|
||||||
bool m_job_finished{ false };
|
bool m_job_finished{ false };
|
||||||
int m_print_job_completed_id = 0;
|
int m_print_job_completed_id = 0;
|
||||||
bool m_is_check_mode{false};
|
bool m_is_check_mode{false};
|
||||||
|
bool m_chck_and_continue{false};
|
||||||
std::function<void()> m_success_fun{nullptr};
|
std::function<void()> m_success_fun{nullptr};
|
||||||
std::function<void()> m_enter_ip_address_fun_fail{nullptr};
|
std::function<void()> m_enter_ip_address_fun_fail{nullptr};
|
||||||
std::function<void()> m_enter_ip_address_fun_success{nullptr};
|
std::function<void()> m_enter_ip_address_fun_success{nullptr};
|
||||||
|
@ -54,6 +55,7 @@ public:
|
||||||
|
|
||||||
wxString get_http_error_msg(unsigned int status, std::string body);
|
wxString get_http_error_msg(unsigned int status, std::string body);
|
||||||
void set_check_mode() {m_is_check_mode = true;};
|
void set_check_mode() {m_is_check_mode = true;};
|
||||||
|
void check_and_continue() {m_chck_and_continue = true;};
|
||||||
bool is_finished() { return m_job_finished; }
|
bool is_finished() { return m_job_finished; }
|
||||||
void process() override;
|
void process() override;
|
||||||
void on_success(std::function<void()> success);
|
void on_success(std::function<void()> success);
|
||||||
|
|
|
@ -571,10 +571,14 @@ void SendToPrinterDialog::on_ok(wxCommandEvent &event)
|
||||||
if (!dev) return;
|
if (!dev) return;
|
||||||
|
|
||||||
MachineObject *obj_ = dev->get_selected_machine();
|
MachineObject *obj_ = dev->get_selected_machine();
|
||||||
assert(obj_->dev_id == m_printer_last_select);
|
|
||||||
if (obj_ == nullptr) {
|
if (obj_ == nullptr) {
|
||||||
|
m_printer_last_select = "";
|
||||||
|
m_comboBox_printer->SetTextLabel("");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
assert(obj_->dev_id == m_printer_last_select);
|
||||||
|
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ", print_job: for send task, current printer id = " << m_printer_last_select << std::endl;
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ", print_job: for send task, current printer id = " << m_printer_last_select << std::endl;
|
||||||
show_status(PrintDialogStatus::PrintStatusSending);
|
show_status(PrintDialogStatus::PrintStatusSending);
|
||||||
|
@ -649,7 +653,6 @@ void SendToPrinterDialog::on_ok(wxCommandEvent &event)
|
||||||
|
|
||||||
m_send_job = std::make_shared<SendJob>(m_status_bar, m_plater, m_printer_last_select);
|
m_send_job = std::make_shared<SendJob>(m_status_bar, m_plater, m_printer_last_select);
|
||||||
m_send_job->m_dev_ip = obj_->dev_ip;
|
m_send_job->m_dev_ip = obj_->dev_ip;
|
||||||
|
|
||||||
m_send_job->m_access_code = obj_->get_access_code();
|
m_send_job->m_access_code = obj_->get_access_code();
|
||||||
m_send_job->m_local_use_ssl = obj_->local_use_ssl;
|
m_send_job->m_local_use_ssl = obj_->local_use_ssl;
|
||||||
m_send_job->connection_type = obj_->connection_type();
|
m_send_job->connection_type = obj_->connection_type();
|
||||||
|
@ -657,10 +660,7 @@ void SendToPrinterDialog::on_ok(wxCommandEvent &event)
|
||||||
m_send_job->has_sdcard = obj_->has_sdcard();
|
m_send_job->has_sdcard = obj_->has_sdcard();
|
||||||
m_send_job->set_project_name(m_current_project_name.utf8_string());
|
m_send_job->set_project_name(m_current_project_name.utf8_string());
|
||||||
|
|
||||||
/*m_send_job->on_check_ip_address_success([this, obj_]() {
|
enable_prepare_mode = false;
|
||||||
wxCommandEvent* evt = new wxCommandEvent(EVT_CLEAR_IPADDRESS);
|
|
||||||
wxQueueEvent(this, evt);
|
|
||||||
});*/
|
|
||||||
|
|
||||||
m_send_job->on_check_ip_address_fail([this]() {
|
m_send_job->on_check_ip_address_fail([this]() {
|
||||||
wxCommandEvent* evt = new wxCommandEvent(EVT_CLEAR_IPADDRESS);
|
wxCommandEvent* evt = new wxCommandEvent(EVT_CLEAR_IPADDRESS);
|
||||||
|
@ -668,8 +668,15 @@ void SendToPrinterDialog::on_ok(wxCommandEvent &event)
|
||||||
wxGetApp().show_ip_address_enter_dialog();
|
wxGetApp().show_ip_address_enter_dialog();
|
||||||
});
|
});
|
||||||
|
|
||||||
enable_prepare_mode = false;
|
if (obj_->is_lan_mode_printer()) {
|
||||||
|
m_send_job->set_check_mode();
|
||||||
|
m_send_job->check_and_continue();
|
||||||
m_send_job->start();
|
m_send_job->start();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_send_job->start();
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(info) << "send_job: send print job";
|
BOOST_LOG_TRIVIAL(info) << "send_job: send print job";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue