From cd43a8e7448a4dd85452d80df3980d5034eb86c4 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Thu, 3 Aug 2023 15:31:13 +0200 Subject: [PATCH] Fixes required by changes into libbgcode library interface --- src/libslic3r/GCode/GCodeProcessor.cpp | 29 +++++++++++++------------- src/slic3r/GUI/Plater.cpp | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 6ebddec853..66f7cc297a 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -1151,7 +1151,8 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct bgcode::core::FileHeader file_header; bgcode::core::EResult res = bgcode::core::read_header(*file, file_header, nullptr); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("File: " + filename + "does not contain a valid binary gcode\n Error: " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("File: " + filename + "does not contain a valid binary gcode\n Error: " + + std::string(bgcode::core::translate_result(res)) + "\n"); const bool verify_checksum = true; @@ -1159,13 +1160,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct bgcode::core::BlockHeader block_header; res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::FileMetadata) throw Slic3r::RuntimeError("Unable to find file metadata block in file: " + filename + "\n"); bgcode::base::FileMetadataBlock file_metadata_block; res = file_metadata_block.read_data(*file, file_header, block_header); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); auto producer_it = std::find_if(file_metadata_block.raw_data.begin(), file_metadata_block.raw_data.end(), [](const std::pair& item) { return item.first == "Producer"; }); if (producer_it != file_metadata_block.raw_data.end() && boost::starts_with(producer_it->second, std::string(SLIC3R_APP_NAME))) @@ -1176,13 +1177,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct // read printer metadata block res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::PrinterMetadata) throw Slic3r::RuntimeError("Unable to find printer metadata block in file: " + filename + "\n"); bgcode::base::PrinterMetadataBlock printer_metadata_block; res = printer_metadata_block.read_data(*file, file_header, block_header); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); #if ENABLE_BINARIZED_GCODE_DEBUG OutputDebugStringA("Printer metadata:\n"); for (const auto& [key, value] : printer_metadata_block.raw_data) { @@ -1196,13 +1197,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct // read thumbnail blocks res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); while ((bgcode::core::EBlockType)block_header.type == bgcode::core::EBlockType::Thumbnail) { bgcode::base::ThumbnailBlock thumbnail_block; res = thumbnail_block.read_data(*file, file_header, block_header); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); #if ENABLE_BINARIZED_GCODE_DEBUG if (thumbnail_block.data.size() > 0) { auto format_filename = [](const std::string& stem, const bgcode::base::ThumbnailBlock& block) { @@ -1229,7 +1230,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); } // read print metadata block @@ -1238,7 +1239,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct bgcode::base::PrintMetadataBlock print_metadata_block; res = print_metadata_block.read_data(*file, file_header, block_header); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); #if ENABLE_BINARIZED_GCODE_DEBUG OutputDebugStringA("Print metadata:\n"); for (const auto& [key, value] : print_metadata_block.raw_data) { @@ -1252,13 +1253,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct // read slicer metadata block res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::SlicerMetadata) throw Slic3r::RuntimeError("Unable to find slicer metadata block in file: " + filename + "\n"); bgcode::base::SlicerMetadataBlock slicer_metadata_block; res = slicer_metadata_block.read_data(*file, file_header, block_header); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); #if ENABLE_BINARIZED_GCODE_DEBUG OutputDebugStringA("Slicer metadata:\n"); for (const auto& [key, value] : slicer_metadata_block.raw_data) { @@ -1287,14 +1288,14 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct // read gcodes block res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::GCode) throw Slic3r::RuntimeError("Unable to find gcode block in file: " + filename + "\n"); while ((bgcode::core::EBlockType)block_header.type == bgcode::core::EBlockType::GCode) { bgcode::base::GCodeBlock block; res = block.read_data(*file, file_header, block_header); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); // TODO: Update m_result.lines_ends @@ -1307,7 +1308,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum); if (res != bgcode::core::EResult::Success) - throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n"); + throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n"); } // Don't post-process the G-code to update time stamps. diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index f23413270c..c41b20675a 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -5478,7 +5478,7 @@ void Plater::convert_gcode_to_ascii() wxBusyCursor busy; bgcode::core::EResult res = bgcode::convert::from_binary_to_ascii(*in_file, *out_file, true); if (res != bgcode::core::EResult::Success) { - MessageDialog msg_dlg(this, _L(bgcode::core::translate_result(res)), _L("Error converting gcode file"), wxICON_INFORMATION | wxOK); + MessageDialog msg_dlg(this, _L(std::string(bgcode::core::translate_result(res))), _L("Error converting gcode file"), wxICON_INFORMATION | wxOK); msg_dlg.ShowModal(); scoped_out_file.unscope(); fclose(out_file);