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-07-19 01:30:25 +0300
committerFormerLurker <hochgebe@gmail.com>2021-07-19 01:30:25 +0300
commit441742cfd83667fe8e2507a35cc0207687519650 (patch)
tree05427321e11e9f52d858b254f364f16427698831
parent4b2a112c139ce7f9909ba95f27cada3ecea2405b (diff)
Fix bytes string when logging from python. Reduce notification period from 1 sec to 0.5 sec and add an argument to control this (not added to console app yet).
-rw-r--r--ArcWelder/arc_welder.cpp5
-rw-r--r--ArcWelder/arc_welder.h13
-rw-r--r--PyArcWelder/py_arc_welder_extension.cpp4
-rw-r--r--PyArcWelder/py_logger.cpp4
4 files changed, 20 insertions, 6 deletions
diff --git a/ArcWelder/arc_welder.cpp b/ArcWelder/arc_welder.cpp
index 1e601e5..b966b62 100644
--- a/ArcWelder/arc_welder.cpp
+++ b/ArcWelder/arc_welder.cpp
@@ -54,6 +54,7 @@ arc_welder::arc_welder(
double extrusion_rate_variance_percent,
int max_gcode_length,
int buffer_size,
+ double notification_period_seconds,
progress_callback callback) : current_arc_(
DEFAULT_MIN_SEGMENTS,
buffer_size,
@@ -95,10 +96,10 @@ arc_welder::arc_welder(
allow_travel_arcs_ = allow_travel_arcs;
allow_dynamic_precision_ = allow_dynamic_precision;
extrusion_rate_variance_percent_ = extrusion_rate_variance_percent;
- notification_period_seconds = 1;
lines_processed_ = 0;
gcodes_processed_ = 0;
file_size_ = 0;
+ notification_period_seconds_ = notification_period_seconds;
last_gcode_line_written_ = 0;
points_compressed_ = 0;
arcs_created_ = 0;
@@ -192,7 +193,7 @@ long arc_welder::get_file_size(const std::string& file_path)
double arc_welder::get_next_update_time() const
{
- return clock() + (notification_period_seconds * CLOCKS_PER_SEC);
+ return clock() + (notification_period_seconds_ * CLOCKS_PER_SEC);
}
double arc_welder::get_time_elapsed(double start_clock, double end_clock)
diff --git a/ArcWelder/arc_welder.h b/ArcWelder/arc_welder.h
index ea10257..7bcff0c 100644
--- a/ArcWelder/arc_welder.h
+++ b/ArcWelder/arc_welder.h
@@ -433,6 +433,7 @@ typedef bool(*progress_callback)(arc_welder_progress, logger* p_logger, int logg
#define DEFAULT_ALLOW_DYNAMIC_PRECISION false
#define DEFAULT_ALLOW_TRAVEL_ARCS true
#define DEFAULT_EXTRUSION_RATE_VARIANCE_PERCENT 0.05
+#define DEFAULT_NOTIFICATION_PERIOD_SECONDS 0.5
struct arc_welder_args
{
@@ -454,7 +455,9 @@ struct arc_welder_args
extrusion_rate_variance_percent(DEFAULT_EXTRUSION_RATE_VARIANCE_PERCENT),
max_gcode_length(DEFAULT_MAX_GCODE_LENGTH),
buffer_size(DEFAULT_GCODE_BUFFER_SIZE),
+ notification_period_seconds(DEFAULT_NOTIFICATION_PERIOD_SECONDS),
callback(NULL){};
+
arc_welder_args(std::string source, std::string target, logger* ptr_log) : arc_welder_args()
{
@@ -479,6 +482,7 @@ struct arc_welder_args
double extrusion_rate_variance_percent;
int buffer_size;
int max_gcode_length;
+ double notification_period_seconds;
progress_callback callback;
@@ -520,7 +524,8 @@ struct arc_welder_args
stream << "\tMax Gcode Length : " << std::setprecision(0) << max_gcode_length << " characters\n";
}
stream << "\tLog Level : " << log_level_name << "\n";
- stream << "\tHide Progress Updates : " << (callback == NULL ? "True" : "False");
+ stream << "\tHide Progress Updates : " << (callback == NULL ? "True" : "False") << "\n";
+ stream << "\tProgress Notification Period : " << std::setprecision(2) << notification_period_seconds << " seconds";
return stream.str();
};
@@ -560,6 +565,7 @@ public:
double extrusion_rate_variance_percent,
int max_gcode_length,
int buffer_size,
+ double notification_period_seconds,
progress_callback callback);
arc_welder(arc_welder_args args) : arc_welder(
@@ -580,6 +586,7 @@ public:
args.extrusion_rate_variance_percent,
args.max_gcode_length,
args.buffer_size,
+ args.notification_period_seconds,
args.callback
){};
@@ -587,10 +594,11 @@ public:
void set_logger_type(int logger_type);
virtual ~arc_welder();
arc_welder_results process();
- double notification_period_seconds;
+
protected:
virtual bool on_progress_(const arc_welder_progress& progress);
private:
+
arc_welder_progress get_progress_(long source_file_position, double start_clock);
void add_arcwelder_comment_to_target();
void reset();
@@ -617,6 +625,7 @@ private:
int points_compressed_;
int arcs_created_;
int arcs_aborted_by_flow_rate_;
+ double notification_period_seconds_;
source_target_segment_statistics segment_statistics_;
source_target_segment_statistics travel_statistics_;
long get_file_size(const std::string& file_path);
diff --git a/PyArcWelder/py_arc_welder_extension.cpp b/PyArcWelder/py_arc_welder_extension.cpp
index b386d9f..1e440f9 100644
--- a/PyArcWelder/py_arc_welder_extension.cpp
+++ b/PyArcWelder/py_arc_welder_extension.cpp
@@ -198,7 +198,9 @@ extern "C"
args.py_progress_callback = py_progress_callback;
args.log = p_py_logger;
py_arc_welder arc_welder_obj(args);
- arc_welder_results results = arc_welder_obj.process();
+ arc_welder_results results;
+ results = arc_welder_obj.process();
+
message = "py_gcode_arc_converter.ConvertFile - Arc Conversion Complete.";
p_py_logger->log(GCODE_CONVERSION, INFO, message);
Py_XDECREF(py_progress_callback);
diff --git a/PyArcWelder/py_logger.cpp b/PyArcWelder/py_logger.cpp
index 0418ef5..0ae6548 100644
--- a/PyArcWelder/py_logger.cpp
+++ b/PyArcWelder/py_logger.cpp
@@ -203,7 +203,9 @@ void py_logger::log(const int logger_type, const int log_level, const std::strin
return;
}
}
- PyObject* pyMessage = gcode_arc_converter::PyBytesOrString_FromString(message);
+ //PyObject* pyMessage = gcode_arc_converter::PyBytesOrString_FromString(message);
+ PyObject* pyMessage = gcode_arc_converter::PyUnicode_SafeFromString(message);
+
if (pyMessage == NULL)
{
std::cout << "Unable to convert the log message '" << message.c_str() << "' to a PyString/Unicode message.\r\n";