Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FormerLurker/ArcWelderLib.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFormerLurker <hochgebe@gmail.com>2021-11-21 21:51:53 +0300
committerFormerLurker <hochgebe@gmail.com>2021-11-21 21:51:53 +0300
commit3bd3d54894cd49fb564396fd043c4b0c80f4b116 (patch)
treefebb4f56214b8a1d64ed78966a6bd6750e88e185
parent9b0afec63643275ecdc9005bfbbba20e359a7938 (diff)
For python progress updates, make detailed statistics optional (they take a while to create, and are unused in the current Octoprint plugin until the final message).devel
-rw-r--r--PyArcWelder/py_arc_welder.cpp23
-rw-r--r--PyArcWelder/py_arc_welder.h2
-rw-r--r--PyArcWelder/py_arc_welder_extension.cpp3
3 files changed, 18 insertions, 10 deletions
diff --git a/PyArcWelder/py_arc_welder.cpp b/PyArcWelder/py_arc_welder.cpp
index 635ad9d..2cdfde5 100644
--- a/PyArcWelder/py_arc_welder.cpp
+++ b/PyArcWelder/py_arc_welder.cpp
@@ -22,23 +22,30 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "py_arc_welder.h"
-PyObject* py_arc_welder::build_py_progress(const arc_welder_progress& progress, std::string guid)
+PyObject* py_arc_welder::build_py_progress(const arc_welder_progress& progress, std::string guid, bool include_detailed_statistics)
{
PyObject* pyGuid = gcode_arc_converter::PyUnicode_SafeFromString(guid);
if (pyGuid == NULL)
return NULL;
- // Extrusion Statistics
- source_target_segment_statistics combined_stats = source_target_segment_statistics::add(progress.segment_statistics, progress.segment_retraction_statistics);
- std::string segment_statistics = combined_stats.str("", utilities::box_drawing::HTML);
+ std::string segment_statistics = "";
+ std::string segment_travel_statistics = "";
+
+ if (include_detailed_statistics)
+ {
+ // Extrusion Statistics
+ source_target_segment_statistics combined_stats = source_target_segment_statistics::add(progress.segment_statistics, progress.segment_retraction_statistics);
+ segment_statistics = combined_stats.str("", utilities::box_drawing::HTML);
+ // Travel Statistics
+ segment_travel_statistics = progress.travel_statistics.str("", utilities::box_drawing::HTML);
+ }
PyObject* pyMessage = gcode_arc_converter::PyUnicode_SafeFromString(segment_statistics);
if (pyMessage == NULL)
return NULL;
double total_count_reduction_percent = progress.segment_statistics.get_total_count_reduction_percent();
- // Travel Statistics
- std::string segment_travel_statistics = progress.travel_statistics.str("", utilities::box_drawing::HTML);
+
PyObject* pyTravelMessage = gcode_arc_converter::PyUnicode_SafeFromString(segment_travel_statistics);
- if (pyMessage == NULL)
+ if (pyTravelMessage == NULL)
return NULL;
double total_travel_count_reduction_percent = progress.travel_statistics.get_total_count_reduction_percent();
PyObject* py_progress = Py_BuildValue("{s:d,s:d,s:d,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:f,s:f,s:f,s:f,s:i,s:i,s:f,s:f,s:f,s:i,s:i,s:f}",
@@ -110,7 +117,7 @@ PyObject* py_arc_welder::build_py_progress(const arc_welder_progress& progress,
bool py_arc_welder::on_progress_(const arc_welder_progress& progress)
{
- PyObject* py_dict = py_arc_welder::build_py_progress(progress, guid_);
+ PyObject* py_dict = py_arc_welder::build_py_progress(progress, guid_, false);
if (py_dict == NULL)
{
return false;
diff --git a/PyArcWelder/py_arc_welder.h b/PyArcWelder/py_arc_welder.h
index 686a9cd..a8f0819 100644
--- a/PyArcWelder/py_arc_welder.h
+++ b/PyArcWelder/py_arc_welder.h
@@ -61,7 +61,7 @@ public:
virtual ~py_arc_welder() {
}
- static PyObject* build_py_progress(const arc_welder_progress& progress, std::string guid);
+ static PyObject* build_py_progress(const arc_welder_progress& progress, std::string guid, bool include_detailed_statistics);
protected:
std::string guid_;
virtual bool on_progress_(const arc_welder_progress& progress);
diff --git a/PyArcWelder/py_arc_welder_extension.cpp b/PyArcWelder/py_arc_welder_extension.cpp
index c08e3d7..7609b61 100644
--- a/PyArcWelder/py_arc_welder_extension.cpp
+++ b/PyArcWelder/py_arc_welder_extension.cpp
@@ -207,7 +207,8 @@ extern "C"
p_py_logger->log(GCODE_CONVERSION, log_levels::INFO, message);
Py_XDECREF(py_progress_callback);
// return the arguments
- PyObject* p_progress = py_arc_welder::build_py_progress(results.progress, args.guid);
+ PyObject* p_progress = py_arc_welder::build_py_progress(results.progress, args.guid, true);
+
if (p_progress == NULL)
p_progress = Py_None;