diff --git a/runner17/Release/smokeBox.exe b/runner17/Release/smokeBox.exe
index 13da305..a8c83a1 100644
Binary files a/runner17/Release/smokeBox.exe and b/runner17/Release/smokeBox.exe differ
diff --git a/runner17/Release/smokeBox.pdb b/runner17/Release/smokeBox.pdb
index 5804ebb..ef85868 100644
Binary files a/runner17/Release/smokeBox.pdb and b/runner17/Release/smokeBox.pdb differ
diff --git a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.qtvscr b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.qtvscr
new file mode 100644
index 0000000..2fe6435
--- /dev/null
+++ b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.qtvscr
@@ -0,0 +1,1674 @@
+
+
+
+
+
+ Qt Visual Studio Tools
+
+
+ Project Format Conversion
+
+
+ Report generated on 2024-02-21 15:59:08
+
+
+
+
+ Files
+
+
+
+
+ [Before]
+ [After]
+
+ [Diff before/after]
+
+
+ [Diff before/current]
+
+
+ [Diff after/current]
+
+
+
+
+
+
+ [Before]
+ [After]
+
+ [Diff before/after]
+
+
+ [Diff before/current]
+
+
+ [Diff after/current]
+
+
+
+
+
+
+ Changes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>]]>
+
+
+
+
+ ]]>]]>
+
+
+
+
+
+
+
+
+
+ ]]>]]>
+
+
+
+
+ ]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ true]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Qt4VSv1.0]]>
+
+
+
+
+ QtVS_v304]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectDirectory)\QtMsBuild]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectDirectory)\QtMsBuild]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)..\runner17\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ smokeBoxd]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)..\runner17\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ smokeBox]]>
+
+
+
+
+
+
+
+
+
+ $(LibraryPath)]]>
+
+
+
+
+
+
+
+
+
+ $(IncludePath)]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)..\runner17\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ smokeBoxd]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)..\runner17\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ smokeBox]]>
+
+
+
+
+
+
+
+
+
+ $(LibraryPath)]]>
+
+
+
+
+
+
+
+
+
+ $(IncludePath)]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ msvc2017_qt-5.9.4-x64]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ msvc2017_qt-5.9.4-x64]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;]]>]]>
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;]]>]]>
+
+
+
+
+
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;]]>]]>
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]>
+
+
+
+
+ .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]>
+
+
+
+
+
+
+
+
+
+ .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]>
+
+
+
+
+ .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;Qt5QuickWidgetsd.lib;Qt5SerialPortd.lib;Qt5WebSocketsd.lib;Qt5Widgetsd.lib;Qt5Xlsxd]]>]]>
+
+
+
+
+ Qt5Xlsxd]]>]]>
+
+
+
+
+
+
+
+
+
+ qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Network.lib;Qt5QuickWidgets.lib;Qt5SerialPort.lib;Qt5WebSockets.lib;Qt5Widgets.lib;Qt5Xlsx]]>]]>
+
+
+
+
+ Qt5Xlsx]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(]]>]]>
+
+
+
+
+ $(]]>]]>
+
+
+
+
+
+
+
+
+
+ $(]]>]]>
+
+
+
+
+ $(]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ core;network;gui;widgets;serialport;websockets;winextras;quickwidgets]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ core;network;gui;widgets;serialport;websockets;winextras;quickwidgets]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ PATH=$(QTDIR)\bin%3b$(PATH)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ PATH=$(QTDIR)\bin%3b$(PATH)]]>
+
+
+
+
+
+
+
+
+
+ Dir and FileName]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)]]>
+
+
+
+
+
+
+
+
+
+ moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles]]>
+
+
+
+
+
+
+
+
+
+ ui_%(Filename).h]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles]]>
+
+
+
+
+
+
+
+
+
+ qrc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)]]>
+
+
+
+
+
+
+
+
+
+ moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles]]>
+
+
+
+
+
+
+
+
+
+ ui_%(Filename).h]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles]]>
+
+
+
+
+
+
+
+
+
+ qrc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)]]>
+
+
+
+
+
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\ui_%(Filename).h]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\qrc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)]]>
+
+
+
+
+
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\ui_%(Filename).h]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\qrc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj
index 4d3a589..0cb2123 100644
--- a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj
+++ b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj
@@ -12,8 +12,9 @@
{B12702AD-ABFB-343A-A199-8E24837244A3}
- Qt4VSv1.0
+ QtVS_v304
10.0.17763.0
+ $(MSBuildProjectDirectory)\QtMsBuild
@@ -25,93 +26,105 @@
v141
-
- $(MSBuildProjectDirectory)\QtMsBuild
+
+
+ msvc2017_64-5.9.4
+ core;gui;network;quickwidgets;serialport;websockets;widgets;winextras
-
- $(SolutionDir)..\runner17\$(Configuration)\
- smokeBoxd
-
-
- $(SolutionDir)..\runner17\$(Configuration)\
- smokeBox
- $(LibraryPath)
- $(IncludePath)
+
+ msvc2017_64-5.9.4
+ core;network;gui;widgets;serialport;websockets;winextras;quickwidgets
-
+
-
-
-
+
+
+
+ $(SolutionDir)..\runner17\$(Configuration)\
+ smokeBoxd
+ D:\Qt\5.9.4\msvc2017_64\include;$(IncludePath)
+ D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64;$(ExecutablePath)
+ D:\Qt\5.9.4\msvc2017_64\lib;$(LibraryPath)
+
+
+ $(SolutionDir)..\runner17\$(Configuration)\
+ smokeBox
+ D:\Qt\5.9.4\msvc2017_64\lib;$(LibraryPath)
+ $(IncludePath)
+
- UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)
- .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;%(PreprocessorDefinitions)
+ .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)
Disabled
ProgramDatabase
MultiThreadedDebugDLL
true
+ false
Windows
$(OutDir)smokeBoxd.exe
- $(QTDIR)\lib;$(MVCAM_COMMON_RUNENV)\Libraries\win64;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;%(AdditionalLibraryDirectories)
+ $(MVCAM_COMMON_RUNENV)\Libraries\win64;D:\Qt\5.9.4\Qt5.9.4\5.9.4\msvc2017_64\lib;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;%(AdditionalLibraryDirectories)
true
- qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;Qt5QuickWidgetsd.lib;Qt5SerialPortd.lib;Qt5WebSocketsd.lib;Qt5Widgetsd.lib;Qt5Xlsxd.lib;opencv_world341d.lib;MvCameraControl.lib;numStatisticAlgod.lib;lpSeriald.lib;libzkqd.lib;LxCameraApi.lib;%(AdditionalDependencies)
+ Qt5Xlsxd.lib;opencv_world341d.lib;MvCameraControl.lib;numStatisticAlgod.lib;lpSeriald.lib;libzkqd.lib;LxCameraApi.lib;%(AdditionalDependencies)
- .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
Moc'ing %(Identity)...
- .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)
- UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)
+ .\GeneratedFiles\$(ConfigurationName)
+ moc_%(Filename).cpp
Uic'ing %(Identity)...
- .\GeneratedFiles\ui_%(Filename).h
+ .\GeneratedFiles
+ ui_%(Filename).h
Rcc'ing %(Identity)...
- .\GeneratedFiles\qrc_%(Filename).cpp
+ .\GeneratedFiles
+ qrc_%(Filename).cpp
- UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)
- .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)
+ UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)
+ .;.\GeneratedFiles;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)
ProgramDatabase
MultiThreadedDLL
true
+ false
Windows
$(OutDir)smokeBox.exe
- $(QTDIR)\lib;$(MVCAM_COMMON_RUNENV)\Libraries\win64;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;$(SolutionDir)..\3rdparty\qxlsx\lib;$(SolutionDir)..\tpvs17\x64\Release;%(AdditionalLibraryDirectories)
+ $(MVCAM_COMMON_RUNENV)\Libraries\win64;$(SolutionDir)..\3rdparty\lib;$(SolutionDir)$(Platform)\$(Configuration)\;$(SolutionDir)..\3rdparty\opencv\lib;$(SolutionDir)..\3rdparty\qxlsx\lib;$(SolutionDir)..\tpvs17\x64\Release;%(AdditionalLibraryDirectories)
true
- qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Network.lib;Qt5QuickWidgets.lib;Qt5SerialPort.lib;Qt5WebSockets.lib;Qt5Widgets.lib;Qt5Xlsx.lib;opencv_world341.lib;MvCameraControl.lib;numStatisticAlgo.lib;lpSerial.lib;libzkq.lib;LxCameraApi.lib;%(AdditionalDependencies)
+ Qt5Xlsx.lib;opencv_world341.lib;MvCameraControl.lib;numStatisticAlgo.lib;lpSerial.lib;libzkq.lib;LxCameraApi.lib;%(AdditionalDependencies)
- .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
Moc'ing %(Identity)...
- .\GeneratedFiles;.;..\..\src;..\..\src\libzkq;..\..\src\lpSerial;..\..\src\lpSerial\include;..\..\src\numStatisticAlgo;..\..\src\MVCameraDriver;..\..\src\common;..\..\src\lpv;..\..\3rdparty\opencv\include;..\..\3rdparty\opencv\include\opencv;..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx;%(AdditionalIncludeDirectories)
- UNICODE;_UNICODE;WIN32;WIN64;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_NETWORK_LIB;QT_SERIALPORT_LIB;QT_WIDGETS_LIB;QT_WINEXTRAS_LIB;%(PreprocessorDefinitions)
+ .\GeneratedFiles\$(ConfigurationName)
+ moc_%(Filename).cpp
Uic'ing %(Identity)...
- .\GeneratedFiles\ui_%(Filename).h
+ .\GeneratedFiles
+ ui_%(Filename).h
Rcc'ing %(Identity)...
- .\GeneratedFiles\qrc_%(Filename).cpp
+ .\GeneratedFiles
+ qrc_%(Filename).cpp
@@ -149,25 +162,16 @@
-
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
-
+
-
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
-
+
-
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
-
+
@@ -179,24 +183,19 @@
-
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
- .\GeneratedFiles;.;.\..\..\src;.\..\..\src\libzkq;.\..\..\src\lpSerial;.\..\..\src\lpSerial\include;.\..\..\src\numStatisticAlgo;.\..\..\src\MVCameraDriver;.\..\..\src\common;.\..\..\src\lpv;.\..\..\3rdparty\opencv\include;.\..\..\3rdparty\opencv\include\opencv;.\..\..\3rdparty\opencv\include\opencv2;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtSerialPort;$(QTDIR)\include\QtWebSockets;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtWinExtras;$(QTDIR)\include\QtXlsx
-
+
-
-
-
+
-
+
\ No newline at end of file
diff --git a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user
index 7a20d55..be679b1 100644
--- a/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user
+++ b/tpvs17/SmokeBoxIdentification/SmokeBoxIdentification.vcxproj.user
@@ -2,15 +2,17 @@
- C:\Qt\Qt5.9.4\5.9.4\msvc2017_64
$(OutDir)smokeBoxd.exe
WindowsLocalDebugger
- PATH=$(QTDIR)\bin%3b$(PATH)
- C:\Qt\Qt5.9.4\5.9.4\msvc2017_64
$(OutDir)smokeBox.exe
WindowsLocalDebugger
- PATH=$(QTDIR)\bin%3b$(PATH)
+
+
+ 2024-02-21T09:18:16.3023274Z
+
+
+ 2024-02-25T01:36:44.5600966Z
\ No newline at end of file
diff --git a/tpvs17/enc_temp_folder/67d2d085ee88d4d5a44a361b80503e/CategoryMatcher.cpp b/tpvs17/enc_temp_folder/67d2d085ee88d4d5a44a361b80503e/CategoryMatcher.cpp
new file mode 100644
index 0000000..d9d3ff9
--- /dev/null
+++ b/tpvs17/enc_temp_folder/67d2d085ee88d4d5a44a361b80503e/CategoryMatcher.cpp
@@ -0,0 +1,483 @@
+#pragma execution_character_set("utf-8")
+#include "CategoryMatcher.h"
+
+CategoryMatcher::CategoryMatcher(QObject *parent)
+ : QObject(parent)
+{
+ m_ilmatch = ILMatchPtr(__uuidof(LMatch));
+ m_ilmatchF = ILMatchPtr(__uuidof(LMatch));
+ m_display = ILDisplayPtr(__uuidof(LDisplay));
+ m_text = ILTextPtr(__uuidof(LText));
+ m_textSys= ILSystemPtr(__uuidof(LSystem));
+ initILMatchParam(QCoreApplication::applicationDirPath() + MATCHER_CONFIG);
+ setILMatch(m_matchParam);
+ qDebug() << "init CategoryMatcher successed";
+
+ m_text->Alignment = LPVAlignment::LPVAlignLeft; // ÉèÖÃÎı¾»æÖÆÊ±µÄ¶ÔÆë·½Ê½
+ m_textSys->SetFontColor(m_text, m_textSys->GetColorRef(0, 255, 0)); // ÉèÖÃÎı¾µÄÑÕÉ«
+ m_textSys->SetFontHeight(m_text, 80); // ÉèÖÃ×ÖÌå¸ß¶È
+ m_textSys->SetFontFamily(m_text, "Microsoft YaHei"); // ÉèÖÃ×ÖÌåÀàÐÍ
+ m_text->PosX = 100;
+ m_text->PosY = 100; // ÉèÖÃÎı¾»æÖÆÊ±µÄλÖÃ
+}
+
+CategoryMatcher::~CategoryMatcher()
+{
+
+}
+
+void CategoryMatcher::initILMatchParam(const QString& path)
+{
+ QString fileMyself = path;
+ QFile file(fileMyself);
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
+ {
+ qWarning() << "´ò¿ªÎļþʧ°Ü£¡";
+ return;
+ }
+ QByteArray arr = file.readAll();
+ file.close();
+ if (arr.isEmpty())
+ {
+ qWarning() << "ÄÚÈÝΪ¿Õ";
+ return;
+ }
+
+ QJsonParseError err;
+ QJsonDocument doc = QJsonDocument::fromJson(arr, &err);
+ if (doc.isEmpty())
+ {
+ qWarning() << err.errorString(); //´òӡʧ°ÜÐÅÏ¢
+ return;
+ }
+
+ QJsonObject jsMyself = doc.object();
+ QJsonObject MatchParamObj = jsMyself.value("MatchParam").toObject();
+ if (!MatchParamObj.isEmpty()) {
+ m_matchParam.MaxCount = MatchParamObj.value("MaxCount").toInt();
+ m_matchParam.ScaleTolerance = MatchParamObj.value("ScaleTolerance").toInt();
+ m_matchParam.AngleTolerance = MatchParamObj.value("AngleTolerance").toInt();
+ m_matchParam.AcceptScore = MatchParamObj.value("ScoreThresh").toInt();
+ m_matchParam.StrictScore = MatchParamObj.value("StrictScore").toBool();
+ m_matchParam.UseCache = MatchParamObj.value("UseCache").toBool();
+ }
+}
+
+void CategoryMatcher::setILMatch(const MatchParam& matchParam)
+{
+ m_ilmatch->MaxCount = m_matchParam.MaxCount;
+ m_ilmatch->ScaleTolerance = m_matchParam.ScaleTolerance;
+ m_ilmatch->AngleTolerance = m_matchParam.AngleTolerance;
+ m_ilmatch->StrictScore = m_matchParam.StrictScore;
+ m_ilmatch->UseCache = m_matchParam.UseCache;
+ m_ilmatch->AcceptScore = m_matchParam.AcceptScore;
+
+
+ m_ilmatchF->MaxCount = m_matchParam.MaxCount;
+ m_ilmatchF->ScaleTolerance = m_matchParam.ScaleTolerance;
+ m_ilmatchF->AngleTolerance = m_matchParam.AngleTolerance;
+ m_ilmatchF->StrictScore = m_matchParam.StrictScore;
+ m_ilmatchF->UseCache = m_matchParam.UseCache;
+ m_ilmatchF->AcceptScore = m_matchParam.AcceptScore;
+
+}
+
+
+bool CategoryMatcher::smokeMatch(const QString& typeNo, ILImagePtr image, int id)
+{
+ QMap resultsPair;
+ bool bRlt = smokeMatch(typeNo, image, resultsPair,id);
+ drawImage(image, resultsPair);
+ return bRlt;
+}
+
+bool CategoryMatcher::smokeMatch(const QString& typeNo, const ILImagePtr ilImgPtr,
+ QMap& resultsMap, int id)
+{
+ TemplateObject templateObj;
+ QString templateImgFolderPath = TYPE_TEMPLATE_PATH;
+
+ //¿ÉÄÜ´æÔÚÎÊÌ⣺֮ǰµÄÄ£°åÉè¼Æ¡£ºó׺´øÁ˱ðµÄÊý¾Ý¡£ÐèÑéÖ¤
+ // Ä£°åÎļþ¸ñʽ£ºÑÌÏä±àÂë/ÑÌÏä±àÂë-Ä£°å±àÂë
+ // Ä£°å±àÂ룺ģ°åÀàÐÍ+Ä£°å±àºÅ
+ // Ä£°åÀàÐÍ£º1Ϊ´óÄ£°å£¨Ä£°åºÍÆ¥Åäͼ¾ù·ÅËõ50%£©£¬2ΪСģ°å
+ // ÀýÈ磺1ÀàÄ£°åµÄµÚ1¸öÄ£°å£º11
+ // ÖлªÓ²310102µÄ2ÀàÄ£°åµÄµÚ1¸öÄ£°å£º310102-21
+ QString folderPath = QString("%1\\%2").arg(templateImgFolderPath).arg(typeNo);
+ QString str;
+ if (getTemplateImgFileInfo(folderPath, templateObj))
+ {
+ str = QString("[%1]:Get TemplateImg OK!").arg(id);
+ qDebug() < vecMatchSroreMax;
+ QVector vecMatchRltsMax;
+ QList keys = templateObj.uniqueKeys();
+ int templateLevelCount = keys.length();
+ str = QString("[%1]:templateLevelCount =%2").arg(id).arg(templateLevelCount);
+ qDebug() << str;
+
+ // ±éÀú²»Í¬Ä£°å¼¶±ð
+ for each (int level in keys)
+ {
+ QVector vecMatchSrore;
+ QVector vecMatchRlts;
+ resultsMap.insert(level, nullptr);
+ QMap strScoreMap = templateObj.value(level);
+ for (QMap::iterator it = strScoreMap.begin(); it != strScoreMap.end(); ++it)
+ {
+ QString templateImgPath = it.key();
+ ILImagePtr ilTemplatePtr(__uuidof(LImage));
+ ilTemplatePtr->Load(templateImgPath.toStdString().c_str());
+ if (ilTemplatePtr->Void())
+ {
+ QString outStr = templateImgPath + " is empty!";
+ qDebug() << outStr;
+ continue;
+ }
+
+ m_ilmatch->Learn(ilTemplatePtr, nullptr);
+ ILImagePtr img(__uuidof(LImage));
+ ILImagePtr tempImage(__uuidof(LImage));
+ //ÓÉÓÚÈç¹û½Ç¶È¿ªµ½¡À180£¬²¿·ÖÆ¥Åäʱ¼ä¹ý³¤£¬¹Ê¶øÓÃÁ½´ÎÄ£°åÆ¥Å䣬·Ö±ðÆ¥ÅäÄ£°åºÍÄ£°åÐýת180¶ÈÇé¿ö
+ ILImageArithmPtr imgArithmF(__uuidof(LImageArithm));
+ imgArithmF->Flip(ilTemplatePtr, LPVFlipType::LPVFlipH, tempImage);
+ imgArithmF->Flip(tempImage, LPVFlipType::LPVFlipV, tempImage);
+ m_ilmatchF->Learn(tempImage, nullptr);
+
+ ILMatchResultsPtr matchResults, matchResultsF;
+
+ ILRotRectRegionPtr rectRoi(__uuidof(LRotRectRegion));
+ if (level == 1) // ´óÄ£°å
+ {
+ ILImageArithmPtr imgArithm(__uuidof(LImageArithm));
+ imgArithm->Resize(ilImgPtr, 0.5, 0.5, LPVInterNearest, img);
+ rectRoi->SetPlacement(800, 500, 500, 1250, 600);
+ }
+ else {
+
+ rectRoi->SetPlacement(1600, 1000, 2500, 1200, 0);
+ }
+ qInfo() << "setrectRoi end";
+ LPVErrorCode err = m_ilmatch->Match((level == 1 ? img : ilImgPtr), rectRoi, &matchResults);
+ LPVErrorCode errF = m_ilmatchF->Match((level == 1 ? img : ilImgPtr), rectRoi, &matchResultsF);
+ if (err < LPVErrorCode::LPVNoError || errF < LPVErrorCode::LPVNoError) {
+ str = QString("[%1]:Match Failed;templateImgPath = %2").arg(id).arg(templateImgPath);
+ qDebug() << str;
+ continue; // match failed
+ }
+
+ int objCount = matchResults->Count() + matchResultsF->Count();
+ if (objCount > 0)
+ {
+ double valueMaxScore = -1;
+ ILMatchResultPtr matchRltPtr;
+ int indexMaxScore = 0;
+ QVector matchSrore;
+
+ // Ä£°å·½ÏòµÄÆ¥Åä½á¹û¡ª¡ªÐýת180¶ÈÆ¥Åä½á¹û£¬×é³ÉÒ»¸öÍêÕûµÄÆ¥Åä½á¹ûÖµ
+ for (int i = 0; i < matchResults->Count(); i++)
+ {
+ matchSrore.push_back(matchResults->Item(i)->Score);
+ }
+ for (int i = 0; i < matchResultsF->Count(); i++)
+ {
+ matchSrore.push_back(matchResultsF->Item(i)->Score);
+ }
+
+ //Ñ¡ÔñÆÀ·Ö×î¸ßµÄÆ¥Åä½á¹û
+ auto maxPos = std::max_element(matchSrore.begin(), matchSrore.end());
+ valueMaxScore = *maxPos;
+ indexMaxScore = maxPos - matchSrore.begin();
+
+ vecMatchSrore.push_back(valueMaxScore);
+ if (indexMaxScore < matchResults->Count())
+ {
+ vecMatchRlts.push_back(matchResults->Item(indexMaxScore));
+ }
+ else
+ {
+ vecMatchRlts.push_back(matchResultsF->Item(indexMaxScore - matchResults->Count()));
+ }
+ }
+
+ }
+ if (vecMatchSrore.isEmpty())
+ {
+ str = QString("[%1]:Level: %1 match failed!").arg(id).arg(level);
+ qDebug() << str;
+ return false;
+ }
+ else
+ {
+ // Ñ¡Ôñ¸ÃÄ£°åµÈ¼¶ÏÂÆÀ·Ö×î¸ßµÄÆ¥Åä½á¹û
+ auto maxMatchScorePos = std::max_element(vecMatchSrore.begin(), vecMatchSrore.end());
+ auto maxIndex = maxMatchScorePos - vecMatchSrore.begin();
+ vecMatchSroreMax.push_back(*maxMatchScorePos);
+ //vecMatchRltsMax.push_back(vecMatchRlts.at(maxIndex));
+ resultsMap[level]=vecMatchRlts.at(maxIndex);
+ }
+ }
+ }
+ else
+ {
+ str = QString("[%1]:Find templateImage failed! Folder = %2").arg(id).arg(folderPath);
+ qDebug() << str;
+ return false;
+ }
+ return true;
+}
+
+bool CategoryMatcher::getTemplateImgFileInfo(const QString& folderPath, TemplateObject& templateObject)
+{
+ templateObject.clear();
+ QDir fileDir(folderPath);
+ if (!fileDir.exists())
+ {
+ qWarning() << folderPath << " is not exist";
+ return false;
+ }
+ for each(QFileInfo imgFileInfo in fileDir.entryInfoList(QDir::Filter::Files | QDir::NoDotAndDotDot))
+ {
+ QString fileName = imgFileInfo.fileName();
+
+ if (fileName.endsWith(".png") || fileName.endsWith(".PNG")
+ || fileName.endsWith(".BMP") || fileName.endsWith(".bmp")
+ || fileName.endsWith(".jpeg") || fileName.endsWith(".JPEG")
+ || fileName.endsWith(".jpg") || fileName.endsWith(".JPG"))
+ {
+ QStringList strList = imgFileInfo.baseName().split("-");
+
+ QString templateImgPath = imgFileInfo.filePath(); //Ïà¶Ô·¾¶£¬±ÜÃâ·¾¶´æÔÚÖÐÎÄʱ¶Áȡʧ°Ü
+ int level = strList.last().mid(0, 1).toInt();
+ templateObject[level].insert(templateImgPath, 70);
+
+
+
+ ////֮ǰµÄÄ£°å¸ñʽ£¬ÀýÈ磺templateImg/51520312/template_0101_65
+ //if (strList.first() == "template" && strList.length() == 3)
+ //{
+ // int scoreThresh = strList.last().toInt();
+ // QString templateImgPath = imgFileInfo.filePath(); //Ïà¶Ô·¾¶£¬±ÜÃâ·¾¶´æÔÚÖÐÎÄʱ¶Áȡʧ°Ü
+ // std::pair imgScorePair(templateImgPath, scoreThresh);
+ // QString serialNum = strList[1];
+ // if (serialNum.length() == 4)
+ // {
+ // int level = serialNum.mid(0, 2).toInt();
+ // templateObject[level].insert(templateImgPath, scoreThresh);
+ // }
+ //}
+ }
+ }
+ if (templateObject.isEmpty())
+ {
+ return false;
+ }
+ return true;
+}
+
+
+void CategoryMatcher::drawImage(ILImagePtr image, QMap resultsMap)
+{
+ if (image->Void())
+ {
+ return;
+ }
+
+ std::stringstream textStream("");
+ //ÔÚDisplayÉÏ»æÖÆÍ¼Ïñ+½á¹û
+ m_display->SetImage(image);
+ m_display->RemoveAllObjects();
+ QString tittleStr,rltStr;
+
+ bool bRlt = false;
+ for (auto iter = resultsMap.begin(); iter != resultsMap.end(); iter++)
+ {
+ ILMatchResultPtr matchRlt = iter.value();
+ if (matchRlt == nullptr)
+ {
+ continue;
+ }
+
+ bRlt = true;
+ double score = matchRlt->GetScore();
+ rltStr.append(QString("\n Level %1 score: %2").arg(iter.key()).arg(score));
+
+ if (iter.key() == 1)
+ {
+ ILRotRectRegionPtr m_rect(__uuidof(LRotRectRegion));
+ m_rect->SetPlacement(matchRlt->GetCenter()->X * 2, matchRlt->GetCenter()->Y * 2
+ , matchRlt->GetRect()->Width * 2, matchRlt->GetRect()->Height * 2, matchRlt->GetRect()->Angle);
+ m_textSys->SetPenWidth(m_rect, 3);
+ m_textSys->SetPenColor(m_rect, m_textSys->GetColorRef(0, 255, 0));
+ m_display->AddObject(m_rect, 0);
+ }
+ else
+ {
+ m_textSys->SetPenWidth(matchRlt, 3);
+ m_textSys->SetPenColor(matchRlt, m_textSys->GetColorRef(0, 255, 0));
+ m_display->AddObject(matchRlt, LPVPatDrawFlags::LPVPatDrawBoundingRect);
+ }
+
+ }
+ ILRotRectRegionPtr m_rect(__uuidof(LRotRectRegion));
+ m_rect->SetPlacement(1600, 1000, 2500, 1200, 0);
+ m_textSys->SetPenWidth(m_rect, 3);
+ m_textSys->SetPenColor(m_rect, m_textSys->GetColorRef(0, 255, 0));
+ m_display->AddObject(m_rect, 0);
+ if (bRlt)
+ {
+ m_textSys->SetFontColor(m_text, m_textSys->GetColorRef(0, 255, 0));
+ tittleStr = QString("Match successful! Total level Count: %1").arg(resultsMap.keys().length());
+ }
+ else
+ {
+ m_textSys->SetFontColor(m_text, m_textSys->GetColorRef(255, 0, 0));
+ tittleStr = QString("Match failed! Total level Count: %1").arg(resultsMap.keys().length());
+ }
+ textStream << tittleStr.toStdString();
+ textStream << rltStr.toStdString();
+ m_text->Text = textStream.str().c_str();
+ m_display->AddObject(m_text,0);
+}
+
+void CategoryMatcher::saveResultsImage(const QString& filePath)
+{
+ std::wstring str = filePath.toStdWString();
+ m_display->SaveSceneToFile(str.c_str(), 1, 1);
+}
+
+void CategoryMatcher::drawImage(const cv::Mat& imgMatSrc, cv::Mat& rltCvImg,
+ std::pair> templateLevelAndvecMatchRltPtr)
+{
+ if (imgMatSrc.empty()) {
+ return;
+ }
+ ensureColorBGRImg(imgMatSrc, rltCvImg);
+ int level = 1;
+ int templateLevel = templateLevelAndvecMatchRltPtr.first;
+ QVector vecMatchRltPtr = templateLevelAndvecMatchRltPtr.second;
+ QString rltStr;
+ cv::Scalar textColor(0, 255, 0);
+ if (!vecMatchRltPtr.isEmpty() && (vecMatchRltPtr.length() == templateLevel))
+ {
+ rltStr = QString("Match successful! Total level: %1").arg(templateLevel);
+ }
+ else
+ {
+ textColor = cv::Scalar(0, 0, 255);
+ rltStr = QString("Match failed! Total level: %1").arg(templateLevel);
+ }
+ int fontFace = cv::FONT_HERSHEY_DUPLEX;
+ double fontScale = 2.5;
+ int textThickness = 2;
+ int baseLine = 0;
+ int startX = 50;
+ int startY = 100;
+ cv::Size textSize = cv::getTextSize(rltStr.toStdString(), fontFace, fontScale, textThickness, &baseLine);
+ cv::putText(rltCvImg, rltStr.toStdString(), cv::Point(startX, startY),
+ fontFace, fontScale, textColor, textThickness);
+ rltStr.clear();
+ for each(ILMatchResultPtr matchRltPtr in vecMatchRltPtr)
+ {
+ double score = matchRltPtr->GetScore();
+ rltStr.append(QString(" Level %1 score: %2").arg(level++).arg(score));
+ ILRectPtr ilRectPtr = matchRltPtr->GetRect();
+ ILPointsPtr ilPointsPtr = ilRectPtr->GetPoints();
+ cv::Point2f vertices[4];
+ int count = ilPointsPtr->Count();
+ if (count != 4)
+ {
+ continue;
+ }
+ for (int i = 0; i < count; ++i)
+ {
+ ILPointPtr ilPointPtr = ilPointsPtr->Item(i);
+ vertices[i] = cv::Point2f(ilPointPtr->GetX(), ilPointPtr->GetY());
+ }
+ for (int i = 0; i < 4; ++i)
+ {
+ cv::line(rltCvImg, vertices[i], vertices[(i + 1) % 4], cv::Scalar(255, 0, 0), 8);
+ }
+ }
+ if (!rltStr.isEmpty())
+ {
+ cv::putText(rltCvImg, rltStr.toStdString(),
+ cv::Point(startX, startY + textSize.height + 20),
+ fontFace, fontScale, textColor, textThickness);
+ }
+}
+
+bool ensureGrayImg(const cv::Mat& img, cv::Mat& gray)
+{
+ if (img.channels() == 3)
+ {
+ if (img.depth() == CV_8U) {
+ cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);
+ }
+ else {
+ cv::Mat channels[3];
+ split(img, channels);
+ gray = channels[2] * 0.299 + channels[1] * 0.587 + channels[0] * 0.114;
+ }
+ return true;
+ }
+ else if (img.channels() == 4)
+ {
+ if (img.depth() == CV_8U) {
+ cvtColor(img, gray, cv::COLOR_BGRA2GRAY);
+ }
+ else {
+ cv::Mat channels[4];
+ cv::split(img, channels);
+ gray = channels[2] * 0.299 + channels[1] * 0.587 + channels[0] * 0.114;
+ }
+ return true;
+ }
+ else if (img.channels() == 1)
+ {
+ gray = img;
+ return false;
+ }
+ else
+ {
+ _ASSERTE(false && "unsupported image conversion.");
+ return false;
+ }
+}
+
+bool ensureColorBGRImg(const cv::Mat& img, cv::Mat& color)
+{
+ if (img.channels() == 3) {
+ color = img;
+ return false;
+ }
+ else if (img.channels() == 4) {
+ if (img.depth() == CV_8U) {
+ cvtColor(img, color, cv::COLOR_BGRA2BGR);
+ }
+ else {
+ static int from4_to3[] = { 0,0,1,1,2,2 };
+ if (color.cols != img.cols || color.rows != img.rows || color.type() != CV_MAKE_TYPE(img.depth(), 3))
+ color = cv::Mat(img.rows, img.cols, CV_MAKE_TYPE(img.depth(), 3));
+ mixChannels(img, color, from4_to3, 3);
+ }
+ return true;
+ }
+ else if (img.channels() == 1) {
+ if (img.depth() == CV_8U) {
+ cvtColor(img, color, cv::COLOR_GRAY2BGR);
+ }
+ else {
+ static int from1_to3[] = { 0,0,0,1,0,2 };
+ if (color.cols != img.cols || color.rows != img.rows || color.type() != CV_MAKE_TYPE(img.depth(), 3))
+ color = cv::Mat(img.rows, img.cols, CV_MAKE_TYPE(img.depth(), 3));
+ mixChannels(img, color, from1_to3, 3);
+ }
+ return true;
+ }
+ else {
+ _ASSERTE(false && "unsupported image conversion.");
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/tpvs17/lpSerial/lp_serial.qtvscr b/tpvs17/lpSerial/lp_serial.qtvscr
new file mode 100644
index 0000000..85701d7
--- /dev/null
+++ b/tpvs17/lpSerial/lp_serial.qtvscr
@@ -0,0 +1,1227 @@
+
+
+
+
+
+ Qt Visual Studio Tools
+
+
+ Project Format Conversion
+
+
+ Report generated on 2024-02-21 15:59:08
+
+
+
+
+ Files
+
+
+
+
+ [Before]
+ [After]
+
+ [Diff before/after]
+
+
+ [Diff before/current]
+
+
+ [Diff after/current]
+
+
+
+
+
+
+ [Before]
+ [After]
+
+ [Diff before/after]
+
+
+ [Diff before/current]
+
+
+ [Diff after/current]
+
+
+
+
+
+
+ Changes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>]]>
+
+
+
+
+ ]]>]]>
+
+
+
+
+
+
+
+
+
+ ]]>]]>
+
+
+
+
+ ]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Qt4VSv1.0]]>
+
+
+
+
+ QtVS_v304]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectDirectory)\QtMsBuild]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectDirectory)\QtMsBuild]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ $(ProjectName)d]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ $(ProjectName)d]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ msvc2017_qt-5.9.4-x64]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ msvc2017_qt-5.9.4-x64]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .;.\GeneratedFiles]]>]]>
+
+
+
+
+ .;.\GeneratedFiles]]>]]>
+
+
+
+
+
+
+
+
+
+ .;.\GeneratedFiles]]>]]>
+
+
+
+
+ .;.\GeneratedFiles]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ qtmaind.lib;Qt5Cored.lib;Qt5SerialPortd.lib;%]]>]]>
+
+
+
+
+ %]]>]]>
+
+
+
+
+
+
+
+
+
+ qtmain.lib;Qt5Core.lib;Qt5SerialPort.lib;%]]>]]>
+
+
+
+
+ %]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(QTDIR)\lib;%]]>]]>
+
+
+
+
+ %]]>]]>
+
+
+
+
+
+
+
+
+
+ $(QTDIR)\lib;%]]>]]>
+
+
+
+
+ %]]>]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ core;serialport]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ core;serialport]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]>
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ PATH=$(QTDIR)\bin%3b$(PATH)]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ C:\Qt\Qt5.9.4\5.9.4\msvc2017_64]]>
+
+
+
+
+
+
+
+
+
+ PATH=$(QTDIR)\bin%3b$(PATH)]]>
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ Dir and FileName]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)]]>
+
+
+
+
+
+
+
+
+
+ moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)]]>
+
+
+
+
+
+
+
+
+
+ moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;LP_SERIAL_LIB;%(PreprocessorDefinitions)]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
+ UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;LP_SERIAL_LIB;%(PreprocessorDefinitions)]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)]]>
+
+
+
+
+
+
+
+
+
+ .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp]]>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tpvs17/lpSerial/lp_serial.vcxproj b/tpvs17/lpSerial/lp_serial.vcxproj
index 88c4abe..b0b04e7 100644
--- a/tpvs17/lpSerial/lp_serial.vcxproj
+++ b/tpvs17/lpSerial/lp_serial.vcxproj
@@ -31,50 +31,56 @@
{10198138-A8F3-408B-9359-C33C121E7EC2}
- Qt4VSv1.0
+ QtVS_v304
10.0.17763.0
lpSerial
+ $(MSBuildProjectDirectory)\QtMsBuild
DynamicLibrary
- v142
+ v141
DynamicLibrary
v141
-
- $(MSBuildProjectDirectory)\QtMsBuild
-
-
- $(SolutionDir)$(Platform)\$(Configuration)\
- $(ProjectName)d
+
+
+ 5.9.4_msvc2017_64
+ core;serialport
-
- $(SolutionDir)$(Platform)\$(Configuration)\
+
+ msvc2017_qt-5.9.4-x64
+ core;serialport
-
+
-
-
-
+
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\
+ $(ProjectName)d
+
+
+ $(SolutionDir)$(Platform)\$(Configuration)\
+
true
UNICODE;_UNICODE;WIN32;WIN64;LP_SERIAL_LIB;%(PreprocessorDefinitions)
- .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)
+ .;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)
Disabled
ProgramDatabase
MultiThreadedDebugDLL
@@ -83,22 +89,21 @@
Windows
$(OutDir)\$(TargetName)$(TargetExt)
- $(QTDIR)\lib;%(AdditionalLibraryDirectories)
+ %(AdditionalLibraryDirectories)
true
- qtmaind.lib;Qt5Cored.lib;Qt5SerialPortd.lib;%(AdditionalDependencies)
+ %(AdditionalDependencies)
- UNICODE;_UNICODE;WIN32;WIN64;LP_SERIAL_LIB;%(PreprocessorDefinitions)
- .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)
- .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
Moc'ing %(Identity)...
+ .\GeneratedFiles\$(ConfigurationName)
+ moc_%(Filename).cpp
true
UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;LP_SERIAL_LIB;%(PreprocessorDefinitions)
- .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)
+ .;.\GeneratedFiles;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)
MultiThreadedDLL
true
@@ -106,26 +111,23 @@
Windows
$(OutDir)\$(TargetName)$(TargetExt)
- $(QTDIR)\lib;%(AdditionalLibraryDirectories)
+ %(AdditionalLibraryDirectories)
false
- qtmain.lib;Qt5Core.lib;Qt5SerialPort.lib;%(AdditionalDependencies)
+ %(AdditionalDependencies)
- UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;LP_SERIAL_LIB;%(PreprocessorDefinitions)
- .\GeneratedFiles;.;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtSerialPort;.\GeneratedFiles\$(ConfigurationName);$(SolutionDir)..\src\lpSerial;$(SolutionDir)..\src\lpSerial\include;%(AdditionalIncludeDirectories)
- .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp
Moc'ing %(Identity)...
+ .\GeneratedFiles\$(ConfigurationName)
+ moc_%(Filename).cpp
-
-
-
+
-
+
\ No newline at end of file
diff --git a/tpvs17/lpSerial/lp_serial.vcxproj.user b/tpvs17/lpSerial/lp_serial.vcxproj.user
index 3134de2..3bd3721 100644
--- a/tpvs17/lpSerial/lp_serial.vcxproj.user
+++ b/tpvs17/lpSerial/lp_serial.vcxproj.user
@@ -1,12 +1,12 @@

-
- C:\Qt\Qt5.9.4\5.9.4\msvc2017_64
- PATH=$(QTDIR)\bin%3b$(PATH)
+
+
+
+ 2024-02-21T09:24:05.3343044Z
-
- C:\Qt\Qt5.9.4\5.9.4\msvc2017_64
- PATH=$(QTDIR)\bin%3b$(PATH)
+
+ 2024-02-21T09:05:09.2440028Z
\ No newline at end of file
diff --git a/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj b/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj
index 5e5b675..d915ade 100644
--- a/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj
+++ b/tpvs17/numStatisticAlgo/numStatisticAlgo.vcxproj
@@ -20,7 +20,9 @@
-
+
+ D:\Qt\5.9.4\msvc2017_64\include;D:\Qt\5.9.4\msvc2017_64\include\QtCore;%(AdditionalIncludeDirectories)
+
@@ -51,7 +53,7 @@
StaticLibrary
true
- v142
+ v141
MultiByte
@@ -82,6 +84,7 @@
.lib
$(ProjectName)d
+ D:\Qt\5.9.4\msvc2017_64\include;$(IncludePath)
.lib