FIX: the nozzle diameter and filament map of slice_info is empty

when start manual cali
jira: none
Change-Id: I34d580e2527b587e395da9914f6cd1b4a54646e6
This commit is contained in:
zhimin.zeng 2024-12-26 15:39:02 +08:00 committed by lane.wei
parent b6997edd5d
commit 49b9bc8461
1 changed files with 10 additions and 2 deletions

View File

@ -7855,8 +7855,13 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
add_vector(stream, nozzle_volume_types);
stream << "\"/>\n";
auto* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloatsNullable*>(config.option("nozzle_diameter"));
std::string nozzle_diameters_str;
if (nozzle_diameter_option)
nozzle_diameters_str = nozzle_diameter_option->serialize();
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << PRINTER_MODEL_ID_ATTR << "\" " << VALUE_ATTR << "=\"" << plate_data->printer_model_id << "\"/>\n";
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << NOZZLE_DIAMETERS_ATTR << "\" " << VALUE_ATTR << "=\"" << plate_data->nozzle_diameters << "\"/>\n";
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << NOZZLE_DIAMETERS_ATTR << "\" " << VALUE_ATTR << "=\"" << nozzle_diameters_str << "\"/>\n";
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << TIMELAPSE_TYPE_ATTR << "\" " << VALUE_ATTR << "=\"" << timelapse_type << "\"/>\n";
//stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << TIMELAPSE_ERROR_CODE_ATTR << "\" " << VALUE_ATTR << "=\"" << plate_data->timelapse_warning_code << "\"/>\n";
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << SLICE_PREDICTION_ATTR << "\" " << VALUE_ATTR << "=\"" << plate_data->get_gcode_prediction_str() << "\"/>\n";
@ -7865,8 +7870,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << SUPPORT_USED_ATTR << "\" " << VALUE_ATTR << "=\"" << std::boolalpha<< plate_data->is_support_used << "\"/>\n";
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << LABEL_OBJECT_ENABLED_ATTR << "\" " << VALUE_ATTR << "=\"" << std::boolalpha<< plate_data->is_label_object_enabled << "\"/>\n";
std::vector<int> filament_maps = plate_data->filament_maps;
if (filament_maps.empty())
filament_maps = config.option<ConfigOptionInts>("filament_map")->values;
stream << " <" << METADATA_TAG << " " << KEY_ATTR << "=\"" << FILAMENT_MAP_ATTR << "\" " << VALUE_ATTR << "=\"";
add_vector<int>(stream, plate_data->filament_maps);
add_vector<int>(stream, filament_maps);
stream << "\"/>\n";
if (plate_data->limit_filament_maps.size() > 0) {