ENH:optimized mapping rule for printing from SD card

Change-Id: I435f518bb303c9592fde5c16eca6aa0d27211725
This commit is contained in:
tao wang 2025-02-11 12:01:39 +08:00 committed by lane.wei
parent 2c433396fa
commit cca59b8e52
1 changed files with 86 additions and 72 deletions

View File

@ -1307,6 +1307,7 @@ bool SelectMachineDialog::get_ams_mapping_result(std::string &mapping_array_str,
if (invalid_count == m_ams_mapping_result.size()) {
return false;
} else {
if (m_print_type == FROM_NORMAL) {
json mapping_v0_json = json::array();
json mapping_v1_json = json::array();
json mapping_info_json = json::array();
@ -1340,37 +1341,27 @@ bool SelectMachineDialog::get_ams_mapping_result(std::string &mapping_array_str,
tray_id = m_ams_mapping_result[k].tray_id;
mapping_item["ams"] = tray_id;
mapping_item["filamentType"] = m_filaments[k].type;
if (i >= 0 && i < wxGetApp().preset_bundle->filament_presets.size()) {
auto it = wxGetApp().preset_bundle->filaments.find_preset(wxGetApp().preset_bundle->filament_presets[i]);
if (it != nullptr) {
mapping_item["filamentId"] = it->filament_id;
if (it != nullptr) { mapping_item["filamentId"] = it->filament_id; }
}
/* nozzle id */
if (i >= 0 && i < filament_maps.size()) {
mapping_item["nozzleId"] = convert_filament_map_nozzle_id_to_task_nozzle_id(filament_maps[i]);
}
if (i >= 0 && i < filament_maps.size()) { mapping_item["nozzleId"] = convert_filament_map_nozzle_id_to_task_nozzle_id(filament_maps[i]); }
// convert #RRGGBB to RRGGBBAA
mapping_item["sourceColor"] = m_filaments[k].color;
mapping_item["targetColor"] = m_ams_mapping_result[k].color;
if (tray_id == VIRTUAL_TRAY_MAIN_ID || tray_id == VIRTUAL_TRAY_DEPUTY_ID)
{
tray_id = -1;
}
if (tray_id == VIRTUAL_TRAY_MAIN_ID || tray_id == VIRTUAL_TRAY_DEPUTY_ID) { tray_id = -1; }
/*new ams mapping data*/
try
{
try {
if (m_ams_mapping_result[k].ams_id.empty() || m_ams_mapping_result[k].slot_id.empty()) { // invalid case
mapping_item_v1["ams_id"] = VIRTUAL_TRAY_MAIN_ID;
mapping_item_v1["slot_id"] = VIRTUAL_TRAY_MAIN_ID;
}
else {
} else {
mapping_item_v1["ams_id"] = std::stoi(m_ams_mapping_result[k].ams_id);
mapping_item_v1["slot_id"] = std::stoi(m_ams_mapping_result[k].slot_id);
}
}
catch (...)
{
}
} catch (...) {}
}
}
mapping_v0_json.push_back(tray_id);
@ -1378,12 +1369,35 @@ bool SelectMachineDialog::get_ams_mapping_result(std::string &mapping_array_str,
mapping_info_json.push_back(mapping_item);
}
mapping_array_str = mapping_v0_json.dump();
mapping_array_str2 = mapping_v1_json.dump();
ams_mapping_info = mapping_info_json.dump();
return valid_mapping_result;
} else if(m_print_type == FROM_SDCARD_VIEW){
json mapping_v0_json = json::array();
json mapping_v1_json = json::array();
for (int i = 0; i < m_filaments_map.size(); i++) {
int mapping_result = -1;
json mapping_item_v1;
mapping_item_v1["ams_id"] = 0xff;
mapping_item_v1["slot_id"] = 0xff;
for (int k = 0; k < m_ams_mapping_result.size(); k++) {
if (m_ams_mapping_result[k].id == i) {
mapping_result = m_ams_mapping_result[k].tray_id;
mapping_item_v1["ams_id"] = std::stoi(m_ams_mapping_result[k].ams_id);
mapping_item_v1["slot_id"] = std::stoi(m_ams_mapping_result[k].slot_id);
}
}
mapping_v0_json.push_back(mapping_result);
mapping_v1_json.push_back(mapping_item_v1);
mapping_array_str = mapping_v0_json.dump();
mapping_array_str2 = mapping_v1_json.dump();
}
return true;
}
}
return true;
}