diff --git a/resources/config.json b/resources/config.json index 97c55f2728..b9508726e7 100644 --- a/resources/config.json +++ b/resources/config.json @@ -24,6 +24,7 @@ "bed_temperature_limit": 100, "model_id": "C11", "printer_type": "C11", + "ftp_folder" : "sdcard/", "printer_thumbnail_image": "printer_thumbnail_p1p" }, { diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index b1f59e9701..87487694d3 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -302,6 +302,11 @@ std::string MachineObject::get_printer_thumbnail_img_str() return "printer_thumbnail"; } +std::string MachineObject::get_ftp_folder() +{ + return DeviceManager::get_ftp_folder(printer_type); +} + void MachineObject::set_access_code(std::string code) { this->access_code = code; @@ -4039,6 +4044,20 @@ std::string DeviceManager::get_printer_display_name(std::string type_str) return ""; } +std::string DeviceManager::get_ftp_folder(std::string type_str) +{ + if (DeviceManager::function_table.contains("printers")) { + for (auto printer : DeviceManager::function_table["printers"]) { + if (printer.contains("model_id") && printer["model_id"].get() == type_str) { + if (printer.contains("ftp_folder")) { + return printer["ftp_folder"].get(); + } + } + } + } + return ""; +} + std::string DeviceManager::get_printer_thumbnail_img(std::string type_str) { if (DeviceManager::function_table.contains("printers")) { diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 8409a7d6cd..bc74b66098 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -405,6 +405,8 @@ public: std::string connection_type() { return dev_connection_type; } void set_dev_ip(std::string ip) {dev_ip = ip;}; bool has_access_right() { return !get_access_code().empty(); } + std::string get_ftp_folder(); + void set_access_code(std::string code); std::string get_access_code(); void set_access_code(std::string code); @@ -834,6 +836,7 @@ public: static std::string parse_printer_type(std::string type_str); static std::string get_printer_display_name(std::string type_str); static std::string get_printer_thumbnail_img(std::string type_str); + static std::string get_ftp_folder(std::string type_str); static bool is_function_supported(std::string type_str, std::string function_name); static std::vector get_resolution_supported(std::string type_str); diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index ac658fb64b..3f75b22e67 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -177,6 +177,7 @@ void PrintJob::process() } params.dev_id = m_dev_id; + params.ftp_folder = m_ftp_folder; //params.project_name = project_name; params.project_name = m_project_name; params.preset_name = wxGetApp().preset_bundle->prints.get_selected_preset_name(); diff --git a/src/slic3r/GUI/Jobs/PrintJob.hpp b/src/slic3r/GUI/Jobs/PrintJob.hpp index 26e6c92288..588a6f84e4 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.hpp +++ b/src/slic3r/GUI/Jobs/PrintJob.hpp @@ -42,6 +42,7 @@ public: std::string m_project_name; std::string m_dev_ip; + std::string m_ftp_folder; bool m_local_use_ssl { true }; std::string m_access_code; std::string task_bed_type; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index dd33f08fb8..6d434d3013 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2180,6 +2180,7 @@ void SelectMachineDialog::on_ok() m_print_job = std::make_shared(m_status_bar, m_plater, m_printer_last_select); m_print_job->m_dev_ip = obj_->dev_ip; + m_print_job->m_ftp_folder = obj_->get_ftp_folder(); m_print_job->m_access_code = obj_->get_access_code(); m_print_job->m_local_use_ssl = obj_->local_use_ssl; m_print_job->connection_type = obj_->connection_type(); diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index 0782709acb..30a6d2e407 100644 --- a/src/slic3r/Utils/bambu_networking.hpp +++ b/src/slic3r/Utils/bambu_networking.hpp @@ -120,6 +120,7 @@ struct PrintParams { std::string filename; std::string config_filename; int plate_index; + std::string ftp_folder; std::string ftp_file; std::string ftp_file_md5; std::string ams_mapping;