ENH:add layer_filament_list.json record used filaments for each layer

jira: none
Change-Id: Ib293ff9fdd284fef9e6de93260e2ba7cc3d66daa
(cherry picked from commit 28046fbc23e174868f41535764076888a680d116)
This commit is contained in:
zhimin.zeng
2024-10-29 19:48:44 +08:00
committed by Noisyfox
parent 1765388326
commit f20c916e05
3 changed files with 29 additions and 0 deletions

View File

@@ -210,6 +210,8 @@ static constexpr const char *FILAMENT_COLOR_TAG = "color";
static constexpr const char *FILAMENT_USED_M_TAG = "used_m";
static constexpr const char *FILAMENT_USED_G_TAG = "used_g";
static constexpr const char *FILAMENT_TRAY_INFO_ID_TAG = "tray_info_idx";
static constexpr const char *LAYER_FILAMENT_LISTS_TAG = "layer_filament_lists";
static constexpr const char *LAYER_FILAMENT_LIST_TAG = "layer_filament_list";
static constexpr const char* CONFIG_TAG = "config";
@@ -7953,6 +7955,30 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
for (auto it = plate_data->warnings.begin(); it != plate_data->warnings.end(); it++) {
stream << " <" << SLICE_WARNING_TAG << " msg=\"" << it->msg << "\" level=\"" << std::to_string(it->level) << "\" error_code =\"" << it->error_code << "\" />\n";
}
if (!plate_data->layer_filaments.empty()) {
stream << " <" << LAYER_FILAMENT_LISTS_TAG << ">\n";
for (auto iter = plate_data->layer_filaments.begin(); iter != plate_data->layer_filaments.end(); ++iter) {
// key
std::vector<unsigned int> sequence = iter->first;
std::stringstream key_stream;
add_vector(key_stream, sequence);
// value
std::vector<std::pair<int, int>> ranges = iter->second;
std::stringstream value_stream;
for (size_t i = 0; i < ranges.size(); ++i) {
value_stream << ranges[i].first;
value_stream << " ";
value_stream << ranges[i].second;
if (i != (ranges.size() - 1)) value_stream << ",";
}
stream << " <" << LAYER_FILAMENT_LIST_TAG << " filament_list=\"" << key_stream.str() << "\" layer_ranges=\"" << value_stream.str() << "\" />\n";
}
stream << " </" << LAYER_FILAMENT_LISTS_TAG << ">\n";
}
stream << " </" << PLATE_TAG << ">\n";
}
}