mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 00:37:51 -06:00
NEW: support wait function in print job
JIRA: STUDIO-4175 Change-Id: I15bdd07dcd2bd153cc94ad411f180c8ab2022ceb Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
parent
c09252ce11
commit
1f50a2a421
3 changed files with 22 additions and 14 deletions
|
@ -209,7 +209,7 @@ void PrintJob::process()
|
||||||
params.filename = job_data._temp_path.string();
|
params.filename = job_data._temp_path.string();
|
||||||
params.connection_type = this->connection_type;
|
params.connection_type = this->connection_type;
|
||||||
|
|
||||||
result = m_agent->start_send_gcode_to_sdcard(params, nullptr, nullptr);
|
result = m_agent->start_send_gcode_to_sdcard(params, nullptr, nullptr, nullptr);
|
||||||
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();
|
||||||
|
@ -391,6 +391,12 @@ void PrintJob::process()
|
||||||
return was_canceled();
|
return was_canceled();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
auto wait_fn = [this](int state, std::string job_info) {
|
||||||
|
// TODO
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
if (params.connection_type != "lan") {
|
if (params.connection_type != "lan") {
|
||||||
if (params.dev_ip.empty())
|
if (params.dev_ip.empty())
|
||||||
params.comments = "no_ip";
|
params.comments = "no_ip";
|
||||||
|
@ -413,7 +419,7 @@ void PrintJob::process()
|
||||||
BOOST_LOG_TRIVIAL(info) << "print_job: use ftp send print only";
|
BOOST_LOG_TRIVIAL(info) << "print_job: use ftp send print only";
|
||||||
this->update_status(curr_percent, _L("Sending print job over LAN"));
|
this->update_status(curr_percent, _L("Sending print job over LAN"));
|
||||||
is_try_lan_mode = true;
|
is_try_lan_mode = true;
|
||||||
result = m_agent->start_local_print_with_record(params, update_fn, cancel_fn);
|
result = m_agent->start_local_print_with_record(params, update_fn, cancel_fn, wait_fn);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
error_text = wxString::Format("Access code:%s Ip address:%s", params.password, params.dev_ip);
|
error_text = wxString::Format("Access code:%s Ip address:%s", params.password, params.dev_ip);
|
||||||
// try to send with cloud
|
// try to send with cloud
|
||||||
|
@ -429,7 +435,7 @@ void PrintJob::process()
|
||||||
// try to send local with record
|
// try to send local with record
|
||||||
BOOST_LOG_TRIVIAL(info) << "print_job: try to start local print with record";
|
BOOST_LOG_TRIVIAL(info) << "print_job: try to start local print with record";
|
||||||
this->update_status(curr_percent, _L("Sending print job over LAN"));
|
this->update_status(curr_percent, _L("Sending print job over LAN"));
|
||||||
result = m_agent->start_local_print_with_record(params, update_fn, cancel_fn);
|
result = m_agent->start_local_print_with_record(params, update_fn, cancel_fn, wait_fn);
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
params.comments = "";
|
params.comments = "";
|
||||||
}
|
}
|
||||||
|
@ -444,13 +450,13 @@ void PrintJob::process()
|
||||||
// try to send with cloud
|
// try to send with cloud
|
||||||
BOOST_LOG_TRIVIAL(warning) << "print_job: try to send with cloud";
|
BOOST_LOG_TRIVIAL(warning) << "print_job: try to send with cloud";
|
||||||
this->update_status(curr_percent, _L("Sending print job through cloud service"));
|
this->update_status(curr_percent, _L("Sending print job through cloud service"));
|
||||||
result = m_agent->start_print(params, update_fn, cancel_fn);
|
result = m_agent->start_print(params, update_fn, cancel_fn, wait_fn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_LOG_TRIVIAL(info) << "print_job: send with cloud";
|
BOOST_LOG_TRIVIAL(info) << "print_job: send with cloud";
|
||||||
this->update_status(curr_percent, _L("Sending print job through cloud service"));
|
this->update_status(curr_percent, _L("Sending print job through cloud service"));
|
||||||
result = m_agent->start_print(params, update_fn, cancel_fn);
|
result = m_agent->start_print(params, update_fn, cancel_fn, wait_fn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -489,6 +495,8 @@ void PrintJob::process()
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(error) << "print_job: failed, result = " << result;
|
BOOST_LOG_TRIVIAL(error) << "print_job: failed, result = " << result;
|
||||||
} else {
|
} else {
|
||||||
|
// wait for printer mqtt ready the same job id
|
||||||
|
|
||||||
wxGetApp().plater()->record_slice_preset("print");
|
wxGetApp().plater()->record_slice_preset("print");
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(error) << "print_job: send ok.";
|
BOOST_LOG_TRIVIAL(error) << "print_job: send ok.";
|
||||||
|
|
|
@ -139,7 +139,7 @@ void SendJob::process()
|
||||||
params.filename = job_data._temp_path.string();
|
params.filename = job_data._temp_path.string();
|
||||||
params.connection_type = this->connection_type;
|
params.connection_type = this->connection_type;
|
||||||
|
|
||||||
result = m_agent->start_send_gcode_to_sdcard(params, nullptr, nullptr);
|
result = m_agent->start_send_gcode_to_sdcard(params, nullptr, nullptr, nullptr);
|
||||||
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();
|
||||||
|
@ -317,7 +317,7 @@ void SendJob::process()
|
||||||
// try to send local with record
|
// try to send local with record
|
||||||
BOOST_LOG_TRIVIAL(info) << "send_job: try to send gcode to printer";
|
BOOST_LOG_TRIVIAL(info) << "send_job: try to send gcode to printer";
|
||||||
this->update_status(curr_percent, _L("Sending gcode file over LAN"));
|
this->update_status(curr_percent, _L("Sending gcode file over LAN"));
|
||||||
result = m_agent->start_send_gcode_to_sdcard(params, update_fn, cancel_fn);
|
result = m_agent->start_send_gcode_to_sdcard(params, update_fn, cancel_fn, nullptr);
|
||||||
if (result == BAMBU_NETWORK_ERR_FTP_UPLOAD_FAILED) {
|
if (result == BAMBU_NETWORK_ERR_FTP_UPLOAD_FAILED) {
|
||||||
params.comments = "upload_failed";
|
params.comments = "upload_failed";
|
||||||
} else {
|
} else {
|
||||||
|
@ -335,7 +335,7 @@ void SendJob::process()
|
||||||
} else {
|
} else {
|
||||||
if (this->has_sdcard) {
|
if (this->has_sdcard) {
|
||||||
this->update_status(curr_percent, _L("Sending gcode file over LAN"));
|
this->update_status(curr_percent, _L("Sending gcode file over LAN"));
|
||||||
result = m_agent->start_send_gcode_to_sdcard(params, update_fn, cancel_fn);
|
result = m_agent->start_send_gcode_to_sdcard(params, update_fn, cancel_fn, nullptr);
|
||||||
} else {
|
} else {
|
||||||
this->update_status(curr_percent, _L("An SD card needs to be inserted before sending to printer."));
|
this->update_status(curr_percent, _L("An SD card needs to be inserted before sending to printer."));
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -892,33 +892,33 @@ int NetworkAgent::set_user_selected_machine(std::string dev_id)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NetworkAgent::start_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn)
|
int NetworkAgent::start_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if (network_agent && start_print_ptr) {
|
if (network_agent && start_print_ptr) {
|
||||||
ret = start_print_ptr(network_agent, params, update_fn, cancel_fn);
|
ret = start_print_ptr(network_agent, params, update_fn, cancel_fn, wait_fn);
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%")
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%")
|
||||||
%network_agent %ret %params.dev_id %params.task_name %params.project_name;
|
%network_agent %ret %params.dev_id %params.task_name %params.project_name;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NetworkAgent::start_local_print_with_record(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn)
|
int NetworkAgent::start_local_print_with_record(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if (network_agent && start_local_print_with_record_ptr) {
|
if (network_agent && start_local_print_with_record_ptr) {
|
||||||
ret = start_local_print_with_record_ptr(network_agent, params, update_fn, cancel_fn);
|
ret = start_local_print_with_record_ptr(network_agent, params, update_fn, cancel_fn, wait_fn);
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%")
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%")
|
||||||
%network_agent %ret %params.dev_id %params.task_name %params.project_name;
|
%network_agent %ret %params.dev_id %params.task_name %params.project_name;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NetworkAgent::start_send_gcode_to_sdcard(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn)
|
int NetworkAgent::start_send_gcode_to_sdcard(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if (network_agent && start_send_gcode_to_sdcard_ptr) {
|
if (network_agent && start_send_gcode_to_sdcard_ptr) {
|
||||||
ret = start_send_gcode_to_sdcard_ptr(network_agent, params, update_fn, cancel_fn);
|
ret = start_send_gcode_to_sdcard_ptr(network_agent, params, update_fn, cancel_fn, wait_fn);
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%")
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" : network_agent=%1%, ret=%2%, dev_id=%3%, task_name=%4%, project_name=%5%")
|
||||||
% network_agent % ret % params.dev_id % params.task_name % params.project_name;
|
% network_agent % ret % params.dev_id % params.task_name % params.project_name;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue