diff --git a/workspaces/vc17/custom_baudrate/custom_baudrate.vcxproj b/workspaces/vc17/custom_baudrate/custom_baudrate.vcxproj
new file mode 100644
index 0000000..eed7fb2
--- /dev/null
+++ b/workspaces/vc17/custom_baudrate/custom_baudrate.vcxproj
@@ -0,0 +1,168 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ Win32Proj
+ {f2b4027f-ccf7-4678-8581-10abfd913180}
+ custombaudrate
+ 10.0
+
+
+
+ Application
+ true
+ v143
+ MultiByte
+
+
+ Application
+ false
+ v143
+ true
+ MultiByte
+
+
+ Application
+ true
+ v143
+ MultiByte
+
+
+ Application
+ false
+ v143
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ false
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ false
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+
+ Level3
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\custom_baudrate;%(AdditionalIncludeDirectories)
+ MultiThreadedDebug
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\custom_baudrate;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\custom_baudrate;%(AdditionalIncludeDirectories)
+ MultiThreadedDebug
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\custom_baudrate;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+ {1f0aa469-8a8f-4ada-931d-967d2c5996df}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/custom_baudrate/custom_baudrate.vcxproj.filters b/workspaces/vc17/custom_baudrate/custom_baudrate.vcxproj.filters
new file mode 100644
index 0000000..937e4b0
--- /dev/null
+++ b/workspaces/vc17/custom_baudrate/custom_baudrate.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/frame_grabber/frame_grabber.vcxproj b/workspaces/vc17/frame_grabber/frame_grabber.vcxproj
new file mode 100644
index 0000000..657e0a1
--- /dev/null
+++ b/workspaces/vc17/frame_grabber/frame_grabber.vcxproj
@@ -0,0 +1,283 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {43664C66-8311-4696-BE18-778DBCD57362}
+ 10.0
+
+
+
+ Application
+ true
+ MultiByte
+ v143
+
+
+ Application
+ true
+ MultiByte
+ v143
+
+
+ Application
+ false
+ MultiByte
+ v143
+
+
+ Application
+ false
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)\..\..\obj\win32\$(ProjectName)\$(Configuration)\
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ true
+ $(ProjectDir)..\..\..\app\frame_grabber;$(IncludePath)
+ $(ProjectDir)..\..\..\app\frame_grabber\ref\dnssd;$(LibraryPath)
+
+
+ true
+ $(ProjectDir)..\..\..\app\frame_grabber;$(IncludePath)
+ $(ProjectDir)..\..\..\app\frame_grabber\ref\dnssd;$(LibraryPath)
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+
+
+ $(SolutiaonDir)\..\..\obj\win32\$(ProjectName)\$(Configuration)\
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ false
+ $(ProjectDir)..\..\..\app\frame_grabber;$(IncludePath)
+ $(ProjectDir)..\..\..\app\frame_grabber\ref\dnssd;$(LibraryPath)
+
+
+ false
+ $(ProjectDir)..\..\..\app\frame_grabber;$(IncludePath)
+ $(ProjectDir)..\..\..\app\frame_grabber\ref\dnssd;$(LibraryPath)
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+
+
+
+ Level3
+ MultiThreadedDebug
+ true
+ EditAndContinue
+ EnableFastChecks
+ Disabled
+ WIN32;_WINDOWS;STRICT;_DEBUG;CURL_STATICLIB;%(PreprocessorDefinitions)
+ ..\..\..\app\frame_grabber;..\..\..\app\frame_grabber\ref\wtl;..\..\..\sdk\src;..\..\..\sdk\include;.;%(AdditionalIncludeDirectories)
+ Create
+
+
+ Windows
+ MachineX86
+ true
+ Gdiplus.lib;dnssd.lib;%(AdditionalDependencies)
+
+
+ 0x0409
+ $(IntDir);$(ProjectDir)\..\..\..\app\frame_grabber\ref\wtl;%(AdditionalIncludeDirectories)
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ false
+ Win32
+ _DEBUG;%(PreprocessorDefinitions)
+ framegrabber.h
+ framegrabber_i.c
+ framegrabber_p.c
+ true
+ $(IntDir)/framegrabber.tlb
+
+
+
+
+
+
+ Level3
+ MultiThreadedDebug
+ ProgramDatabase
+ EnableFastChecks
+ Disabled
+ WIN32;_WINDOWS;STRICT;CONF_DISABLE_DNSSD;_DEBUG;CURL_STATICLIB;%(PreprocessorDefinitions)
+ ..\..\..\app\frame_grabber;..\..\..\app\frame_grabber\ref\wtl;..\..\..\sdk\src;..\..\..\sdk\include;.;%(AdditionalIncludeDirectories)
+ Create
+
+
+ Windows
+ true
+ Gdiplus.lib;dnssd.lib;%(AdditionalDependencies)
+
+
+ 0x0409
+ $(IntDir);$(ProjectDir)\..\..\..\app\frame_grabber\ref\wtl;%(AdditionalIncludeDirectories)
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+ false
+ _DEBUG;%(PreprocessorDefinitions)
+ framegrabber.h
+ framegrabber_i.c
+ framegrabber_p.c
+ true
+ $(IntDir)/framegrabber.tlb
+
+
+
+
+
+
+ Use
+ Level3
+ MultiThreaded
+
+
+
+
+ WIN32;_WINDOWS;STRICT;NDEBUG;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\app\frame_grabber\ref\wtl;..\..\..\sdk\include;.;%(AdditionalIncludeDirectories)
+
+
+ Windows
+ MachineX86
+ Gdiplus.lib;dnssd.lib;%(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+
+
+ 0x0409
+ $(IntDir);..\..\..\app\frame_grabber\ref\wtl;%(AdditionalIncludeDirectories)
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ false
+ Win32
+ NDEBUG;%(PreprocessorDefinitions)
+ framegrabber.h
+ framegrabber_i.c
+ framegrabber_p.c
+ true
+ $(IntDir)/framegrabber.tlb
+
+
+
+
+
+
+ Use
+ Level3
+ MultiThreaded
+
+
+
+
+ WIN32;_WINDOWS;STRICT;CONF_DISABLE_DNSSD;NDEBUG;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\app\frame_grabber\ref\wtl;..\..\..\sdk\include;.;%(AdditionalIncludeDirectories)
+
+
+ Windows
+ Gdiplus.lib;dnssd.lib;%(AdditionalDependencies)
+ %(AdditionalLibraryDirectories)
+
+
+ 0x0409
+ $(IntDir);..\..\..\app\frame_grabber\ref\wtl;%(AdditionalIncludeDirectories)
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ false
+ NDEBUG;%(PreprocessorDefinitions)
+ framegrabber.h
+ framegrabber_i.c
+ framegrabber_p.c
+ true
+ $(IntDir)/framegrabber.tlb
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {1f0aa469-8a8f-4ada-931d-967d2c5996df}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/frame_grabber/frame_grabber.vcxproj.filters b/workspaces/vc17/frame_grabber/frame_grabber.vcxproj.filters
new file mode 100644
index 0000000..ee0228a
--- /dev/null
+++ b/workspaces/vc17/frame_grabber/frame_grabber.vcxproj.filters
@@ -0,0 +1,103 @@
+
+
+
+
+ {c3a16088-689b-4e1e-aab4-ac33d58067a4}
+ cpp;c;cxx;def;odl;idl;hpj;bat;asm
+
+
+ {aabd7724-6c0e-44c7-a0f7-ca945bd9afd8}
+ h;hpp;hxx;hm;inl;inc
+
+
+ {7edcc76a-7c5a-4b3e-8199-3001d79de00a}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;manifest
+
+
+ {8de1a143-1934-46ca-a86a-83c28b4e3695}
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ drvlogic
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ drvlogic
+
+
+ drvlogic
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+ Resource Files
+
+
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/rplidar_driver/rplidar_driver.vcxproj b/workspaces/vc17/rplidar_driver/rplidar_driver.vcxproj
new file mode 100644
index 0000000..785d04f
--- /dev/null
+++ b/workspaces/vc17/rplidar_driver/rplidar_driver.vcxproj
@@ -0,0 +1,204 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}
+ rplidar_driver
+ 10.0
+
+
+
+ StaticLibrary
+ true
+ MultiByte
+ v143
+
+
+ StaticLibrary
+ true
+ MultiByte
+ v143
+
+
+ StaticLibrary
+ false
+ true
+ MultiByte
+ v143
+
+
+ StaticLibrary
+ false
+ true
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+
+
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\..\..\sdk\include;..\..\..\sdk\src;%(AdditionalIncludeDirectories)
+
+
+ MultiThreadedDebug
+
+
+ true
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\..\..\sdk\include;..\..\..\sdk\src;%(AdditionalIncludeDirectories)
+
+
+ MultiThreadedDebug
+
+
+ true
+
+
+
+
+ Level3
+ Disabled
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\..\..\sdk\include;..\..\..\sdk\src;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ true
+ true
+ true
+
+
+
+
+ Level3
+ Disabled
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ ..\..\..\sdk\include;..\..\..\sdk\src;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/rplidar_driver/rplidar_driver.vcxproj.filters b/workspaces/vc17/rplidar_driver/rplidar_driver.vcxproj.filters
new file mode 100644
index 0000000..1ae30e3
--- /dev/null
+++ b/workspaces/vc17/rplidar_driver/rplidar_driver.vcxproj.filters
@@ -0,0 +1,183 @@
+
+
+
+
+ {5cb78334-d13c-41d7-9eb5-41cee2d01e72}
+
+
+ {f9173f07-ff74-4d5d-b1dc-164d0038c1bc}
+
+
+ {27dac87b-034a-4a59-bc55-ea80634c118e}
+
+
+ {53230295-1fab-4e93-8aa0-2639de2def2b}
+
+
+ {7f726b48-4843-47e1-b28b-4d995dfa7137}
+
+
+ {86396fa7-a00c-44f8-bf55-caa5296c66c0}
+
+
+ {67731c55-dbd5-48be-a5b3-b1c1af692166}
+
+
+ {e216a3d2-d632-4dcb-9260-b06e88f2826f}
+
+
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src\hal
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src\hal
+
+
+ sdk\src
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src\hal
+
+
+ sdk\src\hal
+
+
+ sdk\include
+
+
+ sdk\src\hal
+
+
+ sdk\src\hal
+
+
+ sdk\src\hal
+
+
+ sdk\src\hal
+
+
+ sdk\src\hal
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\include
+
+
+ sdk\src
+
+
+ sdk\src\hal
+
+
+ sdk\src
+
+
+ sdk\src\dataunpacker
+
+
+ sdk\src\dataunpacker
+
+
+ sdk\src\dataunpacker
+
+
+ sdk\src\dataunpacker\unpacker
+
+
+ sdk\src\dataunpacker\unpacker
+
+
+ sdk\src\dataunpacker\unpacker
+
+
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src\hal
+
+
+ sdk\src\arch\win32
+
+
+ sdk\src
+
+
+ sdk\src
+
+
+ sdk\src
+
+
+ sdk\src
+
+
+ sdk\src
+
+
+ sdk\src
+
+
+ sdk\src
+
+
+ sdk\src\dataunpacker
+
+
+ sdk\src\dataunpacker\unpacker
+
+
+ sdk\src\dataunpacker\unpacker
+
+
+ sdk\src\dataunpacker\unpacker
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/sdk_and_demo.sln b/workspaces/vc17/sdk_and_demo.sln
new file mode 100644
index 0000000..4fd9d2a
--- /dev/null
+++ b/workspaces/vc17/sdk_and_demo.sln
@@ -0,0 +1,77 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34031.279
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rplidar_driver", "rplidar_driver\rplidar_driver.vcxproj", "{1F0AA469-8A8F-4ADA-931D-967D2C5996DF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple_grabber", "simple_grabber\simple_grabber.vcxproj", "{5963E516-0E6B-49E0-B8A3-1CBEE86414B3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF} = {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "frame_grabber", "frame_grabber\frame_grabber.vcxproj", "{43664C66-8311-4696-BE18-778DBCD57362}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF} = {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ultra_simple", "ultra_simple\ultra_simple.vcxproj", "{6AE94E9D-442B-493D-ADE7-78E64E8695CB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "custom_baudrate", "custom_baudrate\custom_baudrate.vcxproj", "{F2B4027F-CCF7-4678-8581-10ABFD913180}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Debug|Win32.Build.0 = Debug|Win32
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Debug|x64.ActiveCfg = Debug|x64
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Debug|x64.Build.0 = Debug|x64
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Release|Win32.ActiveCfg = Release|Win32
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Release|Win32.Build.0 = Release|Win32
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Release|x64.ActiveCfg = Release|x64
+ {1F0AA469-8A8F-4ADA-931D-967D2C5996DF}.Release|x64.Build.0 = Release|x64
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Debug|Win32.Build.0 = Debug|Win32
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Debug|x64.ActiveCfg = Debug|x64
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Debug|x64.Build.0 = Debug|x64
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Release|Win32.ActiveCfg = Release|Win32
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Release|Win32.Build.0 = Release|Win32
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Release|x64.ActiveCfg = Release|x64
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}.Release|x64.Build.0 = Release|x64
+ {43664C66-8311-4696-BE18-778DBCD57362}.Debug|Win32.ActiveCfg = Debug|Win32
+ {43664C66-8311-4696-BE18-778DBCD57362}.Debug|Win32.Build.0 = Debug|Win32
+ {43664C66-8311-4696-BE18-778DBCD57362}.Debug|x64.ActiveCfg = Debug|x64
+ {43664C66-8311-4696-BE18-778DBCD57362}.Debug|x64.Build.0 = Debug|x64
+ {43664C66-8311-4696-BE18-778DBCD57362}.Release|Win32.ActiveCfg = Release|Win32
+ {43664C66-8311-4696-BE18-778DBCD57362}.Release|Win32.Build.0 = Release|Win32
+ {43664C66-8311-4696-BE18-778DBCD57362}.Release|x64.ActiveCfg = Release|x64
+ {43664C66-8311-4696-BE18-778DBCD57362}.Release|x64.Build.0 = Release|x64
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Debug|Win32.Build.0 = Debug|Win32
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Debug|x64.ActiveCfg = Debug|x64
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Debug|x64.Build.0 = Debug|x64
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Release|Win32.ActiveCfg = Release|Win32
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Release|Win32.Build.0 = Release|Win32
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Release|x64.ActiveCfg = Release|x64
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}.Release|x64.Build.0 = Release|x64
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Debug|Win32.Build.0 = Debug|Win32
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Debug|x64.ActiveCfg = Debug|x64
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Debug|x64.Build.0 = Debug|x64
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Release|Win32.ActiveCfg = Release|Win32
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Release|Win32.Build.0 = Release|Win32
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Release|x64.ActiveCfg = Release|x64
+ {F2B4027F-CCF7-4678-8581-10ABFD913180}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E4CC49D0-2606-4D70-9665-5C2137FA5C16}
+ EndGlobalSection
+EndGlobal
diff --git a/workspaces/vc17/simple_grabber/simple_grabber.vcxproj b/workspaces/vc17/simple_grabber/simple_grabber.vcxproj
new file mode 100644
index 0000000..6ac2b2e
--- /dev/null
+++ b/workspaces/vc17/simple_grabber/simple_grabber.vcxproj
@@ -0,0 +1,173 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {5963E516-0E6B-49E0-B8A3-1CBEE86414B3}
+ Win32Proj
+ simple_grabber
+ 10.0
+
+
+
+ Application
+ true
+ MultiByte
+ v143
+
+
+ Application
+ true
+ MultiByte
+ v143
+
+
+ Application
+ false
+ true
+ MultiByte
+ v143
+
+
+ Application
+ false
+ true
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ false
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ false
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+
+
+ MultiThreadedDebug
+
+
+ Console
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+
+
+ MultiThreadedDebug
+
+
+ Console
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+ {1f0aa469-8a8f-4ada-931d-967d2c5996df}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/simple_grabber/simple_grabber.vcxproj.filters b/workspaces/vc17/simple_grabber/simple_grabber.vcxproj.filters
new file mode 100644
index 0000000..ca6ecd1
--- /dev/null
+++ b/workspaces/vc17/simple_grabber/simple_grabber.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/ultra_simple/ultra_simple.vcxproj b/workspaces/vc17/ultra_simple/ultra_simple.vcxproj
new file mode 100644
index 0000000..2bdbc19
--- /dev/null
+++ b/workspaces/vc17/ultra_simple/ultra_simple.vcxproj
@@ -0,0 +1,177 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {6AE94E9D-442B-493D-ADE7-78E64E8695CB}
+ Win32Proj
+ ultra_simple
+ 10.0
+
+
+
+ Application
+ true
+ MultiByte
+ v143
+
+
+ Application
+ true
+ MultiByte
+ v143
+
+
+ Application
+ false
+ true
+ MultiByte
+ v143
+
+
+ Application
+ false
+ true
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ false
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+ false
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ $(SolutionDir)\..\..\obj\$(Platform)\$(ProjectName)\$(Configuration)\
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+ MultiThreadedDebug
+
+
+ Console
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ rplidar_driver.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+ MultiThreadedDebug
+
+
+ Console
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ rplidar_driver.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ rplidar_driver.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ ..\..\..\sdk\src;..\..\..\sdk\include;..\..\..\app\simple_grabber;%(AdditionalIncludeDirectories)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ true
+ $(SolutionDir)\..\..\output\$(Platform)\$(Configuration)\
+ rplidar_driver.lib;%(AdditionalDependencies)
+
+
+
+
+ {1f0aa469-8a8f-4ada-931d-967d2c5996df}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/workspaces/vc17/ultra_simple/ultra_simple.vcxproj.filters b/workspaces/vc17/ultra_simple/ultra_simple.vcxproj.filters
new file mode 100644
index 0000000..38b655c
--- /dev/null
+++ b/workspaces/vc17/ultra_simple/ultra_simple.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file