mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-17 04:41:21 +00:00
Merge branch 'main' into feat/generic-n-extruders
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
#include "MoonrakerPrinterAgent.hpp"
|
||||
#include "Http.hpp"
|
||||
#include "IPrinterAgent.hpp"
|
||||
#include "NetworkAgentFactory.hpp"
|
||||
#include "bambu_networking.hpp"
|
||||
#include "libslic3r/Preset.hpp"
|
||||
#include "libslic3r/PresetBundle.hpp"
|
||||
#include "slic3r/GUI/GUI_App.hpp"
|
||||
#include "slic3r/GUI/I18N.hpp"
|
||||
#include "slic3r/GUI/DeviceManager.hpp"
|
||||
#include "slic3r/GUI/DeviceCore/DevFilaSystem.h"
|
||||
#include "slic3r/GUI/DeviceCore/DevManager.h"
|
||||
@@ -141,7 +143,7 @@ MoonrakerPrinterAgent::~MoonrakerPrinterAgent()
|
||||
|
||||
AgentInfo MoonrakerPrinterAgent::get_agent_info_static()
|
||||
{
|
||||
return AgentInfo{"moonraker", "Moonraker", MoonrakerPrinterAgent_VERSION, "Klipper/Moonraker printer agent"};
|
||||
return AgentInfo{MOONRAKER_PRINTER_AGENT_ID, "Moonraker", MoonrakerPrinterAgent_VERSION, "Klipper/Moonraker printer agent"};
|
||||
}
|
||||
|
||||
void MoonrakerPrinterAgent::set_cloud_agent(std::shared_ptr<ICloudServiceAgent> cloud)
|
||||
@@ -293,7 +295,7 @@ int MoonrakerPrinterAgent::start_send_gcode_to_sdcard(PrintParams params,
|
||||
(void) wait_fn;
|
||||
|
||||
if (update_fn)
|
||||
update_fn(PrintingStageCreate, 0, "Preparing...");
|
||||
update_fn(PrintingStageCreate, 0, _u8L("Preparing..."));
|
||||
|
||||
std::string filename = params.filename;
|
||||
if (filename.empty()) {
|
||||
@@ -312,14 +314,14 @@ int MoonrakerPrinterAgent::start_send_gcode_to_sdcard(PrintParams params,
|
||||
}
|
||||
|
||||
if (update_fn)
|
||||
update_fn(PrintingStageFinished, 100, "File uploaded");
|
||||
update_fn(PrintingStageFinished, 100, _u8L("File uploaded"));
|
||||
return BAMBU_NETWORK_SUCCESS;
|
||||
}
|
||||
|
||||
int MoonrakerPrinterAgent::start_local_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn)
|
||||
{
|
||||
if (update_fn)
|
||||
update_fn(PrintingStageCreate, 0, "Preparing...");
|
||||
update_fn(PrintingStageCreate, 0, _u8L("Preparing..."));
|
||||
|
||||
// Check cancellation
|
||||
if (cancel_fn && cancel_fn()) {
|
||||
@@ -350,7 +352,7 @@ int MoonrakerPrinterAgent::start_local_print(PrintParams params, OnUpdateStatusF
|
||||
|
||||
// Upload file
|
||||
if (update_fn)
|
||||
update_fn(PrintingStageUpload, 0, "Uploading G-code...");
|
||||
update_fn(PrintingStageUpload, 0, _u8L("Uploading G-code..."));
|
||||
if (!upload_gcode(gcode_path, upload_filename, device_info.base_url, device_info.api_key, update_fn, cancel_fn)) {
|
||||
return BAMBU_NETWORK_ERR_PRINT_LP_UPLOAD_FTP_FAILED;
|
||||
}
|
||||
@@ -362,14 +364,14 @@ int MoonrakerPrinterAgent::start_local_print(PrintParams params, OnUpdateStatusF
|
||||
|
||||
// Start print via gcode script (simpler than JSON-RPC)
|
||||
if (update_fn)
|
||||
update_fn(PrintingStageSending, 0, "Starting print...");
|
||||
update_fn(PrintingStageSending, 0, _u8L("Starting print..."));
|
||||
std::string gcode = "SDCARD_PRINT_FILE FILENAME=" + upload_filename;
|
||||
if (!send_gcode_sync(device_info.dev_id, gcode)) {
|
||||
return BAMBU_NETWORK_ERR_PRINT_LP_PUBLISH_MSG_FAILED;
|
||||
}
|
||||
|
||||
if (update_fn)
|
||||
update_fn(PrintingStageFinished, 100, "Print started");
|
||||
update_fn(PrintingStageFinished, 100, _u8L("Print started"));
|
||||
return BAMBU_NETWORK_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1390,7 +1392,7 @@ void MoonrakerPrinterAgent::announce_printhost_device()
|
||||
{
|
||||
std::lock_guard<std::recursive_mutex> lock(state_mutex);
|
||||
ssdp_fn = on_ssdp_msg_fn;
|
||||
if (!ssdp_fn) {
|
||||
if (!ssdp_fn || device_info.dev_id.empty() || device_info.dev_ip.empty() || device_info.base_url.empty()) {
|
||||
return;
|
||||
}
|
||||
if (ssdp_announced_host == device_info.base_url && !ssdp_announced_id.empty()) {
|
||||
@@ -1411,11 +1413,6 @@ void MoonrakerPrinterAgent::announce_printhost_device()
|
||||
|
||||
const std::string model_id = device_info.model_id;
|
||||
|
||||
if (auto* app_config = GUI::wxGetApp().app_config) {
|
||||
const std::string access_code = device_info.api_key.empty() ? "88888888" : device_info.api_key;
|
||||
app_config->set_str("access_code", device_info.dev_id, access_code);
|
||||
}
|
||||
|
||||
nlohmann::json payload;
|
||||
payload["dev_name"] = dev_name;
|
||||
payload["dev_id"] = device_info.dev_id;
|
||||
@@ -2124,7 +2121,7 @@ bool MoonrakerPrinterAgent::upload_gcode(const std::string& local_path,
|
||||
// Report progress via OnUpdateStatusFn
|
||||
if (update_fn && progress.ultotal > 0) {
|
||||
int percent = static_cast<int>((progress.ulnow * 100) / progress.ultotal);
|
||||
update_fn(PrintingStageUpload, percent, "Uploading...");
|
||||
update_fn(PrintingStageUpload, percent, _u8L("Uploading..."));
|
||||
}
|
||||
})
|
||||
.perform_sync();
|
||||
|
||||
Reference in New Issue
Block a user