diff options
author | FormerLurker <hochgebe@gmail.com> | 2020-05-18 01:36:56 +0300 |
---|---|---|
committer | FormerLurker <hochgebe@gmail.com> | 2020-05-18 01:36:56 +0300 |
commit | 04958af691abfebc8314b300b4d8676f074439a7 (patch) | |
tree | c1e4285681ec4362d34662a45534ef490c198c10 | |
parent | f962acda6cfd7d12dd917803a2e92568dd0d00e2 (diff) |
Rewrite arc generation routine, add custom float to string function.
-rw-r--r-- | ArcWelder/ArcWelder.vcxproj | 150 | ||||
-rw-r--r-- | ArcWelder/arc_welder.cpp | 14 | ||||
-rw-r--r-- | ArcWelder/segmented_arc.cpp | 149 | ||||
-rw-r--r-- | ArcWelder/segmented_arc.h | 8 | ||||
-rw-r--r-- | ArcWelder/segmented_shape.cpp | 10 | ||||
-rw-r--r-- | ArcWelder/segmented_shape.h | 3 | ||||
-rw-r--r-- | ArcWelderConsole/ArcWelderConsole.vcxproj | 58 | ||||
-rw-r--r-- | ArcWelderInverseProcessor/ArcWelderInverseProcessor.vcxproj | 58 | ||||
-rw-r--r-- | ArcWelderLib.sln | 57 | ||||
-rw-r--r-- | ArcWelderTest/ArcWelderTest.cpp | 21 | ||||
-rw-r--r-- | ArcWelderTest/ArcWelderTest.h | 6 | ||||
-rw-r--r-- | ArcWelderTest/ArcWelderTest.vcxproj | 58 | ||||
-rw-r--r-- | GcodeProcessorLib/GcodeProcessorLib.vcxproj | 56 | ||||
-rw-r--r-- | GcodeProcessorLib/array_list.h | 23 | ||||
-rw-r--r-- | GcodeProcessorLib/gcode_position.cpp | 6 | ||||
-rw-r--r-- | GcodeProcessorLib/gcode_position.h | 1 | ||||
-rw-r--r-- | GcodeProcessorLib/utilities.cpp | 48 | ||||
-rw-r--r-- | GcodeProcessorLib/utilities.h | 1 | ||||
-rw-r--r-- | PyArcWelder/PyArcWelder.vcxproj | 68 | ||||
-rw-r--r-- | PyArcWelder/py_arc_welder_extension.cpp | 7 | ||||
-rw-r--r-- | TCLAP/TCLAP.vcxproj | 56 |
21 files changed, 740 insertions, 118 deletions
diff --git a/ArcWelder/ArcWelder.vcxproj b/ArcWelder/ArcWelder.vcxproj index a9afaa8..adaddf8 100644 --- a/ArcWelder/ArcWelder.vcxproj +++ b/ArcWelder/ArcWelder.vcxproj @@ -1,10 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> <ProjectConfiguration Include="Debug|Win32"> <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> @@ -17,6 +25,18 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|ARM"> + <Configuration>Remote_Pi</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +51,24 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|ARM'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -38,12 +76,25 @@ <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +110,27 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|ARM'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -73,14 +139,34 @@ <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|ARM'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <LinkIncremental>false</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <LinkIncremental>false</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> @@ -97,6 +183,42 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|ARM'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -109,6 +231,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -125,6 +259,22 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/ArcWelder/arc_welder.cpp b/ArcWelder/arc_welder.cpp index 81cc467..2d3eac5 100644 --- a/ArcWelder/arc_welder.cpp +++ b/ArcWelder/arc_welder.cpp @@ -24,7 +24,6 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include "arc_welder.h" -#include <time.h> #include <vector> #include <sstream> #include "utilities.h" @@ -160,20 +159,27 @@ double arc_welder::get_time_elapsed(double start_clock, double end_clock) arc_welder_results arc_welder::process() { - arc_welder_results results; +arc_welder_results results; p_logger_->log(logger_type_, DEBUG, "Configuring logging settings."); verbose_logging_enabled_ = p_logger_->is_log_level_enabled(logger_type_, VERBOSE); debug_logging_enabled_ = p_logger_->is_log_level_enabled(logger_type_, DEBUG); info_logging_enabled_ = p_logger_->is_log_level_enabled(logger_type_, INFO); error_logging_enabled_ = p_logger_->is_log_level_enabled(logger_type_, ERROR); + std::stringstream stream; + stream << std::fixed << std::setprecision(5); + stream << "py_gcode_arc_converter.ConvertFile - Parameters received: source_file_path: '" << + source_path_ << "', target_file_path:'" << target_path_ << "', resolution_mm:" << + resolution_mm_ << "mm (+-" << current_arc_.get_resolution_mm() << "mm), max_radius_mm:" << current_arc_.get_max_radius() + << "mm, g90_91_influences_extruder: " << (p_source_position_->get_g90_91_influences_extruder() ? "True" : "False") << "\n"; + p_logger_->log(logger_type_, INFO, stream.str()); + + // reset tracking variables reset(); // local variable to hold the progress update return. If it's false, we will exit. bool continue_processing = true; - // Create a stringstream we can use for messaging. - std::stringstream stream; p_logger_->log(logger_type_, DEBUG, "Configuring progress updates."); int read_lines_before_clock_check = 5000; double next_update_time = get_next_update_time(); diff --git a/ArcWelder/segmented_arc.cpp b/ArcWelder/segmented_arc.cpp index 28145fd..220e740 100644 --- a/ArcWelder/segmented_arc.cpp +++ b/ArcWelder/segmented_arc.cpp @@ -28,7 +28,6 @@ #include "segmented_shape.h" #include <iostream> #include <iomanip> -#include <sstream> #include <stdio.h> #include <cmath> @@ -38,8 +37,6 @@ segmented_arc::segmented_arc() : segmented_arc(DEFAULT_MIN_SEGMENTS, DEFAULT_MAX segmented_arc::segmented_arc(int min_segments, int max_segments, double resolution_mm, double max_radius_mm) : segmented_shape(min_segments, max_segments, resolution_mm) { - gcode_buffer_[0] = '\0'; - if (max_radius_mm > DEFAULT_MAX_RADIUS_MM) max_radius_mm_ = DEFAULT_MAX_RADIUS_MM; else max_radius_mm_ = max_radius_mm; } @@ -66,15 +63,18 @@ point segmented_arc::pop_back(double e_relative) set_is_shape(false); } } - -bool segmented_arc::is_shape() +double segmented_arc::get_max_radius() const +{ + return max_radius_mm_; +} +bool segmented_arc::is_shape() const { +/* if (is_shape_) { arc a; - bool is_arc = try_get_arc(a); - return is_arc; - } + return arc::try_create_arc(arc_circle_, points_, original_shape_length_, resolution_mm_, a);; + } */ return is_shape_; } @@ -108,18 +108,26 @@ bool segmented_arc::try_add_point(point p, double e_relative) //std::cout << " failed - no distance change.\n"; return false; } - /*else if (utilities::greater_than(distance, max_segment_length_)) - { - // we can't make an arc if the distance between points - // is greater than the resolution. - return false; - }*/ // Test - see what happens without a max segment length. + } + if (points_.count() < get_min_segments() - 1) { point_added = true; points_.push_back(p); original_shape_length_ += distance; + if (points_.count() == get_min_segments()) + { + arc a; + if (!arc::try_create_arc(arc_circle_, points_, original_shape_length_, resolution_mm_, a)) + { + point_added = false; + points_.pop_back(); + original_shape_length_ -= distance; + } + } + + } else { @@ -200,7 +208,7 @@ bool segmented_arc::try_add_point_internal_(point p, double pd) } -bool segmented_arc::does_circle_fit_points_(const circle& c) +bool segmented_arc::does_circle_fit_points_(circle& c) const { // We know point 1 must fit (we used it to create the circle). Check the other points // Note: We have not added the current point, but that's fine since it is guaranteed to fit too. @@ -215,7 +223,7 @@ bool segmented_arc::does_circle_fit_points_(const circle& c) // Make sure the length from the center of our circle to the test point is // at or below our max distance. distance_from_center = utilities::get_cartesian_distance(points_[index].x, points_[index].y, c.center.x, c.center.y); - double difference_from_radius = abs(distance_from_center - c.radius); + double difference_from_radius = std::abs(distance_from_center - c.radius); if (utilities::greater_than(difference_from_radius, resolution_mm_)) { //std::cout << " failed - end points do not lie on circle.\n"; @@ -230,7 +238,7 @@ bool segmented_arc::does_circle_fit_points_(const circle& c) if (segment::get_closest_perpendicular_point(points_[index], points_[index + 1], c.center, point_to_test)) { distance_from_center = utilities::get_cartesian_distance(point_to_test.x, point_to_test.y, c.center.x, c.center.y); - difference_from_radius = abs(distance_from_center - c.radius); + difference_from_radius = std::abs(distance_from_center - c.radius); // Test allowing more play for the midpoints. if (utilities::greater_than(difference_from_radius, resolution_mm_)) { @@ -242,11 +250,11 @@ bool segmented_arc::does_circle_fit_points_(const circle& c) // get the current arc and compare the total length to the original length arc a; - return try_get_arc_(c, a); + return arc::try_create_arc(c, points_, original_shape_length_, resolution_mm_, a); } -bool segmented_arc::try_get_arc(arc & target_arc) +bool segmented_arc::try_get_arc(arc & target_arc) { //int mid_point_index = ((points_.count() - 2) / 2) + 1; //return arc::try_create_arc(arc_circle_, points_[0], points_[mid_point_index], points_[points_.count() - 1], original_shape_length_, resolution_mm_, target_arc); @@ -271,82 +279,57 @@ std::string segmented_arc::get_shape_gcode_relative(double f) return get_shape_gcode_(has_e, e_relative_, f); } -std::string segmented_arc::get_shape_gcode_(bool has_e, double e, double f) +std::string segmented_arc::get_shape_gcode_(bool has_e, double e, double f) const { + + char buf[20]; + std::string gcode; arc c; - try_get_arc(c); - + arc::try_create_arc(arc_circle_, points_, original_shape_length_, resolution_mm_, c); + double i = c.center.x - c.start_point.x; double j = c.center.y - c.start_point.y; // Here is where the performance part kicks in (these are expensive calls) that makes things a bit ugly. // there are a few cases we need to take into consideration before choosing our sprintf string + // create the XYZ portion + if (utilities::less_than(c.angle_radians, 0)) { - // G2 - if (has_e != 0) - { - // Add E param - if (utilities::greater_than_or_equal(f, 1)) - { - // Add F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G2 X%.3f Y%.3f I%.3f J%.3f E%.5f F%.0f", c.end_point.x, c.end_point.y, i, j, e, f); - } - else - { - // No F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G2 X%.3f Y%.3f I%.3f J%.3f E%.5f", c.end_point.x, c.end_point.y, i, j, e); - } - } - else - { - // No E param - // Add E param - if (utilities::greater_than_or_equal(f, 1)) - { - // Add F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G2 X%.3f Y%.3f I%.3f J%.3f F%.0f", c.end_point.x, c.end_point.y, i, j, f); - } - else - { - // No F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G2 X%.3f Y%.3f I%.3f J%.3f", c.end_point.x, c.end_point.y, i, j); - } - } + gcode = "G2"; } else { - // G3 - if (has_e != 0) - { - // Add E param - if (utilities::greater_than_or_equal(f, 1)) - { - // Add F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G3 X%.3f Y%.3f I%.3f J%.3f E%.5f F%.0f", c.end_point.x, c.end_point.y, i, j, e, f); - } - else - { - // No F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G3 X%.3f Y%.3f I%.3f J%.3f E%.5f", c.end_point.x, c.end_point.y, i, j, e); - } - } - else - { - // No E param - // Add E param - if (utilities::greater_than_or_equal(f, 1)) - { - // Add F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G3 X%.3f Y%.3f I%.3f J%.3f F%.0f", c.end_point.x, c.end_point.y, i, j, f); - } - else - { - // No F param - snprintf(gcode_buffer_, GCODE_CHAR_BUFFER_SIZE, "G3 X%.3f Y%.3f I%.3f J%.3f", c.end_point.x, c.end_point.y, i, j); - } - } + gcode = "G3"; + + } + // Add X, Y, I and J + gcode += " X"; + gcode += utilities::to_string(c.end_point.x, 3, buf); + + gcode += " Y"; + gcode += utilities::to_string(c.end_point.y, 3, buf); + + gcode += " I"; + gcode += utilities::to_string(i, 3, buf); + + gcode += " J"; + gcode += utilities::to_string(j, 3, buf); + + // Add E if it appears + if (has_e) + { + gcode += " E"; + gcode += utilities::to_string(e, 5, buf); } - return std::string(gcode_buffer_); + + // Add F if it appears + if (utilities::greater_than_or_equal(f, 1)) + { + gcode += " F"; + gcode += utilities::to_string(f, 0, buf); + } + + return gcode; } diff --git a/ArcWelder/segmented_arc.h b/ArcWelder/segmented_arc.h index 4a19b5c..9a412ad 100644 --- a/ArcWelder/segmented_arc.h +++ b/ArcWelder/segmented_arc.h @@ -41,18 +41,18 @@ public: std::string get_shape_gcode_absolute(double e, double f); std::string get_shape_gcode_relative(double f); - virtual bool is_shape(); + virtual bool is_shape() const; point pop_front(double e_relative); point pop_back(double e_relative); bool try_get_arc(arc & target_arc); + double get_max_radius() const; // static gcode buffer private: - char gcode_buffer_[GCODE_CHAR_BUFFER_SIZE + 1]; bool try_add_point_internal_(point p, double pd); - bool does_circle_fit_points_(const circle& c); + bool does_circle_fit_points_(circle& c) const; bool try_get_arc_(const circle& c, arc& target_arc); - std::string get_shape_gcode_(bool has_e, double e, double f); + std::string get_shape_gcode_(bool has_e, double e, double f) const; circle arc_circle_; int test_count_ = 0; double max_radius_mm_; diff --git a/ArcWelder/segmented_shape.cpp b/ArcWelder/segmented_shape.cpp index 9cf0830..312a7dc 100644 --- a/ArcWelder/segmented_shape.cpp +++ b/ArcWelder/segmented_shape.cpp @@ -175,12 +175,6 @@ bool circle::try_create_circle(point p1, point p2, point p3, double max_radius, if (utilities::is_zero(a, CIRCLE_GENERATION_A_ZERO_TOLERANCE)) { -#if _DEBUG - if (!utilities::is_zero(a, 0.000001)) - { - std::cout << "This is an interesting point. Colinear"; - } -#endif return false; } @@ -381,9 +375,9 @@ void segmented_shape::clear() e_relative_ = 0; original_shape_length_ = 0; } -bool segmented_shape::is_shape() +bool segmented_shape::is_shape() const { - // return the pre-calculated value. This should be updated by the plugin; + // return the pre-calculated value. This should be updated by the plugin return is_shape_; } void segmented_shape::set_is_shape(bool value) diff --git a/ArcWelder/segmented_shape.h b/ArcWelder/segmented_shape.h index 53a30ee..9ca480b 100644 --- a/ArcWelder/segmented_shape.h +++ b/ArcWelder/segmented_shape.h @@ -163,7 +163,6 @@ struct arc : circle double polar_end_theta; point start_point; point end_point; - bool is_point_in_arc_slice(const point& p); static bool try_create_arc(const circle& c, const point& start_point, const point& mid_point, const point& end_point, double approximate_length, double resolution, arc& target_arc); static bool try_create_arc(const circle& c, const array_list<point>& points, double approximate_length, double resolution, arc& target_arc); }; @@ -186,7 +185,7 @@ public: double get_shape_length(); double get_shape_e_relative(); void set_resolution_mm(double resolution_mm); - virtual bool is_shape(); + virtual bool is_shape() const; // public virtual functions virtual void clear(); virtual point pop_front(); diff --git a/ArcWelderConsole/ArcWelderConsole.vcxproj b/ArcWelderConsole/ArcWelderConsole.vcxproj index 620980d..7ffa03a 100644 --- a/ArcWelderConsole/ArcWelderConsole.vcxproj +++ b/ArcWelderConsole/ArcWelderConsole.vcxproj @@ -17,6 +17,14 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +39,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -44,6 +58,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +79,18 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -73,10 +99,18 @@ <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\TCLAP\</IncludePath> @@ -97,6 +131,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -109,6 +155,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/ArcWelderInverseProcessor/ArcWelderInverseProcessor.vcxproj b/ArcWelderInverseProcessor/ArcWelderInverseProcessor.vcxproj index 0e93496..ad7ff6f 100644 --- a/ArcWelderInverseProcessor/ArcWelderInverseProcessor.vcxproj +++ b/ArcWelderInverseProcessor/ArcWelderInverseProcessor.vcxproj @@ -17,6 +17,14 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +39,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -44,6 +58,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +79,18 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -73,10 +99,18 @@ <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> @@ -97,6 +131,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -109,6 +155,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/ArcWelderLib.sln b/ArcWelderLib.sln index 2a55fff..e254539 100644 --- a/ArcWelderLib.sln +++ b/ArcWelderLib.sln @@ -34,68 +34,125 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TCLAP", "TCLAP\TCLAP.vcxpro EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Release|ARM = Release|ARM Release|x64 = Release|x64 Release|x86 = Release|x86 + Remote_Pi|ARM = Remote_Pi|ARM + Remote_Pi|x64 = Remote_Pi|x64 + Remote_Pi|x86 = Remote_Pi|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Debug|ARM.ActiveCfg = Debug|ARM + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Debug|ARM.Build.0 = Debug|ARM {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Debug|x64.ActiveCfg = Debug|x64 {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Debug|x64.Build.0 = Debug|x64 {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Debug|x86.ActiveCfg = Debug|Win32 {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Debug|x86.Build.0 = Debug|Win32 + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Release|ARM.ActiveCfg = Release|ARM + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Release|ARM.Build.0 = Release|ARM {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Release|x64.ActiveCfg = Release|x64 {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Release|x64.Build.0 = Release|x64 {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Release|x86.ActiveCfg = Release|Win32 {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Release|x86.Build.0 = Release|Win32 + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|ARM + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Remote_Pi|ARM.Build.0 = Remote_Pi|ARM + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {1A4DBAB1-BB42-4DB1-B168-F113784EFCEF}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Debug|ARM.ActiveCfg = Debug|Win32 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Debug|x64.ActiveCfg = Debug|x64 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Debug|x64.Build.0 = Debug|x64 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Debug|x86.ActiveCfg = Debug|Win32 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Debug|x86.Build.0 = Debug|Win32 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Release|ARM.ActiveCfg = Release|Win32 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Release|x64.ActiveCfg = Release|x64 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Release|x64.Build.0 = Release|x64 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Release|x86.ActiveCfg = Release|Win32 {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Release|x86.Build.0 = Release|Win32 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|Win32 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {31478BAE-104B-4CC3-9876-42FA90CBD5FE}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Debug|ARM.ActiveCfg = Debug|Win32 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Debug|x64.ActiveCfg = Debug|x64 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Debug|x64.Build.0 = Debug|x64 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Debug|x86.ActiveCfg = Debug|Win32 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Debug|x86.Build.0 = Debug|Win32 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Release|ARM.ActiveCfg = Release|Win32 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Release|x64.ActiveCfg = Release|x64 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Release|x64.Build.0 = Release|x64 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Release|x86.ActiveCfg = Release|Win32 {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Release|x86.Build.0 = Release|Win32 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|Win32 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {DB476DBA-77D5-40A7-ADAB-D9901F32B270}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Debug|ARM.ActiveCfg = Debug|Win32 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Debug|x64.ActiveCfg = Debug|x64 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Debug|x64.Build.0 = Debug|x64 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Debug|x86.ActiveCfg = Debug|Win32 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Debug|x86.Build.0 = Debug|Win32 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Release|ARM.ActiveCfg = Release|Win32 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Release|x64.ActiveCfg = Release|x64 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Release|x64.Build.0 = Release|x64 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Release|x86.ActiveCfg = Release|Win32 {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Release|x86.Build.0 = Release|Win32 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|Win32 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {F4910B67-FE16-40EA-9BD5-91017C569B0D}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Debug|ARM.ActiveCfg = Debug|Win32 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Debug|x64.ActiveCfg = Debug|x64 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Debug|x64.Build.0 = Debug|x64 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Debug|x86.ActiveCfg = Debug|Win32 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Debug|x86.Build.0 = Debug|Win32 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Release|ARM.ActiveCfg = Release|Win32 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Release|x64.ActiveCfg = Release|x64 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Release|x64.Build.0 = Release|x64 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Release|x86.ActiveCfg = Release|Win32 {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Release|x86.Build.0 = Release|Win32 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|Win32 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {9C40BB30-5186-4181-94D6-AC8DFE361A5A}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Debug|ARM.ActiveCfg = Debug|Win32 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Debug|x64.ActiveCfg = Debug|x64 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Debug|x64.Build.0 = Debug|x64 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Debug|x86.ActiveCfg = Debug|Win32 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Debug|x86.Build.0 = Debug|Win32 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Release|ARM.ActiveCfg = Release|Win32 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Release|x64.ActiveCfg = Release|x64 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Release|x64.Build.0 = Release|x64 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Release|x86.ActiveCfg = Release|Win32 {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Release|x86.Build.0 = Release|Win32 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|Win32 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {18D7E538-6ACE-44E4-B83E-31C3E44D4227}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 + {38302600-81A7-45BB-A199-3360D6594365}.Debug|ARM.ActiveCfg = Debug|Win32 {38302600-81A7-45BB-A199-3360D6594365}.Debug|x64.ActiveCfg = Debug|x64 {38302600-81A7-45BB-A199-3360D6594365}.Debug|x64.Build.0 = Debug|x64 {38302600-81A7-45BB-A199-3360D6594365}.Debug|x86.ActiveCfg = Debug|Win32 {38302600-81A7-45BB-A199-3360D6594365}.Debug|x86.Build.0 = Debug|Win32 + {38302600-81A7-45BB-A199-3360D6594365}.Release|ARM.ActiveCfg = Release|Win32 {38302600-81A7-45BB-A199-3360D6594365}.Release|x64.ActiveCfg = Release|x64 {38302600-81A7-45BB-A199-3360D6594365}.Release|x64.Build.0 = Release|x64 {38302600-81A7-45BB-A199-3360D6594365}.Release|x86.ActiveCfg = Release|Win32 {38302600-81A7-45BB-A199-3360D6594365}.Release|x86.Build.0 = Release|Win32 + {38302600-81A7-45BB-A199-3360D6594365}.Remote_Pi|ARM.ActiveCfg = Remote_Pi|Win32 + {38302600-81A7-45BB-A199-3360D6594365}.Remote_Pi|x64.ActiveCfg = Remote_Pi|x64 + {38302600-81A7-45BB-A199-3360D6594365}.Remote_Pi|x64.Build.0 = Remote_Pi|x64 + {38302600-81A7-45BB-A199-3360D6594365}.Remote_Pi|x86.ActiveCfg = Remote_Pi|Win32 + {38302600-81A7-45BB-A199-3360D6594365}.Remote_Pi|x86.Build.0 = Remote_Pi|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ArcWelderTest/ArcWelderTest.cpp b/ArcWelderTest/ArcWelderTest.cpp index ef0e006..8601ba6 100644 --- a/ArcWelderTest/ArcWelderTest.cpp +++ b/ArcWelderTest/ArcWelderTest.cpp @@ -24,6 +24,7 @@ #include "ArcWelderTest.h" #include "logger.h" #include <iostream> +#include "utilities.h" int main(int argc, char* argv[]) { @@ -51,6 +52,7 @@ int run_tests(int argc, char* argv[]) { std::cout << "Processing test run " << index + 1 << " of " << num_runs << ".\r\n"; TestAntiStutter(ANTI_STUTTER_TEST); + //TestDoubleToString(); //TestInverseProcessor(); //TestCircularBuffer(); //TestSegmentedLine(); @@ -241,7 +243,7 @@ static void TestAntiStutter(std::string filePath) p_logger->set_log_level(INFO); //arc_welder arc_welder_obj(BENCHY_0_5_MM_NO_WIPE, "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", p_logger, max_resolution, false, 50, static_cast<progress_callback>(on_progress)); //arc_welder arc_welder_obj(SIX_SPEED_TEST, "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", p_logger, max_resolution, false, 50, on_progress); - arc_welder arc_welder_obj(BARBARIAN, "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", p_logger, max_resolution, max_radius_mm, false, 50, on_progress); + arc_welder arc_welder_obj(BENCHY_DIFFICULT, "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", p_logger, max_resolution, max_radius_mm, false, 50, on_progress); //BENCHY_LAYER_1GCODE //SMALL_TEST //FACE_SHIELD @@ -259,6 +261,7 @@ static void TestAntiStutter(std::string filePath) //DIFFICULT_CURVES //ISSUE_PRICKLYPEAR_LAYER_0_114 //BARBARIAN + // Benchy_L1_Difficult arc_welder_obj.process(); p_logger->log(0, INFO, "Processing Complete."); delete p_logger; @@ -269,3 +272,19 @@ static bool on_progress(arc_welder_progress progress) std::cout << progress.str() << "\r\n"; return true; } + +void TestDoubleToString() +{ + char buffer[100]; + + + for (int index = 0; index < 1000; index++) + { + double r = (double)rand() / RAND_MAX; + r = -1000000.0 + r * (1000000.0 - -1000000.0); + std::cout << std::fixed << std::setprecision(10) << "Number: " << r << std::endl; + utilities::to_string(r, 5, buffer); + std::cout << buffer << std::endl; + } + +} diff --git a/ArcWelderTest/ArcWelderTest.h b/ArcWelderTest/ArcWelderTest.h index d14e993..940c4aa 100644 --- a/ArcWelderTest/ArcWelderTest.h +++ b/ArcWelderTest/ArcWelderTest.h @@ -45,6 +45,7 @@ static gcode_position_args get_5_shared_extruder_position_args(); static gcode_position_args get_5_extruder_position_args(); static void TestAntiStutter(std::string filePath); static bool on_progress(arc_welder_progress progress); +static void TestDoubleToString(); static std::string ANTI_STUTTER_TEST = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\5x5_cylinder_2000Fn_0.2mm_PLA_MK2.5MMU2_4m.gcode"; @@ -65,7 +66,10 @@ static std::string SMALL_TEST = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStut static std::string SUPER_HUGE_TEST = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\super_huge_file.gcode"; static std::string TORTURE_TEST = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\stereographic_projection_0.2mm_PLA_MK2.5MMU2_2h49m.gcode"; static std::string ORCHID_POD = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\Pla_OrchidPot.gcode"; -static std::string ARC_GYROID_BENCHY_DIFFICULT = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\AS_BenchyArc_Difficult.gcode"; +static std::string BENCHY_DIFFICULT = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\BenchyArc_Difficult.gcode"; +static std::string BENCHY_L1_DIFFICULT = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\BenchyArc_L1_Difficult.gcode"; + + static std::string SIX_SPEED_TEST = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\6_speed_test.gcode"; // Issues static std::string ISSUE_MIMUPREFERIDA = "C:\\Users\\Brad\\Documents\\AntiStutter\\Issues\\MIMUPREFERIDA\\TESTSTUTTER.gcode"; diff --git a/ArcWelderTest/ArcWelderTest.vcxproj b/ArcWelderTest/ArcWelderTest.vcxproj index 553380a..a0c2784 100644 --- a/ArcWelderTest/ArcWelderTest.vcxproj +++ b/ArcWelderTest/ArcWelderTest.vcxproj @@ -17,6 +17,14 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +39,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -44,6 +58,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +79,18 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -73,10 +99,18 @@ <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <IncludePath>$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> @@ -97,6 +131,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -109,6 +155,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/GcodeProcessorLib/GcodeProcessorLib.vcxproj b/GcodeProcessorLib/GcodeProcessorLib.vcxproj index aba91bd..ec6b6a7 100644 --- a/GcodeProcessorLib/GcodeProcessorLib.vcxproj +++ b/GcodeProcessorLib/GcodeProcessorLib.vcxproj @@ -17,6 +17,14 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +39,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -44,6 +58,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +79,18 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -72,9 +98,15 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <LinkIncremental>true</LinkIncremental> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> </PropertyGroup> @@ -93,6 +125,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -105,6 +149,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/GcodeProcessorLib/array_list.h b/GcodeProcessorLib/array_list.h index 94862f3..6e48f96 100644 --- a/GcodeProcessorLib/array_list.h +++ b/GcodeProcessorLib/array_list.h @@ -35,6 +35,7 @@ public: count_ = 0; items_ = new T[max_size_]; } + array_list(int max_size) { auto_grow_ = false; @@ -43,9 +44,11 @@ public: count_ = 0; items_ = new T[max_size]; } + virtual ~array_list() { delete[] items_; } + void resize(int max_size) { T* new_items = new T[max_size]; @@ -58,6 +61,7 @@ public: items_ = new_items; max_size_ = max_size; } + void push_front(T object) { if (count_ == max_size_) @@ -74,6 +78,7 @@ public: count_++; items_[front_index_] = object; } + void push_back(T object) { if (count_ == max_size_) @@ -89,6 +94,7 @@ public: items_[(front_index_ + count_ + max_size_) % max_size_] = object; count_++; } + T pop_front() { if (count_ == 0) @@ -111,34 +117,33 @@ public: return items_[--count_]; } - T& operator[](int index) - { - return items_[(front_index_ + index + max_size_) % max_size_]; - } - const T& operator[] (const int index) const + + T& operator[] (const int index) const { return items_[(front_index_ + index + max_size_) % max_size_]; } - const T get(int index) + T get(int index) const { return items_[(front_index_ + index + max_size_) % max_size_]; } - int count() const + int count() const { return count_; - } - int get_max_size() + + int get_max_size() const { return max_size_; } + void clear() { count_ = 0; front_index_ = 0; } + void copy(const array_list<T>& source) { if (max_size_ < source.max_size_) diff --git a/GcodeProcessorLib/gcode_position.cpp b/GcodeProcessorLib/gcode_position.cpp index 7e56844..3ba1514 100644 --- a/GcodeProcessorLib/gcode_position.cpp +++ b/GcodeProcessorLib/gcode_position.cpp @@ -371,6 +371,12 @@ gcode_position::~gcode_position() delete_z_lift_heights_(); } +bool gcode_position::get_g90_91_influences_extruder() +{ + return g90_influences_extruder_; +} + + void gcode_position::set_num_extruders(int num_extruders) { delete_retraction_lengths_(); diff --git a/GcodeProcessorLib/gcode_position.h b/GcodeProcessorLib/gcode_position.h index e89f8df..521f0d3 100644 --- a/GcodeProcessorLib/gcode_position.h +++ b/GcodeProcessorLib/gcode_position.h @@ -146,6 +146,7 @@ public: position * get_current_position_ptr(); position * get_previous_position_ptr(); gcode_comment_processor* get_gcode_comment_processor(); + bool get_g90_91_influences_extruder(); private: gcode_position(const gcode_position &source); int position_buffer_size_; diff --git a/GcodeProcessorLib/utilities.cpp b/GcodeProcessorLib/utilities.cpp index 8844922..5e90768 100644 --- a/GcodeProcessorLib/utilities.cpp +++ b/GcodeProcessorLib/utilities.cpp @@ -123,6 +123,54 @@ std::string utilities::to_string(double value) return os.str(); } +char * utilities::to_string(double value, unsigned short precision, char * str) +{ + char reversed_int[20]; + + int char_count = 0, int_count = 0; + bool is_negative = false; + double integer_part, fractional_part; + fractional_part = std::abs(std::modf(value, &integer_part)); //Separate integer/fractional parts + if (value < 0) + { + str[char_count++] = '-'; + integer_part *= -1; + is_negative = true; + } + + if (integer_part == 0) + { + str[char_count++] = '0'; + } + else + { + while (integer_part > 0) //Convert integer part, if any + { + reversed_int[int_count++] = '0' + (int)std::fmod(integer_part, 10); + integer_part = std::floor(integer_part / 10); + } + } + int start = is_negative ? 1 : 0; + int end = char_count - start; + for (int i = 0; i < int_count; i++) + { + str[char_count++] = reversed_int[int_count - i - 1]; + } + if (precision > 0) + { + str[char_count++] = '.'; //Decimal point + + while (fractional_part > 0 && precision-- > 0) //Convert fractional part, if any + { + fractional_part *= 10; + fractional_part = std::modf(fractional_part, &integer_part); + str[char_count++] = '0' + (int)integer_part; + } + } + str[char_count] = 0; //String terminator + return str; +} + std::string utilities::ltrim(const std::string& s) { size_t start = s.find_first_not_of(WHITESPACE_); diff --git a/GcodeProcessorLib/utilities.h b/GcodeProcessorLib/utilities.h index a109a98..db858ad 100644 --- a/GcodeProcessorLib/utilities.h +++ b/GcodeProcessorLib/utilities.h @@ -44,6 +44,7 @@ public: static double get_cartesian_distance(double x1, double y1, double x2, double y2); static double get_cartesian_distance(double x1, double y1, double z1, double x2, double y2, double z2); static std::string to_string(double value); + static char* to_string(double value, unsigned short precision, char* str); static std::string ltrim(const std::string& s); static std::string rtrim(const std::string& s); static std::string trim(const std::string& s); diff --git a/PyArcWelder/PyArcWelder.vcxproj b/PyArcWelder/PyArcWelder.vcxproj index 3888cca..807a095 100644 --- a/PyArcWelder/PyArcWelder.vcxproj +++ b/PyArcWelder/PyArcWelder.vcxproj @@ -17,6 +17,14 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +39,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -44,6 +58,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +79,18 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -73,10 +99,18 @@ <LinkIncremental>true</LinkIncremental> <IncludePath>C:\Python38\include;$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>C:\Python38\include;$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> <IncludePath>C:\Python38\include;$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + <IncludePath>C:\Python38\include;$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <IncludePath>C:\Python38\include;$(SolutionDir)\GcodeProcessorLib\;$(SolutionDir)\ArcWelder\;$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath> @@ -102,6 +136,23 @@ </Command> </PostBuildEvent> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>C:\Python38\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + <PostBuildEvent> + <Command> + </Command> + </PostBuildEvent> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -119,6 +170,23 @@ </Command> </PostBuildEvent> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>C:\Python38\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + </Link> + <PostBuildEvent> + <Command> + </Command> + </PostBuildEvent> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> diff --git a/PyArcWelder/py_arc_welder_extension.cpp b/PyArcWelder/py_arc_welder_extension.cpp index 7879909..07f9dfc 100644 --- a/PyArcWelder/py_arc_welder_extension.cpp +++ b/PyArcWelder/py_arc_welder_extension.cpp @@ -185,12 +185,7 @@ extern "C" return NULL; } p_py_logger->set_log_level_by_value(args.log_level); - std::stringstream stream; - stream << "py_gcode_arc_converter.ConvertFile - Parameters received: source_file_path: '" << - args.source_file_path << "', target_file_path:'" << args.target_file_path << "' resolution_mm:" << - args.resolution_mm << "' max_radius_mm:" << - args.max_radius_mm << ", g90_91_influences_extruder: " << (args.g90_g91_influences_extruder ? "True" : "False") << "\n"; - p_py_logger->log(GCODE_CONVERSION, INFO, stream.str()); + std::string message = "py_gcode_arc_converter.ConvertFile - Beginning Arc Conversion."; p_py_logger->log(GCODE_CONVERSION, INFO, message); diff --git a/TCLAP/TCLAP.vcxproj b/TCLAP/TCLAP.vcxproj index c03b844..6527598 100644 --- a/TCLAP/TCLAP.vcxproj +++ b/TCLAP/TCLAP.vcxproj @@ -17,6 +17,14 @@ <Configuration>Release</Configuration> <Platform>x64</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|Win32"> + <Configuration>Remote_Pi</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Remote_Pi|x64"> + <Configuration>Remote_Pi</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <VCProjectVersion>16.0</VCProjectVersion> @@ -31,6 +39,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -44,6 +58,12 @@ <PlatformToolset>v142</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> @@ -59,12 +79,18 @@ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> @@ -72,9 +98,15 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <LinkIncremental>true</LinkIncremental> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <LinkIncremental>true</LinkIncremental> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> </PropertyGroup> @@ -93,6 +125,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> @@ -105,6 +149,18 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Remote_Pi|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> |