C3204
2025-12-24 cb61a204c29e9b14d0b3f4e677d8489fc40cba51
增加多流程JSON保存以及加载。
已修改60个文件
已添加4个文件
2023 ■■■■ 文件已修改
LB_SmartVision/Form1.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/CreateProductForm.Designer.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/CreateProductForm.resx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CommunicatorPage/CreateCommunicatorForm.Designer.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CommunicatorPage/CreateCommunicatorForm.resx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/MESPage/MESEditPage.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/ProcessPage/ProcessInputsSelectForm.Designer.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/ProcessPage/ProcessInputsSelectForm.resx 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/ProcessPage/ProcessOutputsSelectForm.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/ProcessPage/ProcessPage.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/SettingPage/CsvPage.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/SettingPage/CsvSettingControl.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/SettingPage/LayoutPage.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/SettingPage/LayoutSettingControl.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/SettingPage/RunSettingPage.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/SettingPage/SettingEditPage.Designer.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/VisionForm.Designer.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/VisionForm.cs 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ClassFileList.Designer.cs 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ClassFileList.resx 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ComplieUI.Designer.cs 262 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ComplieUI.resx 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ConsoleTextBox.resx 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ScriptEditControl.Designer.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/ScriptEditControl/ScriptEditForm.Designer.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/UserHSmartWindowControl.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControl/UserHSmartWindowControl.resx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/FlowNodeEditor.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/MainForm.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/MainForm.resx 272 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/BaseAlgorithm/TestTool/TestToolEdit.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/BaseAlgorithm/TestTool/TestToolEdit.resx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindModelTool/HFindModelToolEdit.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindModelTool/HFindModelToolEdit.resx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindMultiModelTool/HFindMultiModelToolEdit.Designer.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindMultiModelTool/HFindMultiModelToolEdit.resx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindMultiModelTool/HMulitModelControl.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Communicators/CommunicatorForm.Designer.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Communicators/CommunicatorForm.resx 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Communicators/MES/LBMES.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Communicators/SiemensS7/SiemensLBS7.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Forms/GlobalVarControl.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Forms/GlobalVarForm.Designer.cs 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/LB_VisionProcesses.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ProcessEditForm.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ProcessEditForm.resx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Processes/ScriptTool/ScriptToolEdit.Designer.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/MVSDKmd.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Form1.Designer.cs
@@ -71,8 +71,8 @@
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(800, 450);
            Controls.Add(materialTabControl1);
            Name = "Form1";
LB_SmartVision/Forms/CreateProductForm.Designer.cs
@@ -148,7 +148,8 @@
            // 
            // CreateProductForm
            // 
            AutoScaleMode = AutoScaleMode.None;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            ClientSize = new Size(507, 309);
            ControlBox = false;
LB_SmartVision/Forms/CreateProductForm.resx
@@ -121,7 +121,7 @@
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        wgAADsIBFShKgAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        wQAADsEBuJFr7QAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs
@@ -451,7 +451,8 @@
            // 
            // CameraForm
            // 
            AutoScaleMode = AutoScaleMode.None;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(900, 600);
            Controls.Add(themeForm1);
            FormBorderStyle = FormBorderStyle.None;
LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx
@@ -121,7 +121,7 @@
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        vgAADr4B6kKxwAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        vQAADr0BR/uQrQAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs
@@ -132,6 +132,8 @@
            // 
            // CamerasEditPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            Name = "CamerasEditPage";
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs
@@ -150,7 +150,7 @@
            controlBox1.EnableMaximizeButton = true;
            controlBox1.EnableMinimizeButton = true;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(405, 12);
            controlBox1.Location = new Point(407, 18);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
@@ -160,7 +160,8 @@
            // 
            // CreateCameraForm
            // 
            AutoScaleMode = AutoScaleMode.None;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(507, 309);
            ControlBox = false;
            Controls.Add(uiComboBoxSN);
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx
@@ -120,25 +120,25 @@
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPiSURBVFhH7VZLiBxlEG7d+IjBKKtktqt6d8kybLqqZyfi
        +lgUXcGooKIXxYBKLgZFQVDwgQhBvAVzUOPBi3iJgnoSCcTLKobEma7qHeOiuB7UiBo1PuIjq9HNSPX0
        rDN/zyzbQjztB9+pv3r8/19dVZ63ilUUwBzzmbppGOpRcKlEcLNwcGfMsE0J7ogj//okws2NamlD83Zv
        wLX9z2h63ulz7I8kDNsSxleF8CMl+EEY/lDCv5TxbyU8oQTHlfCIEL5kSbh+CqPpeafVIxgWwieUcU4I
        /lTGZl8SnEgI3pBxPzTbOQ4Gkyi4pxEGFTuE639ZpFfNcIsS1LJT5gN28xdl3Cnj/oVmP7t59Hwl3K0M
        C8owL4zbG9XSOjdOT5hQCB5Rxu97BMqT4BsJ4X6Z9M8x+483XXCuEO5KnyjTCOGvSvjMAQ4G3XhdODAV
        rBWGHUL4Wy5Qb34Sk3/rzLS3xuwtCSV8ShmOu1p7wpjwBRkbO8+Nm6LpeQMxwX3Suk43ULczxpPKKLOR
        f+WO7H1bz4YPpaftYdMiLMQET5rWje/FhJfHhF/kjXJcVIZ3tIJVKzazfc3zBpTwLmU82kPfRWH8Lg79
        67qC76uW1mkEr2Qnyxl1GC8K49uNEMbbtpZEjeBaXVnymR/Y2/UUNQqutn/bFTpcVMZ9ykF5ydDzvEMV
        P4wZtYe+L+2Z4hBvSh3YP6rs71zu9PZNGN7tPLnBqloIXl/Oth+F4MW0eO0qlPA9V9BFwtlZhos6g89M
        T69JGB/Xjt+tIDXtG41qaaMwftZDkBG+TAi2tAuuDaHhq4Thq7x+pYSvNRoiL54IJqwy84L05L8LwwPu
        cLFOJ4Rv5vQFKAQ/xRxc1jeB9F0J9rxfHlzfGdxQD2GrJefaFGI7gfrEyJgwfp4X4GEN/Uk3+H5rtQx7
        c/qCFIIjNSpFrcHBcLDro1U94a52i+1EHPoXC+VvrCiF4cNDlY2ltIsJwXOO4KiEOOUGN9jykc7/Hk4L
        kWDPUkuWKLhBGY79+xH32824wQ3WcsWWENdhAdqktG1qyakVWszw1pKI8GW7ma7IGbQydImNYNdpIRLU
        4nDE73JcJ9gihN9mCexuTzkX2dR7TAh+zDleAa0N1wnvdvuKJ5OTZ9j6JQwL1l57jswMM6OjZ8eEN0q6
        I8KnynjMVjKbF1lbPtlq3ykXW1tVuh39LITP992O5suD65XhWSH4QGlo1P3uYr5cPst0thckjLcp473K
        8LBYiyb/0YTwQdsLNYStlnASwRX9amsJaZcL8WkJcXu/OjjlODwVrI0jvOZgZUPJ/fa/wYrEnQGrOBX4
        B6XRFGacFF+7AAAAAElFTkSuQmCC
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        wgAADsIBFShKgAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
        NNs5DgaTKLinEQYVO4Trf1mkV81wixLUslPmA3bzF2XcKeP+hWY/u3n0fCXcrQwLyjAvjNsb1dI6N05P
        mFAIHlHG73sEypPgGwnhfpn0zzH7jzddcK4Q7kqfKNMI4a9K+MwBDgbdeF04MBWsFYYdQvhbLlBvfhKT
        f+vMtLfG7C0JJXxKGY67WnvCmPAFGRs7z42boul5AzHBfdK6TjdQtzPGk8oos5F/5Y7sfVvPhg+lp+1h
        0yIsxARPmtaN78WEl8eEX+SNclxUhne0glUrNrN9zfMGlPAuZTzaQ99FYfwuDv3ruoLvq5bWaQSvZCfL
        GXUYLwrj240Qxtu2lkSN4FpdWfKZH9jb9RQ1Cq62f9sVOlxUxn3KQXnJ0PO8QxU/jBm1h74v7ZniEG9K
        Hdg/quzvXO709k0Y3u08ucGqWgheX862H4XgxbR47SqU8D1X0EXC2VmGizqDz0xPr0kYH9eO360gNe0b
        jWppozB+1kOQEb5MCLa0C64NoeGrhOGrvH6lhK81GiIvnggmrDLzgvTkvwvDA+5wsU4nhG/m9AUoBD/F
        HFzWN4H0XQn2vF8eXN8Z3FAPYasl59oUYjuB+sTImDB+nhfgYQ39STf4fmu1DHtz+oIUgiM1KkWtwcFw
        sOujVT3hrnaL7UQc+hcL5W+sKIXhw0OVjaW0iwnBc47gqIQ45QY32PKRzv8eTguRYM9SS5YouEEZjv37
        EffbzbjBDdZyxZYQ12EB2qS0bWrJqRVazPDWkojwZbuZrsgZtDJ0iY1g12khEtTicMTvclwn2CKE32YJ
        7G5PORfZ1HtMCH7MOV4BrQ3XCe92+4onk5Nn2PolDAvWXnuOzAwzo6Nnx4Q3SrojwqfKeMxWMpsXWVs+
        2WrfKRdbW1W6Hf0shM/33Y7my4PrleFZIfhAaWjU/e5ivlw+y3S2FySMtynjvcrwsFiLJv/RhPBB2ws1
        hK2WcBLBFf1qawlplwvxaQlxe786OOU4PBWsjSO85mBlQ8n99r/BisSdAas4FfgHpdEUZpwUX7sAAAAA
        SUVORK5CYII=
</value>
  </data>
</root>
LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs
@@ -205,7 +205,8 @@
            // 
            // CommunicatorForm
            // 
            AutoScaleMode = AutoScaleMode.None;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(681, 401);
            Controls.Add(tableLayoutPanel1);
            Name = "CommunicatorForm";
LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorsEditPage.Designer.cs
@@ -132,6 +132,8 @@
            // 
            // CommunicatorsEditPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            ForeColor = SystemColors.Control;
LB_SmartVision/Forms/Pages/CommunicatorPage/CreateCommunicatorForm.Designer.cs
@@ -45,7 +45,7 @@
            // 
            // uiLabelIP
            // 
            uiLabelIP.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiLabelIP.Font = new Font("宋体", 12F);
            uiLabelIP.ForeColor = Color.FromArgb(48, 48, 48);
            uiLabelIP.Location = new Point(84, 111);
            uiLabelIP.Name = "uiLabelIP";
@@ -55,7 +55,7 @@
            // 
            // uiLabelPort
            // 
            uiLabelPort.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiLabelPort.Font = new Font("宋体", 12F);
            uiLabelPort.ForeColor = Color.FromArgb(48, 48, 48);
            uiLabelPort.Location = new Point(84, 177);
            uiLabelPort.Name = "uiLabelPort";
@@ -65,7 +65,7 @@
            // 
            // uiButtonCancel
            // 
            uiButtonCancel.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiButtonCancel.Font = new Font("宋体", 12F);
            uiButtonCancel.Location = new Point(343, 234);
            uiButtonCancel.MinimumSize = new Size(1, 1);
            uiButtonCancel.Name = "uiButtonCancel";
@@ -76,22 +76,18 @@
            // 
            // uiTextBoxPort
            // 
            uiTextBoxPort.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiTextBoxPort.Font = new Font("宋体", 12F);
            uiTextBoxPort.Location = new Point(191, 175);
            uiTextBoxPort.Margin = new Padding(4, 5, 4, 5);
            uiTextBoxPort.MinimumSize = new Size(1, 16);
            uiTextBoxPort.Name = "uiTextBoxPort";
            uiTextBoxPort.Padding = new Padding(5);
            //uiTextBoxPort.ShowText = false;
            uiTextBoxPort.Size = new Size(205, 29);
            uiTextBoxPort.Size = new Size(205, 26);
            uiTextBoxPort.TabIndex = 5;
            //uiTextBoxPort.TextAlignment = ContentAlignment.MiddleLeft;
            //uiTextBoxPort.Watermark = "";
            uiTextBoxPort.TextChanged += uiTextBoxPort_TextChanged;
            // 
            // rButtonUART
            // 
            rButtonUART.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            rButtonUART.Font = new Font("宋体", 12F);
            rButtonUART.Location = new Point(51, 12);
            rButtonUART.MinimumSize = new Size(1, 1);
            rButtonUART.Name = "rButtonUART";
@@ -102,7 +98,7 @@
            // 
            // rButtonTCPServer
            // 
            rButtonTCPServer.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            rButtonTCPServer.Font = new Font("宋体", 12F);
            rButtonTCPServer.Location = new Point(51, 47);
            rButtonTCPServer.MinimumSize = new Size(1, 1);
            rButtonTCPServer.Name = "rButtonTCPServer";
@@ -113,7 +109,7 @@
            // 
            // rButtonTCPClient
            // 
            rButtonTCPClient.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            rButtonTCPClient.Font = new Font("宋体", 12F);
            rButtonTCPClient.Location = new Point(293, 47);
            rButtonTCPClient.MinimumSize = new Size(1, 1);
            rButtonTCPClient.Name = "rButtonTCPClient";
@@ -125,7 +121,7 @@
            // uiButtonCreate
            // 
            uiButtonCreate.Enabled = false;
            uiButtonCreate.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiButtonCreate.Font = new Font("宋体", 12F);
            uiButtonCreate.Location = new Point(191, 234);
            uiButtonCreate.MinimumSize = new Size(1, 1);
            uiButtonCreate.Name = "uiButtonCreate";
@@ -136,7 +132,7 @@
            // 
            // uiButtonTest
            // 
            uiButtonTest.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiButtonTest.Font = new Font("宋体", 12F);
            uiButtonTest.Location = new Point(31, 234);
            uiButtonTest.MinimumSize = new Size(1, 1);
            uiButtonTest.Name = "uiButtonTest";
@@ -147,55 +143,39 @@
            // 
            // uiComboBoxPort
            // 
            uiComboBoxPort.DataSource = null;
            //uiComboBoxPort.FillColor = Color.White;
            uiComboBoxPort.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            //uiComboBoxPort.ItemHoverColor = Color.FromArgb(155, 200, 255);
            //uiComboBoxPort.ItemSelectForeColor = Color.FromArgb(235, 243, 255);
            uiComboBoxPort.Font = new Font("宋体", 12F);
            uiComboBoxPort.Location = new Point(191, 108);
            uiComboBoxPort.Margin = new Padding(4, 5, 4, 5);
            uiComboBoxPort.MinimumSize = new Size(63, 0);
            uiComboBoxPort.Name = "uiComboBoxPort";
            uiComboBoxPort.Padding = new Padding(0, 0, 30, 2);
            uiComboBoxPort.Size = new Size(205, 29);
            //uiComboBoxPort.SymbolSize = 24;
            uiComboBoxPort.Size = new Size(205, 24);
            uiComboBoxPort.TabIndex = 11;
            //uiComboBoxPort.TextAlignment = ContentAlignment.MiddleLeft;
            //uiComboBoxPort.Watermark = "";
            uiComboBoxPort.MouseClick += uiComboBoxPort_MouseClick;
            // 
            // uiIPTextBox
            // 
            //uiIPTextBox.FillColor2 = Color.FromArgb(235, 243, 255);
            uiIPTextBox.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiIPTextBox.Font = new Font("宋体", 12F);
            uiIPTextBox.Location = new Point(191, 108);
            uiIPTextBox.Margin = new Padding(4, 5, 4, 5);
            uiIPTextBox.MinimumSize = new Size(1, 1);
            uiIPTextBox.Name = "uiIPTextBox";
            uiIPTextBox.Padding = new Padding(1);
            //uiIPTextBox.ShowText = false;
            uiIPTextBox.Size = new Size(205, 29);
            uiIPTextBox.Size = new Size(205, 26);
            uiIPTextBox.TabIndex = 12;
            //uiIPTextBox.TextAlignment = ContentAlignment.MiddleCenter;
            uiIPTextBox.MouseClick += uiIPTextBox_MouseClick;
            // 
            // uiTextBoxPath
            // 
            uiTextBoxPath.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            uiTextBoxPath.Font = new Font("宋体", 12F);
            uiTextBoxPath.Location = new Point(191, 108);
            uiTextBoxPath.Margin = new Padding(4, 5, 4, 5);
            uiTextBoxPath.MinimumSize = new Size(1, 16);
            uiTextBoxPath.Name = "uiTextBoxPath";
            uiTextBoxPath.Padding = new Padding(5);
            //uiTextBoxPath.ShowText = false;
            uiTextBoxPath.Size = new Size(205, 29);
            uiTextBoxPath.Size = new Size(205, 26);
            uiTextBoxPath.TabIndex = 13;
            //uiTextBoxPath.TextAlignment = ContentAlignment.MiddleLeft;
            //uiTextBoxPath.Watermark = "";
            // 
            // rButtonMonitor
            // 
            rButtonMonitor.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point);
            rButtonMonitor.Font = new Font("宋体", 12F);
            rButtonMonitor.Location = new Point(293, 12);
            rButtonMonitor.MinimumSize = new Size(1, 1);
            rButtonMonitor.Name = "rButtonMonitor";
@@ -206,8 +186,8 @@
            // 
            // CreateCommunicatorForm
            // 
            //AllowShowTitle = false;
            AutoScaleMode = AutoScaleMode.None;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(484, 285);
            ControlBox = false;
            Controls.Add(rButtonMonitor);
@@ -226,11 +206,9 @@
            MaximizeBox = false;
            MinimizeBox = false;
            Name = "CreateCommunicatorForm";
            Padding = new Padding(0);
            //ShowTitle = false;
            Text = "创建通讯";
            //ZoomScaleRect = new Rectangle(15, 15, 800, 450);
            ResumeLayout(false);
            PerformLayout();
        }
        #endregion
LB_SmartVision/Forms/Pages/CommunicatorPage/CreateCommunicatorForm.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
LB_SmartVision/Forms/Pages/MESPage/MESEditPage.Designer.cs
@@ -131,6 +131,8 @@
            // 
            // MESEditPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            Name = "MESEditPage";
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs
@@ -130,6 +130,8 @@
            // 
            // MotionControlEditPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            ForeColor = SystemColors.Control;
LB_SmartVision/Forms/Pages/ProcessPage/ProcessInputsSelectForm.Designer.cs
@@ -30,21 +30,21 @@
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessInputsSelectForm));
            themeForm1 = new ReaLTaiizor.Forms.ThemeForm();
            panel = new Panel();
            controlBox1 = new ReaLTaiizor.Controls.ControlBox();
            panel = new ReaLTaiizor.Controls.Panel();
            themeForm1.SuspendLayout();
            SuspendLayout();
            // 
            // themeForm1
            // 
            themeForm1.BackColor = Color.FromArgb(32, 41, 50);
            themeForm1.Controls.Add(controlBox1);
            themeForm1.Controls.Add(panel);
            themeForm1.Controls.Add(controlBox1);
            themeForm1.Dock = DockStyle.Fill;
            themeForm1.Font = new Font("Microsoft Sans Serif", 9F);
            themeForm1.Image = (Image)resources.GetObject("themeForm1.Image");
            themeForm1.Location = new Point(0, 0);
            themeForm1.Name = "theme_ProcessInputsSelectForm";
            themeForm1.Name = "themeForm1";
            themeForm1.Padding = new Padding(10, 70, 10, 9);
            themeForm1.RoundCorners = true;
            themeForm1.Sizable = true;
@@ -53,6 +53,17 @@
            themeForm1.StartPosition = FormStartPosition.WindowsDefaultLocation;
            themeForm1.TabIndex = 2;
            themeForm1.Text = "ProcessInputsSelectForm";
            //
            // panel
            //
            panel.AutoScroll = true;
            panel.Dock = DockStyle.Fill;
            panel.ForeColor = SystemColors.Control;
            panel.Location = new Point(10, 70);
            panel.Name = "panel";
            panel.Size = new Size(887, 405);
            panel.TabIndex = 2;
            panel.SizeChanged += panel_SizeChanged;
            // 
            // controlBox1
            // 
@@ -72,23 +83,10 @@
            controlBox1.TabIndex = 1;
            controlBox1.Text = "controlBox1";
            // 
            // panel
            //
            panel.BackColor = Color.FromArgb(39, 51, 63);
            panel.Dock = DockStyle.Fill;
            panel.EdgeColor = Color.FromArgb(32, 41, 50);
            panel.Location = new Point(10, 70);
            panel.Name = "panel";
            panel.Padding = new Padding(5);
            panel.Size = new Size(887, 405);
            panel.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            panel.TabIndex = 0;
            panel.Text = "panel1";
            //
            // ProcessInputsSelectForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(907, 484);
            Controls.Add(themeForm1);
            FormBorderStyle = FormBorderStyle.None;
@@ -104,7 +102,7 @@
        #endregion
        private Button uiButtonOK;
        private ReaLTaiizor.Forms.ThemeForm themeForm1;
        private ReaLTaiizor.Controls.Panel panel;
        private ReaLTaiizor.Controls.ControlBox controlBox1;
        private Panel panel;
    }
}
LB_SmartVision/Forms/Pages/ProcessPage/ProcessInputsSelectForm.resx
@@ -120,167 +120,25 @@
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACO
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACO
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACO
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LR9+/fOfSPvHP/tm2nf+/Ftpv/ypj6d9Me6f/+Lbaf/xN3+Y9pXPfZS2AThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMasuHL33m+9P8pJYvf7btu//z33PoS5/5KM2LaPnVT388bQNwzKS2
        mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEt
        JrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaY
        pHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0m
        tWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpik
        ecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1
        ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5
        yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVl
        A3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJ
        pLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUD
        cMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmk
        tngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNw
        zKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2
        eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DM
        pLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4
        ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyk
        tpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngR
        LSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2
        mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa15cM3fuHH0n77lz6T9rWf
        /VTaVz73ibRf++xHaV//uU+nffVnfngObQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuA
        Yya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9pi
        UltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdM
        aotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2
        mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQW
        k9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ
        89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1
        xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikual
        DcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJ
        bTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuA
        Yya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9pi
        UltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdM
        aotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2
        mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQW
        k9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ
        89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1
        xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikual
        DcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJ
        bTGpLSZpXvp/N+2H12uZAHMAAAAASUVORK5CYII=
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        wgAADsIBFShKgAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
        NNs5DgaTKLinEQYVO4Trf1mkV81wixLUslPmA3bzF2XcKeP+hWY/u3n0fCXcrQwLyjAvjNsb1dI6N05P
        mFAIHlHG73sEypPgGwnhfpn0zzH7jzddcK4Q7kqfKNMI4a9K+MwBDgbdeF04MBWsFYYdQvhbLlBvfhKT
        f+vMtLfG7C0JJXxKGY67WnvCmPAFGRs7z42boul5AzHBfdK6TjdQtzPGk8oos5F/5Y7sfVvPhg+lp+1h
        0yIsxARPmtaN78WEl8eEX+SNclxUhne0glUrNrN9zfMGlPAuZTzaQ99FYfwuDv3ruoLvq5bWaQSvZCfL
        GXUYLwrj240Qxtu2lkSN4FpdWfKZH9jb9RQ1Cq62f9sVOlxUxn3KQXnJ0PO8QxU/jBm1h74v7ZniEG9K
        Hdg/quzvXO709k0Y3u08ucGqWgheX862H4XgxbR47SqU8D1X0EXC2VmGizqDz0xPr0kYH9eO360gNe0b
        jWppozB+1kOQEb5MCLa0C64NoeGrhOGrvH6lhK81GiIvnggmrDLzgvTkvwvDA+5wsU4nhG/m9AUoBD/F
        HFzWN4H0XQn2vF8eXN8Z3FAPYasl59oUYjuB+sTImDB+nhfgYQ39STf4fmu1DHtz+oIUgiM1KkWtwcFw
        sOujVT3hrnaL7UQc+hcL5W+sKIXhw0OVjaW0iwnBc47gqIQ45QY32PKRzv8eTguRYM9SS5YouEEZjv37
        EffbzbjBDdZyxZYQ12EB2qS0bWrJqRVazPDWkojwZbuZrsgZtDJ0iY1g12khEtTicMTvclwn2CKE32YJ
        7G5PORfZ1HtMCH7MOV4BrQ3XCe92+4onk5Nn2PolDAvWXnuOzAwzo6Nnx4Q3SrojwqfKeMxWMpsXWVs+
        2WrfKRdbW1W6Hf0shM/33Y7my4PrleFZIfhAaWjU/e5ivlw+y3S2FySMtynjvcrwsFiLJv/RhPBB2ws1
        hK2WcBLBFf1qawlplwvxaQlxe786OOU4PBWsjSO85mBlQ8n99r/BisSdAas4FfgHpdEUZpwUX7sAAAAA
        SUVORK5CYII=
</value>
  </data>
</root>
LB_SmartVision/Forms/Pages/ProcessPage/ProcessOutputsSelectForm.Designer.cs
@@ -109,8 +109,8 @@
            // 
            // ProcessOutputsSelectForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(39, 51, 63);
            ClientSize = new Size(679, 496);
            Controls.Add(tableLayoutPanel1);
LB_SmartVision/Forms/Pages/ProcessPage/ProcessPage.Designer.cs
@@ -125,6 +125,8 @@
            // 
            // ProcessPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(splitContainer1);
            Name = "ProcessPage";
LB_SmartVision/Forms/Pages/SettingPage/CsvPage.Designer.cs
@@ -209,8 +209,8 @@
            // 
            // CsvPage
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(tableLayoutPanel1);
            Name = "CsvPage";
            Size = new Size(772, 535);
LB_SmartVision/Forms/Pages/SettingPage/CsvSettingControl.Designer.cs
@@ -101,8 +101,8 @@
            // 
            // CsvSettingControl
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(tableLayoutPanel1);
            Name = "CsvSettingControl";
            Size = new Size(807, 30);
LB_SmartVision/Forms/Pages/SettingPage/LayoutPage.Designer.cs
@@ -304,8 +304,8 @@
            // 
            // LayoutPage
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(tableLayoutPanel1);
            Name = "LayoutPage";
            Size = new Size(772, 535);
LB_SmartVision/Forms/Pages/SettingPage/LayoutSettingControl.Designer.cs
@@ -147,8 +147,8 @@
            // 
            // LayoutSettingControl
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(tableLayoutPanel1);
            Name = "LayoutSettingControl";
            Size = new Size(807, 30);
LB_SmartVision/Forms/Pages/SettingPage/RunSettingPage.Designer.cs
@@ -283,8 +283,8 @@
            // 
            // RunSettingPage
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(splitContainer);
            Margin = new Padding(2);
            Name = "RunSettingPage";
LB_SmartVision/Forms/Pages/SettingPage/SettingEditPage.Designer.cs
@@ -299,34 +299,36 @@
            // pageSetting
            // 
            pageSetting.BackColor = Color.FromArgb(32, 41, 50);
            pageSetting.Location = new Point(4, 38);
            pageSetting.Location = new Point(4, 36);
            pageSetting.Name = "pageSetting";
            pageSetting.Padding = new Padding(3);
            pageSetting.Size = new Size(858, 538);
            pageSetting.Size = new Size(858, 540);
            pageSetting.TabIndex = 1;
            pageSetting.Text = "运行设置";
            // 
            // pageLayout
            // 
            pageLayout.BackColor = Color.FromArgb(32, 41, 50);
            pageLayout.Location = new Point(4, 38);
            pageLayout.Location = new Point(4, 36);
            pageLayout.Name = "pageLayout";
            pageLayout.Size = new Size(858, 538);
            pageLayout.Size = new Size(858, 540);
            pageLayout.TabIndex = 2;
            pageLayout.Text = "流程布局";
            // 
            // pageCsv
            // 
            pageCsv.BackColor = Color.FromArgb(32, 41, 50);
            pageCsv.Location = new Point(4, 38);
            pageCsv.Location = new Point(4, 36);
            pageCsv.Name = "pageCsv";
            pageCsv.Padding = new Padding(3);
            pageCsv.Size = new Size(858, 538);
            pageCsv.Size = new Size(858, 540);
            pageCsv.TabIndex = 3;
            pageCsv.Text = "流程表格";
            // 
            // SettingEditPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(poisonTabControl1);
            Name = "SettingEditPage";
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs
@@ -130,6 +130,8 @@
            // 
            // UserManagementEditPage
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            ForeColor = SystemColors.Control;
LB_SmartVision/VisionForm.Designer.cs
@@ -333,6 +333,7 @@
            Name = "VisionForm";
            Text = "轮胎外观视觉检测系统";
            TransparencyKey = Color.Fuchsia;
            FormClosing += VisionForm_FormClosing;
            Load += VisionForm_Load;
            theme_VisionForm.ResumeLayout(false);
            sc_VisionForm.Panel1.ResumeLayout(false);
LB_SmartVision/VisionForm.cs
@@ -519,71 +519,97 @@
            }
            LB_SmartVision.Tool.Tool.ReadStringConfig("User ID", out string User_ID);
            LB_SmartVision.Tool.Tool.ReadStringConfig("Password", out string Password);
            GlobalVar.strProductName = DateBaseName;
            //加载通讯
            foreach (BaseCommunicator com in GlobalVar.dicCommunicators.Values)
            {
                com.Disconnect();
            }
            GlobalVar.dicCommunicators.Clear();
            if (LoadAllCommunicators(GlobalVar.allCommunicatorsConnectionStringPath))
            {
                LogInfo("通讯加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("通讯加载失败", LogInfoType.ERROR);
            }
            //加载相机
            foreach (BaseCamera camera in GlobalVar.dicCameras.Values)
            {
                camera.Dispose();
            }
            GlobalVar.dicCameras.Clear();
            if (LoadAllCameras(GlobalVar.allCamerasConnectionStringPath))
            {
                LogInfo("相机加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("相机加载失败", LogInfoType.ERROR);
            //必须先加载相机和通讯端口,因为流程加载过程中会用到相机和通讯口
            }
            //加载全局变量
            IProcess.dicGlobalVars.Clear();
            if (LoadAllProcessVars(GlobalVar.allProcessVarsPath))
            {
                LogInfo("全局变量加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("全局变量加载失败", LogInfoType.ERROR);
            }
            //加载流程
            GlobalVar.dicProcesses.Clear();
            if (LoadAllProcess(GlobalVar.allProcessConnectionStringPath))
            {
                LogInfo("流程加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("流程加载失败", LogInfoType.ERROR);
            }
            //加载触发设置
            if (LoadAllProcessSetting(GlobalVar.allProcessSettingStringPath))
            {
                LogInfo("流程设置加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("流程设置加载失败", LogInfoType.ERROR);
            }
            //加载流程布局
            GlobalVar.dicLayout.Clear();
            if (LoadAllLayout(GlobalVar.allLayoutPath))
            {
                LogInfo("流程布局加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("流程布局加载失败", LogInfoType.ERROR);
            }
            //加载流程表格
            GlobalVar.dicCsvSetting.Clear();
            if (LoadAllCsv(GlobalVar.allCsvPath))
            {
                LogInfo("流程表格加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("流程表格加载失败", LogInfoType.ERROR);
            }
            //显示所有产品
            com_ProductName.Items.Clear();
            LB_SmartVision.Tool.Tool.ReadStringConfig("产品列表", out string Products);
            List<string> lstProduct = (Products.Split(',')).ToList();
            foreach (string DatabaseName in lstProduct)
            {
                com_ProductName.Items.Add(DatabaseName);
            }
            com_ProductName.Items.Add("新增");
            com_ProductName.Text = GlobalVar.strProductName;
        }
@@ -614,7 +640,6 @@
                strJson = streamReader.ReadToEnd();
                streamReader.Close();
            }
            GlobalVar.allCamerasConnectionString = JsonConvert.DeserializeObject<ConcurrentDictionary<string, string>>(strJson);
            if (GlobalVar.allCamerasConnectionString == null)
            {
@@ -628,16 +653,21 @@
                switch (brand)
                {
                    case CameraBrand.HRCamera:
                        camera = new HRCamera();
                        break;
                        {
                            camera = new HRCamera();
                            break;
                        }
                    case CameraBrand.LBCamera:
                        //camera = new LBCamera();
                        break;
                        {
                            //camera = new LBCamera();
                            break;
                        }
                    default:
                        MessageBox.Show($"[{CameraConnectionString.Key}]品牌不支持!", "异常");
                        continue;
                        {
                            MessageBox.Show($"[{CameraConnectionString.Key}]品牌不支持!", "异常");
                            continue;
                        }
                }
                camera.SN = CameraConnectionString.Key;
                if (!camera.InitDevice(CameraConnectionString.Key, this.Handle))
                {
@@ -665,8 +695,9 @@
                    string CameraBrand = item.Value.Brand.ToString();//"1111"
                    if (string.IsNullOrEmpty(CameraSN) || string.IsNullOrEmpty(CameraBrand))
                    {
                        break;
                    }
                    GlobalVar.allCamerasConnectionString.TryAdd(CameraSN, CameraBrand);
                }
                var settings = new JsonSerializerSettings
@@ -776,9 +807,13 @@
                        Communicator.CommunicatorConnections.Add("端口", PORT);
                        Communicator.CommunicatorName = CommunicatorName;
                        if (!Communicator.Connect())
                        {
                            LogInfo($"初始化通讯口[{CommunicatorName}]失败,原因是{Communicator.Msg}", LogInfoType.ERROR);
                        }
                        else
                        {
                            LogInfo($"初始化通讯口[{CommunicatorName}]成功", LogInfoType.PASS);
                        }
                        GlobalVar.dicCommunicators.TryAdd(CommunicatorName, Communicator);
                    }
                    else
@@ -810,7 +845,9 @@
                        string PORT = match.Groups[3].Value;        // "1111"
                        if (string.IsNullOrEmpty(ClassName) || string.IsNullOrEmpty(IP) || string.IsNullOrEmpty(PORT))
                        {
                            break;
                        }
                        //利用反射创建实例
                        Type type = IProcess.GetExecutingAssembly().GetType(ClassName);
@@ -831,10 +868,13 @@
                        Communicator.CommunicatorConnections.Add("端口", PORT);
                        Communicator.CommunicatorName = CommunicatorName;
                        if (!Communicator.Connect())
                        {
                            LogInfo($"初始化通讯口[{CommunicatorName}]失败,原因是{Communicator.Msg}", LogInfoType.ERROR);
                        }
                        else
                        {
                            LogInfo($"初始化通讯口[{CommunicatorName}]成功", LogInfoType.PASS);
                        }
                        GlobalVar.dicCommunicators.TryAdd(CommunicatorName, Communicator);
                    }
                    else
@@ -863,12 +903,12 @@
                    string PORT = item.Value.CommunicatorConnections["端口"].ToString();//"1111"
                    if (string.IsNullOrEmpty(ClassName) || string.IsNullOrEmpty(IP) || string.IsNullOrEmpty(PORT))
                    {
                        break;
                    }
                    string CommunicatorConnectionString = $"({ClassName})[{IP}][{PORT}]";
                    GlobalVar.allCommunicatorsConnectionString.TryAdd(item.Key, CommunicatorConnectionString);
                }
                var settings = new JsonSerializerSettings
                {
                    Formatting = Formatting.Indented,
@@ -919,17 +959,19 @@
                List<string> lstProcessName = JsonConvert.DeserializeObject<List<string>>(strJson);
                if (lstProcessName == null)
                {
                    return false;
                }
                // ä½¿ç”¨æ–¹å¼
                var sortedKeys = lstProcessName
                    .OrderBy(k => k, new NaturalStringComparer())
                    .ToList();
                GlobalVar.dicProcesses.Clear();
                foreach (var ProcessName in sortedKeys)
                {
                    GlobalVar.dicProcesses.TryAdd(ProcessName
                        , new ProcessRunBll(ProcessName, GlobalVar.dicCameras, GlobalVar.dicCommunicators));
                }
                return true;
            }
            catch { return false; }
@@ -966,7 +1008,9 @@
                foreach (var process in GlobalVar.dicProcesses.Values)
                {
                    if (!process.Save(out string msg))
                    {
                        LogInfo($"流程[{process.Name}]保存失败,原因:{msg}", LogInfoType.NOSHOW);
                    }
                }
                try
@@ -1440,6 +1484,27 @@
                }
            });
        }
        private void VisionForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            SaveAllSetting();
            if (MessageBox.Show("是否关闭软件?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK)//
            {
                e.Cancel = true;
                return;
            }
            //关闭窗体释放资源
            AsyncLogHelper.Dispose();
            foreach (BaseCamera camera in GlobalVar.dicCameras.Values)
            {
                camera.Dispose();
            }
            foreach (BaseCommunicator communicator in GlobalVar.dicCommunicators.Values)
            {
                communicator.Disconnect();
            }
            FormClosing -= VisionForm_FormClosing;
        }
    }
}
LB_VisionControl/ScriptEditControl/ClassFileList.Designer.cs
@@ -28,53 +28,53 @@
        /// </summary>
        private void InitializeComponent()
        {
            this.listBox1 = new System.Windows.Forms.ListBox();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            listBox1 = new ListBox();
            textBox1 = new TextBox();
            SuspendLayout();
            // 
            // listBox1
            // 
            this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.listBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(17)))), ((int)(((byte)(18)))));
            this.listBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
            this.listBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.listBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
            this.listBox1.FormattingEnabled = true;
            this.listBox1.ItemHeight = 17;
            this.listBox1.Location = new System.Drawing.Point(0, 14);
            this.listBox1.Name = "listBox1";
            this.listBox1.Size = new System.Drawing.Size(483, 85);
            this.listBox1.TabIndex = 0;
            this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);
            this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
            listBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            listBox1.BackColor = Color.FromArgb(30, 17, 18);
            listBox1.BorderStyle = BorderStyle.None;
            listBox1.Font = new Font("微软雅黑", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
            listBox1.ForeColor = Color.FromArgb(255, 255, 128);
            listBox1.FormattingEnabled = true;
            listBox1.ItemHeight = 17;
            listBox1.Location = new Point(0, 20);
            listBox1.Margin = new Padding(4, 4, 4, 4);
            listBox1.Name = "listBox1";
            listBox1.Size = new Size(564, 119);
            listBox1.TabIndex = 0;
            listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged;
            listBox1.DoubleClick += listBox1_DoubleClick;
            // 
            // textBox1
            // 
            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(17)))), ((int)(((byte)(18)))));
            this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.textBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.textBox1.ForeColor = System.Drawing.Color.Green;
            this.textBox1.Location = new System.Drawing.Point(0, 100);
            this.textBox1.Multiline = true;
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(483, 105);
            this.textBox1.TabIndex = 1;
            this.textBox1.Text = "文件系统";
            textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            textBox1.BackColor = Color.FromArgb(30, 17, 18);
            textBox1.BorderStyle = BorderStyle.FixedSingle;
            textBox1.Font = new Font("微软雅黑", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
            textBox1.ForeColor = Color.Green;
            textBox1.Location = new Point(0, 142);
            textBox1.Margin = new Padding(4, 4, 4, 4);
            textBox1.Multiline = true;
            textBox1.Name = "textBox1";
            textBox1.Size = new Size(563, 148);
            textBox1.TabIndex = 1;
            textBox1.Text = "文件系统";
            // 
            // ClassFileList
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.listBox1);
            this.Name = "ClassFileList";
            this.Size = new System.Drawing.Size(483, 208);
            this.ResumeLayout(false);
            this.PerformLayout();
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(textBox1);
            Controls.Add(listBox1);
            Margin = new Padding(4, 4, 4, 4);
            Name = "ClassFileList";
            Size = new Size(564, 295);
            ResumeLayout(false);
            PerformLayout();
        }
LB_VisionControl/ScriptEditControl/ClassFileList.resx
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
@@ -26,36 +26,36 @@
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
@@ -117,13 +117,13 @@
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="listBox1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="listBox1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="textBox1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="textBox1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
</root>
LB_VisionControl/ScriptEditControl/ComplieUI.Designer.cs
@@ -28,174 +28,178 @@
        /// </summary>
        private void InitializeComponent()
        {
            this.btnCsc = new System.Windows.Forms.Button();
            this.chkCmd = new System.Windows.Forms.CheckBox();
            this.radDll = new System.Windows.Forms.RadioButton();
            this.radWinexe = new System.Windows.Forms.RadioButton();
            this.radExe = new System.Windows.Forms.RadioButton();
            this.txtArgs = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.txtOutput = new System.Windows.Forms.TextBox();
            this.contextMenuStripEx1 = new ContextMenuStripEx();
            this.复制ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
            this.清除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.contextMenuStripEx1.SuspendLayout();
            this.SuspendLayout();
            btnCsc = new Button();
            chkCmd = new CheckBox();
            radDll = new RadioButton();
            radWinexe = new RadioButton();
            radExe = new RadioButton();
            txtArgs = new TextBox();
            label2 = new Label();
            txtOutput = new TextBox();
            contextMenuStripEx1 = new ContextMenuStripEx();
            å¤åˆ¶ToolStripMenuItem = new ToolStripMenuItem();
            toolStripMenuItem1 = new ToolStripSeparator();
            æ¸…除ToolStripMenuItem = new ToolStripMenuItem();
            contextMenuStripEx1.SuspendLayout();
            SuspendLayout();
            // 
            // btnCsc
            // 
            this.btnCsc.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
            this.btnCsc.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.btnCsc.ForeColor = System.Drawing.Color.White;
            this.btnCsc.Location = new System.Drawing.Point(356, 3);
            this.btnCsc.Name = "btnCsc";
            this.btnCsc.Size = new System.Drawing.Size(44, 23);
            this.btnCsc.TabIndex = 16;
            this.btnCsc.Text = "CSC";
            this.btnCsc.UseVisualStyleBackColor = true;
            this.btnCsc.Click += new System.EventHandler(this.btnCsc_Click);
            btnCsc.FlatStyle = FlatStyle.Flat;
            btnCsc.Font = new Font("微软雅黑", 9F, FontStyle.Bold, GraphicsUnit.Point, 134);
            btnCsc.ForeColor = Color.White;
            btnCsc.Location = new Point(415, 4);
            btnCsc.Margin = new Padding(4, 4, 4, 4);
            btnCsc.Name = "btnCsc";
            btnCsc.Size = new Size(51, 33);
            btnCsc.TabIndex = 16;
            btnCsc.Text = "CSC";
            btnCsc.UseVisualStyleBackColor = true;
            btnCsc.Click += btnCsc_Click;
            // 
            // chkCmd
            // 
            this.chkCmd.AutoSize = true;
            this.chkCmd.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.chkCmd.ForeColor = System.Drawing.Color.White;
            this.chkCmd.Location = new System.Drawing.Point(304, 6);
            this.chkCmd.Name = "chkCmd";
            this.chkCmd.Size = new System.Drawing.Size(57, 21);
            this.chkCmd.TabIndex = 13;
            this.chkCmd.Text = "CMD";
            this.chkCmd.UseVisualStyleBackColor = true;
            chkCmd.AutoSize = true;
            chkCmd.Font = new Font("微软雅黑", 9F, FontStyle.Bold, GraphicsUnit.Point, 134);
            chkCmd.ForeColor = Color.White;
            chkCmd.Location = new Point(355, 8);
            chkCmd.Margin = new Padding(4, 4, 4, 4);
            chkCmd.Name = "chkCmd";
            chkCmd.Size = new Size(57, 21);
            chkCmd.TabIndex = 13;
            chkCmd.Text = "CMD";
            chkCmd.UseVisualStyleBackColor = true;
            // 
            // radDll
            // 
            this.radDll.AutoSize = true;
            this.radDll.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.radDll.ForeColor = System.Drawing.Color.White;
            this.radDll.Location = new System.Drawing.Point(256, 5);
            this.radDll.Name = "radDll";
            this.radDll.Size = new System.Drawing.Size(42, 21);
            this.radDll.TabIndex = 12;
            this.radDll.Text = "dll";
            this.radDll.UseVisualStyleBackColor = true;
            radDll.AutoSize = true;
            radDll.Font = new Font("微软雅黑", 9F, FontStyle.Bold, GraphicsUnit.Point, 134);
            radDll.ForeColor = Color.White;
            radDll.Location = new Point(299, 7);
            radDll.Margin = new Padding(4, 4, 4, 4);
            radDll.Name = "radDll";
            radDll.Size = new Size(42, 21);
            radDll.TabIndex = 12;
            radDll.Text = "dll";
            radDll.UseVisualStyleBackColor = true;
            // 
            // radWinexe
            // 
            this.radWinexe.AutoSize = true;
            this.radWinexe.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.radWinexe.ForeColor = System.Drawing.Color.White;
            this.radWinexe.Location = new System.Drawing.Point(185, 5);
            this.radWinexe.Name = "radWinexe";
            this.radWinexe.Size = new System.Drawing.Size(69, 21);
            this.radWinexe.TabIndex = 10;
            this.radWinexe.Text = "winexe";
            this.radWinexe.UseVisualStyleBackColor = true;
            radWinexe.AutoSize = true;
            radWinexe.Font = new Font("微软雅黑", 9F, FontStyle.Bold, GraphicsUnit.Point, 134);
            radWinexe.ForeColor = Color.White;
            radWinexe.Location = new Point(216, 7);
            radWinexe.Margin = new Padding(4, 4, 4, 4);
            radWinexe.Name = "radWinexe";
            radWinexe.Size = new Size(69, 21);
            radWinexe.TabIndex = 10;
            radWinexe.Text = "winexe";
            radWinexe.UseVisualStyleBackColor = true;
            // 
            // radExe
            // 
            this.radExe.AutoSize = true;
            this.radExe.BackColor = System.Drawing.Color.Transparent;
            this.radExe.Checked = true;
            this.radExe.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.radExe.ForeColor = System.Drawing.Color.White;
            this.radExe.Location = new System.Drawing.Point(137, 5);
            this.radExe.Name = "radExe";
            this.radExe.Size = new System.Drawing.Size(47, 21);
            this.radExe.TabIndex = 11;
            this.radExe.TabStop = true;
            this.radExe.Text = "exe";
            this.radExe.UseVisualStyleBackColor = false;
            radExe.AutoSize = true;
            radExe.BackColor = Color.Transparent;
            radExe.Checked = true;
            radExe.Font = new Font("微软雅黑", 9F, FontStyle.Bold, GraphicsUnit.Point, 134);
            radExe.ForeColor = Color.White;
            radExe.Location = new Point(160, 7);
            radExe.Margin = new Padding(4, 4, 4, 4);
            radExe.Name = "radExe";
            radExe.Size = new Size(47, 21);
            radExe.TabIndex = 11;
            radExe.TabStop = true;
            radExe.Text = "exe";
            radExe.UseVisualStyleBackColor = false;
            // 
            // txtArgs
            // 
            this.txtArgs.BackColor = System.Drawing.Color.White;
            this.txtArgs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.txtArgs.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.txtArgs.Location = new System.Drawing.Point(45, 3);
            this.txtArgs.Name = "txtArgs";
            this.txtArgs.Size = new System.Drawing.Size(86, 23);
            this.txtArgs.TabIndex = 8;
            txtArgs.BackColor = Color.White;
            txtArgs.BorderStyle = BorderStyle.FixedSingle;
            txtArgs.Font = new Font("微软雅黑", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
            txtArgs.Location = new Point(52, 4);
            txtArgs.Margin = new Padding(4, 4, 4, 4);
            txtArgs.Name = "txtArgs";
            txtArgs.Size = new Size(100, 23);
            txtArgs.TabIndex = 8;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
            this.label2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.label2.ForeColor = System.Drawing.Color.White;
            this.label2.Location = new System.Drawing.Point(3, 7);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(44, 17);
            this.label2.TabIndex = 9;
            this.label2.Text = "参数:";
            label2.AutoSize = true;
            label2.FlatStyle = FlatStyle.Flat;
            label2.Font = new Font("微软雅黑", 9F, FontStyle.Bold, GraphicsUnit.Point, 134);
            label2.ForeColor = Color.White;
            label2.Location = new Point(4, 10);
            label2.Margin = new Padding(4, 0, 4, 0);
            label2.Name = "label2";
            label2.Size = new Size(44, 17);
            label2.TabIndex = 9;
            label2.Text = "参数:";
            // 
            // txtOutput
            // 
            this.txtOutput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.txtOutput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(17)))), ((int)(((byte)(18)))));
            this.txtOutput.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.txtOutput.ContextMenuStrip = this.contextMenuStripEx1;
            this.txtOutput.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.txtOutput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
            this.txtOutput.Location = new System.Drawing.Point(0, 29);
            this.txtOutput.Multiline = true;
            this.txtOutput.Name = "txtOutput";
            this.txtOutput.ReadOnly = true;
            this.txtOutput.ScrollBars = System.Windows.Forms.ScrollBars.Both;
            this.txtOutput.Size = new System.Drawing.Size(492, 162);
            this.txtOutput.TabIndex = 7;
            txtOutput.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            txtOutput.BackColor = Color.FromArgb(30, 17, 18);
            txtOutput.BorderStyle = BorderStyle.FixedSingle;
            txtOutput.ContextMenuStrip = contextMenuStripEx1;
            txtOutput.Font = new Font("微软雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134);
            txtOutput.ForeColor = Color.FromArgb(255, 255, 128);
            txtOutput.Location = new Point(0, 41);
            txtOutput.Margin = new Padding(4, 4, 4, 4);
            txtOutput.Multiline = true;
            txtOutput.Name = "txtOutput";
            txtOutput.ReadOnly = true;
            txtOutput.ScrollBars = ScrollBars.Both;
            txtOutput.Size = new Size(574, 229);
            txtOutput.TabIndex = 7;
            // 
            // contextMenuStripEx1
            // 
            this.contextMenuStripEx1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.复制ToolStripMenuItem,
            this.toolStripMenuItem1,
            this.清除ToolStripMenuItem});
            this.contextMenuStripEx1.Name = "contextMenuStripEx1";
            this.contextMenuStripEx1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
            this.contextMenuStripEx1.Size = new System.Drawing.Size(101, 54);
            contextMenuStripEx1.Items.AddRange(new ToolStripItem[] { å¤åˆ¶ToolStripMenuItem, toolStripMenuItem1, æ¸…除ToolStripMenuItem });
            contextMenuStripEx1.Name = "contextMenuStripEx1";
            contextMenuStripEx1.RenderMode = ToolStripRenderMode.System;
            contextMenuStripEx1.Size = new Size(101, 54);
            // 
            // å¤åˆ¶ToolStripMenuItem
            // 
            this.复制ToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
            this.复制ToolStripMenuItem.Name = "复制ToolStripMenuItem";
            this.复制ToolStripMenuItem.Size = new System.Drawing.Size(100, 22);
            this.复制ToolStripMenuItem.Text = "复制";
            this.复制ToolStripMenuItem.Click += new System.EventHandler(this.texstToolStripMenuItem_Click);
            å¤åˆ¶ToolStripMenuItem.ForeColor = Color.FromArgb(255, 255, 128);
            å¤åˆ¶ToolStripMenuItem.Name = "复制ToolStripMenuItem";
            å¤åˆ¶ToolStripMenuItem.Size = new Size(100, 22);
            å¤åˆ¶ToolStripMenuItem.Text = "复制";
            å¤åˆ¶ToolStripMenuItem.Click += texstToolStripMenuItem_Click;
            // 
            // toolStripMenuItem1
            // 
            this.toolStripMenuItem1.Name = "toolStripMenuItem1";
            this.toolStripMenuItem1.Size = new System.Drawing.Size(97, 6);
            toolStripMenuItem1.Name = "toolStripMenuItem1";
            toolStripMenuItem1.Size = new Size(97, 6);
            // 
            // æ¸…除ToolStripMenuItem
            // 
            this.清除ToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
            this.清除ToolStripMenuItem.Name = "清除ToolStripMenuItem";
            this.清除ToolStripMenuItem.Size = new System.Drawing.Size(100, 22);
            this.清除ToolStripMenuItem.Text = "清除";
            this.清除ToolStripMenuItem.Click += new System.EventHandler(this.清楚ToolStripMenuItem_Click);
            æ¸…除ToolStripMenuItem.ForeColor = Color.FromArgb(255, 255, 128);
            æ¸…除ToolStripMenuItem.Name = "清除ToolStripMenuItem";
            æ¸…除ToolStripMenuItem.Size = new Size(100, 22);
            æ¸…除ToolStripMenuItem.Text = "清除";
            æ¸…除ToolStripMenuItem.Click += æ¸…楚ToolStripMenuItem_Click;
            // 
            // ComplieUI
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.Color.Black;
            this.Controls.Add(this.radDll);
            this.Controls.Add(this.btnCsc);
            this.Controls.Add(this.chkCmd);
            this.Controls.Add(this.radWinexe);
            this.Controls.Add(this.radExe);
            this.Controls.Add(this.txtOutput);
            this.Controls.Add(this.txtArgs);
            this.Controls.Add(this.label2);
            this.Name = "ComplieUI";
            this.Size = new System.Drawing.Size(492, 192);
            this.contextMenuStripEx1.ResumeLayout(false);
            this.ResumeLayout(false);
            this.PerformLayout();
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.Black;
            Controls.Add(radDll);
            Controls.Add(btnCsc);
            Controls.Add(chkCmd);
            Controls.Add(radWinexe);
            Controls.Add(radExe);
            Controls.Add(txtOutput);
            Controls.Add(txtArgs);
            Controls.Add(label2);
            Margin = new Padding(4, 4, 4, 4);
            Name = "ComplieUI";
            Size = new Size(574, 272);
            contextMenuStripEx1.ResumeLayout(false);
            ResumeLayout(false);
            PerformLayout();
        }
LB_VisionControl/ScriptEditControl/ComplieUI.resx
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
@@ -26,36 +26,36 @@
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
@@ -117,34 +117,34 @@
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="btnCsc.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="btnCsc.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="chkCmd.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="chkCmd.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="radDll.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="radDll.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="radWinexe.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="radWinexe.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="radExe.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="radExe.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="txtArgs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="txtArgs.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="txtOutput.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="txtOutput.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
  <metadata name="contextMenuStripEx1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
  <metadata name="contextMenuStripEx1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>182, 17</value>
  </metadata>
  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </metadata>
</root>
LB_VisionControl/ScriptEditControl/ConsoleTextBox.resx
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
@@ -26,36 +26,36 @@
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
LB_VisionControl/ScriptEditControl/ScriptEditControl.Designer.cs
@@ -74,7 +74,7 @@
            fctb_ScriptEditControl.Language = Language.CSharp;
            fctb_ScriptEditControl.LineNumberColor = Color.Black;
            fctb_ScriptEditControl.Location = new Point(0, 0);
            fctb_ScriptEditControl.Margin = new Padding(4, 4, 4, 4);
            fctb_ScriptEditControl.Margin = new Padding(4);
            fctb_ScriptEditControl.Name = "fctb_ScriptEditControl";
            fctb_ScriptEditControl.Paddings = new Padding(0);
            fctb_ScriptEditControl.SelectionColor = Color.FromArgb(100, 255, 255, 128);
@@ -178,30 +178,30 @@
            pnl_ScriptEditControl.BackColor = Color.DarkSlateGray;
            pnl_ScriptEditControl.Controls.Add(pnl_ControlView);
            pnl_ScriptEditControl.Location = new Point(-75, 128);
            pnl_ScriptEditControl.Margin = new Padding(4, 4, 4, 4);
            pnl_ScriptEditControl.Margin = new Padding(4);
            pnl_ScriptEditControl.Name = "pnl_ScriptEditControl";
            pnl_ScriptEditControl.Size = new Size(719, 42);
            pnl_ScriptEditControl.TabIndex = 2;
            pnl_ScriptEditControl.Visible = false;
            // 
            // panControlView
            // pnl_ControlView
            // 
            pnl_ControlView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            pnl_ControlView.Location = new Point(2, 3);
            pnl_ControlView.Margin = new Padding(4, 4, 4, 4);
            pnl_ControlView.Name = "panControlView";
            pnl_ControlView.Margin = new Padding(4);
            pnl_ControlView.Name = "pnl_ControlView";
            pnl_ControlView.Size = new Size(1292, 0);
            pnl_ControlView.TabIndex = 8;
            // 
            // ScriptEditControl
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.DimGray;
            Controls.Add(pnl_ScriptEditControl);
            Controls.Add(fctb_ScriptEditControl);
            DoubleBuffered = true;
            Margin = new Padding(4, 4, 4, 4);
            Margin = new Padding(4);
            Name = "ScriptEditControl";
            Size = new Size(568, 298);
            KeyDown += Form1_KeyDown;
LB_VisionControl/ScriptEditControl/ScriptEditForm.Designer.cs
@@ -215,7 +215,7 @@
            splitContainer2.Panel2.BackColor = Color.DimGray;
            splitContainer2.Panel2.Controls.Add(splitContainer3);
            splitContainer2.Size = new Size(1050, 819);
            splitContainer2.SplitterDistance = 636;
            splitContainer2.SplitterDistance = 637;
            splitContainer2.SplitterWidth = 3;
            splitContainer2.TabIndex = 2;
            // 
@@ -247,7 +247,7 @@
            fctb.Paddings = new Padding(0);
            fctb.SelectionColor = Color.FromArgb(100, 255, 255, 128);
            fctb.ServiceLinesColor = Color.DarkGoldenrod;
            fctb.Size = new Size(1050, 636);
            fctb.Size = new Size(1050, 637);
            fctb.TabIndex = 0;
            fctb.TextChanged += fctb_TextChanged;
            fctb.KeyDown += fctb_KeyDown;
@@ -343,8 +343,8 @@
            // 
            splitContainer3.Panel2.BackColor = Color.FromArgb(30, 17, 18);
            splitContainer3.Panel2MinSize = 10;
            splitContainer3.Size = new Size(1050, 180);
            splitContainer3.SplitterDistance = 153;
            splitContainer3.Size = new Size(1050, 179);
            splitContainer3.SplitterDistance = 152;
            splitContainer3.SplitterWidth = 2;
            splitContainer3.TabIndex = 1;
            // 
@@ -371,7 +371,7 @@
            DebugTextBox1.SelectionColor = Color.FromArgb(50, 0, 0, 255);
            DebugTextBox1.ServiceLinesColor = Color.DarkGoldenrod;
            DebugTextBox1.ShowLineNumbers = false;
            DebugTextBox1.Size = new Size(1050, 153);
            DebugTextBox1.Size = new Size(1050, 152);
            DebugTextBox1.TabIndex = 0;
            DebugTextBox1.KeyDown += DebugTextBox1_KeyDown;
            // 
@@ -393,8 +393,8 @@
            // 
            // ScriptEditForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            BackColor = Color.DimGray;
            ClientSize = new Size(1050, 865);
            ControlBox = false;
LB_VisionControl/UserHSmartWindowControl.Designer.cs
@@ -120,8 +120,8 @@
            // 
            // UserHSmartWindowControl
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(pnl);
            Controls.Add(BtmStatusStrip);
            Margin = new Padding(4);
LB_VisionControl/UserHSmartWindowControl.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
LB_VisionFlowNode/FlowNodeEditor.Designer.cs
@@ -109,8 +109,8 @@
            // 
            // FlowNodeEditor
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(pnl_FlowNodeEditor);
            Controls.Add(tsp_Top);
            Name = "FlowNodeEditor";
LB_VisionFlowNode/MainForm.Designer.cs
@@ -78,8 +78,8 @@
            // 
            // MainForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(800, 450);
            Controls.Add(themeForm);
            FormBorderStyle = FormBorderStyle.None;
LB_VisionFlowNode/MainForm.resx
@@ -120,9 +120,11 @@
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
        YQUAACVUSURBVHhe7dXLDnD/OYbhb1RnQP1L5yZodRe7gUTsK6k2StJo42Boi3AE9gRnRChBgqGx4gCu
        +e/NnTwr12jNVlbe+/nw8z/8vWlf+dxHab/1kz+Y9tUvfCLNL2r58mc/SvvGT38y7Yuf+njaB5PaYlJb
        iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAABGdBTUEAALGPC/xhBQAAJVRJREFUeF7t
        1csOcP85huFvVGdA/UvnJmh1F7uBROwrqTZK0mjjYGiLcAT2BGdEKEGCobHiAK75782dPCvXaM1WVt77
        +fDzP/y9aV/53Edpv/WTP5j21S98Is0vavnyZz9K+8ZPfzLti5/6eNoHk9piUls86RaT2uIXtZjUFpPa
        YlJbNgDHPOkWk9riF7WY1BaT2mJSWzYAxzzpFpPa4he1mNQWk9piUls2AMc86RaT2uIXtZjUFpPaYlJb
        NgDHPOkWk9riF7WY1BaT2mJSWzYAxzzpFpPa4he1mNQWk9piUls2AMc86RaT2uIXtZjUFpPaYlJbNgDH
        POkWk9riF7WY1BaT2mJSWzYAxzzpFpPa4he1mNQWk9piUls2AMc86RaT2uIXtZjUFpPaYlJbNgDHPOkW
        k9riF7WY1BaT2mJSWzYAxzzpFpPa4he1mNQWk9piUls2AMc86RaT2uIXtZjUFpPaYlJbNgDHPOkWk9ri
        F7WY1BaT2mJSWzYAxzzpFpPa4he1mNQWk9piUls2AMc86RaT2uIXtZjUFpPaYlJbNgDHPOkWk9riF7WY
@@ -140,119 +142,108 @@
        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
        gGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnU
        FpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqL
        SW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWk
        tpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJb
        TGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0b
        gGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnU
        FpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqL
        SW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWk
        tpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJb
        TGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0b
        gGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnU
        FpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqL
        SW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWk
        tpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJb
        TGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0b
        gGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnU
        FpPaYlJbTGqLSW0xqS0ffv3zn0j7xz/7Ztp3/vxbab/8qY+nfTHun//i22n/8Td/mPaVz32UtgE4ZlJb
        TGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0m
        tcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPa
        YlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0x
        qS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwA
        jpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJb
        TGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0m
        tcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPa
        YlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0x
        qS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwA
        jpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJb
        TGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0m
        tcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPa
        YlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0x
        qS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwA
        jpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJb
        TGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0m
        tcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPa
        YlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwAjpnUFpPaYlJbTGqLSW0x
        qS0bgGMmtcWktpjUFpPaYlJbTGrLBuCYSW0xqS0mtcWktpjUFpPasgE4ZlJbTGqLSW0xqS0mtcWktmwA
        jpnUFpPaYlJbTGqLSW0xqS0bgGMmtcWktpjUFpPaYlJbTGrLhy995vvT/KSWL3+27bv/899z6Euf+SjN
        i2j51U9/PG0DcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUD
        cMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmk
        tngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNw
        zKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2
        eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DM
        pLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4
        ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyk
        tpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngR
        LSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2
        YlJbNgDHPOkWk9riF7WY1BaT2mJSWzYAxzzpFpPa4he1mNQWk9piUls+fOfPv5X2tZ/4wTRPouUXf+T7
        0r7+U59M+5VPfTzNi2j5z7/9o7QNwDGT2mJSW0xqi0lt8SJaTGrLBuCYSW0xqS0mtcWktngRLSa1ZQNw
        zKS2mNQWk9piUlu8iBaT2rIBOGZSW0xqi0ltMaktXkSLSW3ZABwzqS0mtcWktpjUFi+ixaS2bACOmdQW
        k9piUltMaosX0WJSWzYAx0xqi0ltMaktJrXFi2gxqS0bgGMmtcWktpjUFpPa4kW0mNSWDcAxk9piUltM
        aotJbfEiWkxqywbgmEltMaktJrXFpLZ4ES0mtWUDcMyktpjUFpPaYlJbvIgWk9qyAThmUltMaotJbTGp
        LV5Ei0lt2QAcM6ktJrXFpLaY1BYvosWktmwAjpnUFpPaYlJbTGqLF9FiUls2AMdMaotJbTGpLSa1xYto
        MaktG4BjJrXFpLaY1BaT2uJFtJjUlg3AMZPaYlJbTGqLSW3xIlpMassG4JhJbTGpLSa1xaS2eBEtJrVl
        A3DMpLaY1BaT2mJSW7yIFpPasgE4ZlJbTGqLSW0xqS1eRItJbdkAHDOpLSa1xaS2mNQWL6LFpLZsAI6Z
        1BaT2mJSW0xqixfRYlJbNgDHTGqLSW0xqS0mtcWLaDGpLRuAYya1xaS2mNQWk9riRbSY1JYNwDGT2mJS
        W0xqi0lt8SJaTGrLBuCYSW0xqS0mtcWktngRLSa1ZQNwzKS2mNQWk9piUlu8iBaT2rIBOGZSW0xqi0lt
        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
        LRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACO
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACO
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACO
        mdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltM
        aotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1
        xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9pi
        UltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGp
        LR9+/fOfSPvHP/tm2nf+/Ftpv/ypj6d9Me6f/+Lbaf/xN3+Y9pXPfZS2AThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2
        bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThm
        UltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQWk9piUltMassG4JhJbTGp
        LSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJbTGpLRuAYya1xaS2mNQW
        k9piUltMassG4JhJbTGpLSa1xaS2mNQWk9qyAThmUltMaotJbTGpLSa1xaS2bACOmdQWk9piUltMaotJ
        bTGpLRuAYya1xaS2mNQWk9piUltMasuHL33m+9P8pJYvf7btu//z33PoS5/5KM2LaPnVT388bQNwzKS2
        mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEt
        JrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaY
        pHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0m
@@ -261,26 +252,35 @@
        ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5
        yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVl
        A3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJ
        pLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mteXD
        N37hx9J++5c+k/a1n/1U2lc+94m0X/vsR2lf/7lPp331Z354Dm0AjpnUFpPaYlJbTGqLSZqXNgDHTGqL
        SW0xqS0mtcUkzUsbgGMmtcWktpjUFpPaYpLmpQ3AMZPaYlJbTGqLSW0xSfPSBuCYSW0xqS0mtcWktpik
        eWkDcMyktpjUFpPaYlJbTNK8tAE4ZlJbTGqLSW0xqS0maV7aABwzqS0mtcWktpjUFpM0L20AjpnUFpPa
        YlJbTGqLSZqXNgDHTGqLSW0xqS0mtcUkzUsbgGMmtcWktpjUFpPaYpLmpQ3AMZPaYlJbTGqLSW0xSfPS
        BuCYSW0xqS0mtcWktpikeWkDcMyktpjUFpPaYlJbTNK8tAE4ZlJbTGqLSW0xqS0maV7aABwzqS0mtcWk
        tpjUFpM0L20AjpnUFpPaYlJbTGqLSZqXNgDHTGqLSW0xqS0mtcUkzUsbgGMmtcWktpjUFpPaYpLmpQ3A
        MZPaYlJbTGqLSW0xSfPSBuCYSW0xqS0mtcWktpikeWkDcMyktpjUFpPaYlJbTNK8tAE4ZlJbTGqLSW0x
        qS0maV7aABwzqS0mtcWktpjUFpM0L20AjpnUFpPaYlJbTGqLSZqXNgDHTGqLSW0xqS0mtcUkzUsbgGMm
        tcWktpjUFpPaYpLmpQ3AMZPaYlJbTGqLSW0xSfPSBuCYSW0xqS0mtcWktpikeWkDcMyktpjUFpPaYlJb
        TNK8tAE4ZlJbTGqLSW0xqS0maV7aABwzqS0mtcWktpjUFpM0L20AjpnUFpPaYlJbTGqLSZqXNgDHTGqL
        SW0xqS0mtcUkzUsbgGMmtcWktpjUFpPaYpLmpQ3AMZPaYlJbTGqLSW0xSfPSBuCYSW0xqS0mtcWktpik
        eWkDcMyktpjUFpPaYlJbTNK8tAE4ZlJbTGqLSW0xqS0maV7aABwzqS0mtcWktpjUFpM0L20AjpnUFpPa
        YlJbTGqLSZqXNgDHTGqLSW0xqS0mtcUkzUsbgGMmtcWktpjUFpPaYpLmpQ3AMZPaYlJbTGqLSW0xSfPS
        BuCYSW0xqS0mtcWktpikeWkDcMyktpjUFpPaYlJbTNK8tAE4ZlJbTGqLSW0xqS0maV7aABwzqS0mtcWk
        tpjUFpM0L20AjpnUFpPaYlJbTGqLSZqXNgDHTGqLSW0xqS0mtcUkzUsbgGMmtcWktpjUFpPaYpLmpQ3A
        MZPaYlJbTGqLSW0xSfPSBuCYSW0xqS0mtcWktpikeWkDcMyktpjUFpPaYlJbTNK8tAE4ZlJbTGqLSW0x
        qS0maV7aABwzqS0mtcWktpjUFpM0L20AjpnUFpPaYlJbTGqLSZqXNgDHTGqLSW0xqS0mtcUkzUsbgGMm
        tcWktpjUFpPaYpLmpQ3AMZPaYlJbTGqLSW0xSfPSBuCYSW0xqS0mtcWktpikeWkDcMyktpjUFpPaYlJb
        TNK8tAE4ZlJbTGqLSW0xqS0maV76fzfth9drmQBzAAAAAElFTkSuQmCC
        pLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUD
        cMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmk
        tngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNw
        zKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2
        eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DM
        pLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4
        ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyk
        tpikecmktngRLSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngR
        LSa1ZQNwzKS2mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa1ZQNwzKS2
        mKR5yaS2eBEtJrVlA3DMpLaYpHnJpLZ4ES0mtWUDcMyktpikecmktngRLSa15cM3fuHH0n77lz6T9rWf
        /VTaVz73ibRf++xHaV//uU+nffVnfngObQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuA
        Yya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9pi
        UltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdM
        aotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2
        mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQW
        k9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ
        89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1
        xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikual
        DcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJ
        bTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuA
        Yya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9pi
        UltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdM
        aotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2
        mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1xaS2mNQWkzQvbQCOmdQW
        k9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikualDcAxk9piUltMaotJbTFJ
        89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJbTGpLSZpXtoAHDOpLSa1
        xaS2mNQWkzQvbQCOmdQWk9piUltMaotJmpc2AMdMaotJbTGpLSa1xSTNSxuAYya1xaS2mNQWk9pikual
        DcAxk9piUltMaotJbTFJ89IG4JhJbTGpLSa1xaS2mKR5aQNwzKS2mNQWk9piUltM0ry0AThmUltMaotJ
        bTGpLSZpXvp/N+2H12uZAHMAAAAASUVORK5CYII=
</value>
  </data>
</root>
LB_VisionProcesses/Alogrithms/BaseAlgorithm/TestTool/TestToolEdit.Designer.cs
@@ -437,8 +437,8 @@
            // 
            // TestToolEdit
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(MainTableLayoutPanel);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
LB_VisionProcesses/Alogrithms/BaseAlgorithm/TestTool/TestToolEdit.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
LB_VisionProcesses/Alogrithms/Halcon/2D/HBlobTool/HBlobToolEdit.Designer.cs
@@ -1274,8 +1274,8 @@
            // 
            // HBlobToolEdit
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(splitContainer1);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.Designer.cs
@@ -584,8 +584,8 @@
            // 
            // HFindCode2dToolEdit
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(MainTableLayoutPanel);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindCode2dTool/HFindCode2dToolEdit.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,10 +117,13 @@
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
  <metadata name="lblMsgToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>156, 17</value>
  </metadata>
  <metadata name="BtmStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>148, 17</value>
    <value>287, 17</value>
  </metadata>
</root>
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.Designer.cs
@@ -47,6 +47,7 @@
            label13 = new Label();
            cmbTransition = new ComboBox();
            cmbSelect = new ComboBox();
            btnShowROI = new Button();
            pnlInputImage = new Panel();
            TopToolStrip = new ToolStrip();
            btnRun = new ToolStripButton();
@@ -85,7 +86,6 @@
            tabPageInputImage = new TabPage();
            tabPageRecordImage = new TabPage();
            pnlRecordImage = new Panel();
            btnShowROI = new Button();
            tablePanelParas.SuspendLayout();
            TopToolStrip.SuspendLayout();
            BtmStatusStrip.SuspendLayout();
@@ -321,6 +321,17 @@
            cmbSelect.Name = "cmbSelect";
            cmbSelect.Size = new Size(103, 25);
            cmbSelect.TabIndex = 14;
            //
            // btnShowROI
            //
            btnShowROI.Dock = DockStyle.Fill;
            btnShowROI.Location = new Point(3, 207);
            btnShowROI.Name = "btnShowROI";
            btnShowROI.Size = new Size(84, 45);
            btnShowROI.TabIndex = 15;
            btnShowROI.Text = "显示找线区域";
            btnShowROI.UseVisualStyleBackColor = true;
            btnShowROI.Click += btnShowROI_Click;
            // 
            // pnlInputImage
            // 
@@ -754,21 +765,10 @@
            pnlRecordImage.Size = new Size(607, 510);
            pnlRecordImage.TabIndex = 45;
            // 
            // btnShowROI
            //
            btnShowROI.Dock = DockStyle.Fill;
            btnShowROI.Location = new Point(3, 207);
            btnShowROI.Name = "btnShowROI";
            btnShowROI.Size = new Size(84, 45);
            btnShowROI.TabIndex = 15;
            btnShowROI.Text = "显示找线区域";
            btnShowROI.UseVisualStyleBackColor = true;
            btnShowROI.Click += btnShowROI_Click;
            //
            // HFindLineToolEdit
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(MainTableLayoutPanel);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindLineTool/HFindLineToolEdit.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,10 +117,13 @@
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
  <metadata name="lblMsgToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <metadata name="TopToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>156, 17</value>
  </metadata>
  <metadata name="BtmStatusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>129, 17</value>
    <value>287, 17</value>
  </metadata>
</root>
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindModelTool/HFindModelToolEdit.Designer.cs
@@ -1685,8 +1685,8 @@
            // 
            // HFindModelToolEdit
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(MainTableLayoutPanel);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindModelTool/HFindModelToolEdit.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindMultiModelTool/HFindMultiModelToolEdit.Designer.cs
@@ -197,7 +197,7 @@
            tabPage1.Controls.Add(splitContainer1);
            tabPage1.Location = new Point(4, 26);
            tabPage1.Name = "tabPage1";
            tabPage1.Padding = new Padding(3, 3, 3, 3);
            tabPage1.Padding = new Padding(3);
            tabPage1.Size = new Size(403, 516);
            tabPage1.TabIndex = 0;
            tabPage1.Text = "输入参数";
@@ -422,8 +422,8 @@
            tabPage2.Controls.Add(tableLayoutResults);
            tabPage2.Location = new Point(4, 26);
            tabPage2.Name = "tabPage2";
            tabPage2.Padding = new Padding(3, 3, 3, 3);
            tabPage2.Size = new Size(404, 519);
            tabPage2.Padding = new Padding(3);
            tabPage2.Size = new Size(403, 516);
            tabPage2.TabIndex = 1;
            tabPage2.Text = "输出结果";
            tabPage2.UseVisualStyleBackColor = true;
@@ -458,7 +458,7 @@
            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
            tableLayoutResults.RowStyles.Add(new RowStyle(SizeType.Percent, 10F));
            tableLayoutResults.Size = new Size(398, 513);
            tableLayoutResults.Size = new Size(397, 510);
            tableLayoutResults.TabIndex = 1;
            // 
            // label5
@@ -510,7 +510,7 @@
            dtxtCenterX.Margin = new Padding(2, 3, 2, 3);
            dtxtCenterX.Name = "dtxtCenterX";
            dtxtCenterX.ReadOnly = true;
            dtxtCenterX.Size = new Size(294, 23);
            dtxtCenterX.Size = new Size(293, 23);
            dtxtCenterX.TabIndex = 5;
            // 
            // dtxtCenterY
@@ -520,7 +520,7 @@
            dtxtCenterY.Margin = new Padding(2, 3, 2, 3);
            dtxtCenterY.Name = "dtxtCenterY";
            dtxtCenterY.ReadOnly = true;
            dtxtCenterY.Size = new Size(294, 23);
            dtxtCenterY.Size = new Size(293, 23);
            dtxtCenterY.TabIndex = 6;
            // 
            // dtxtAngle
@@ -530,7 +530,7 @@
            dtxtAngle.Margin = new Padding(2, 3, 2, 3);
            dtxtAngle.Name = "dtxtAngle";
            dtxtAngle.ReadOnly = true;
            dtxtAngle.Size = new Size(294, 23);
            dtxtAngle.Size = new Size(293, 23);
            dtxtAngle.TabIndex = 7;
            // 
            // label8
@@ -550,7 +550,7 @@
            dtxtScore.Location = new Point(103, 156);
            dtxtScore.Name = "dtxtScore";
            dtxtScore.ReadOnly = true;
            dtxtScore.Size = new Size(292, 23);
            dtxtScore.Size = new Size(291, 23);
            dtxtScore.TabIndex = 9;
            // 
            // dtxtCount
@@ -588,7 +588,7 @@
            tabPageInputImage.Controls.Add(pnlInputImage);
            tabPageInputImage.Location = new Point(4, 26);
            tabPageInputImage.Name = "tabPageInputImage";
            tabPageInputImage.Padding = new Padding(3, 3, 3, 3);
            tabPageInputImage.Padding = new Padding(3);
            tabPageInputImage.Size = new Size(613, 516);
            tabPageInputImage.TabIndex = 0;
            tabPageInputImage.Text = "输入图像";
@@ -598,7 +598,7 @@
            // 
            pnlInputImage.Dock = DockStyle.Fill;
            pnlInputImage.Location = new Point(3, 3);
            pnlInputImage.Margin = new Padding(4, 4, 4, 4);
            pnlInputImage.Margin = new Padding(4);
            pnlInputImage.Name = "pnlInputImage";
            pnlInputImage.Size = new Size(607, 510);
            pnlInputImage.TabIndex = 44;
@@ -608,8 +608,8 @@
            tabPageRecordImage.Controls.Add(pnlRecordImage);
            tabPageRecordImage.Location = new Point(4, 26);
            tabPageRecordImage.Name = "tabPageRecordImage";
            tabPageRecordImage.Padding = new Padding(3, 3, 3, 3);
            tabPageRecordImage.Size = new Size(613, 519);
            tabPageRecordImage.Padding = new Padding(3);
            tabPageRecordImage.Size = new Size(613, 516);
            tabPageRecordImage.TabIndex = 1;
            tabPageRecordImage.Text = "结果图像";
            tabPageRecordImage.UseVisualStyleBackColor = true;
@@ -618,15 +618,15 @@
            // 
            pnlRecordImage.Dock = DockStyle.Fill;
            pnlRecordImage.Location = new Point(3, 3);
            pnlRecordImage.Margin = new Padding(4, 4, 4, 4);
            pnlRecordImage.Margin = new Padding(4);
            pnlRecordImage.Name = "pnlRecordImage";
            pnlRecordImage.Size = new Size(607, 513);
            pnlRecordImage.Size = new Size(607, 510);
            pnlRecordImage.TabIndex = 45;
            // 
            // HFindMultiModelToolEdit
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(MainTableLayoutPanel);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindMultiModelTool/HFindMultiModelToolEdit.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
LB_VisionProcesses/Alogrithms/Halcon/2D/HFindMultiModelTool/HMulitModelControl.Designer.cs
@@ -167,8 +167,8 @@
            // 
            // HMulitModelControl
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(tableLayoutPanel1);
            Name = "HMulitModelControl";
            Size = new Size(399, 157);
LB_VisionProcesses/Cameras/2DCameraForm.Designer.cs
@@ -104,20 +104,18 @@
            // 
            cmbBrand.Dock = DockStyle.Fill;
            cmbBrand.FormattingEnabled = true;
            cmbBrand.Location = new Point(68, 4);
            cmbBrand.Margin = new Padding(4);
            cmbBrand.Location = new Point(53, 3);
            cmbBrand.Name = "cmbBrand";
            cmbBrand.Size = new Size(381, 28);
            cmbBrand.Size = new Size(296, 25);
            cmbBrand.TabIndex = 0;
            // 
            // cmbSN
            // 
            cmbSN.Dock = DockStyle.Fill;
            cmbSN.FormattingEnabled = true;
            cmbSN.Location = new Point(68, 4);
            cmbSN.Margin = new Padding(4);
            cmbSN.Location = new Point(53, 3);
            cmbSN.Name = "cmbSN";
            cmbSN.Size = new Size(381, 28);
            cmbSN.Size = new Size(296, 25);
            cmbSN.TabIndex = 1;
            cmbSN.SelectedIndexChanged += cmbSN_SelectedIndexChanged;
            cmbSN.MouseDown += cmbSN_MouseDown;
@@ -126,10 +124,9 @@
            // 
            label1.AutoSize = true;
            label1.Dock = DockStyle.Fill;
            label1.Location = new Point(4, 0);
            label1.Margin = new Padding(4, 0, 4, 0);
            label1.Location = new Point(3, 0);
            label1.Name = "label1";
            label1.Size = new Size(56, 39);
            label1.Size = new Size(44, 34);
            label1.TabIndex = 2;
            label1.Text = "品牌";
            label1.TextAlign = ContentAlignment.MiddleCenter;
@@ -138,10 +135,9 @@
            // 
            label2.AutoSize = true;
            label2.Dock = DockStyle.Fill;
            label2.Location = new Point(4, 0);
            label2.Margin = new Padding(4, 0, 4, 0);
            label2.Location = new Point(3, 0);
            label2.Name = "label2";
            label2.Size = new Size(56, 39);
            label2.Size = new Size(44, 34);
            label2.TabIndex = 3;
            label2.Text = "SN";
            label2.TextAlign = ContentAlignment.MiddleCenter;
@@ -150,10 +146,9 @@
            // 
            btnStartGrab.Dock = DockStyle.Fill;
            btnStartGrab.ForeColor = SystemColors.ControlText;
            btnStartGrab.Location = new Point(117, 4);
            btnStartGrab.Margin = new Padding(4);
            btnStartGrab.Location = new Point(91, 3);
            btnStartGrab.Name = "btnStartGrab";
            btnStartGrab.Size = new Size(105, 31);
            btnStartGrab.Size = new Size(82, 28);
            btnStartGrab.TabIndex = 5;
            btnStartGrab.Text = "连续采集";
            btnStartGrab.UseVisualStyleBackColor = true;
@@ -163,10 +158,9 @@
            // 
            btnCloseGrab.Dock = DockStyle.Fill;
            btnCloseGrab.ForeColor = SystemColors.Desktop;
            btnCloseGrab.Location = new Point(230, 4);
            btnCloseGrab.Margin = new Padding(4);
            btnCloseGrab.Location = new Point(179, 3);
            btnCloseGrab.Name = "btnCloseGrab";
            btnCloseGrab.Size = new Size(105, 31);
            btnCloseGrab.Size = new Size(82, 28);
            btnCloseGrab.TabIndex = 6;
            btnCloseGrab.Text = "关闭采集";
            btnCloseGrab.UseVisualStyleBackColor = true;
@@ -176,10 +170,9 @@
            // 
            btnGrabOnce.Dock = DockStyle.Fill;
            btnGrabOnce.ForeColor = SystemColors.ControlText;
            btnGrabOnce.Location = new Point(4, 4);
            btnGrabOnce.Margin = new Padding(4);
            btnGrabOnce.Location = new Point(3, 3);
            btnGrabOnce.Name = "btnGrabOnce";
            btnGrabOnce.Size = new Size(105, 31);
            btnGrabOnce.Size = new Size(82, 28);
            btnGrabOnce.TabIndex = 7;
            btnGrabOnce.Text = "单张采集";
            btnGrabOnce.UseVisualStyleBackColor = true;
@@ -189,10 +182,9 @@
            // 
            btnOpen.Dock = DockStyle.Fill;
            btnOpen.ForeColor = SystemColors.ControlText;
            btnOpen.Location = new Point(4, 4);
            btnOpen.Margin = new Padding(4);
            btnOpen.Location = new Point(3, 3);
            btnOpen.Name = "btnOpen";
            btnOpen.Size = new Size(105, 31);
            btnOpen.Size = new Size(82, 28);
            btnOpen.TabIndex = 8;
            btnOpen.Text = "打开";
            btnOpen.UseVisualStyleBackColor = true;
@@ -202,10 +194,9 @@
            // 
            btnClose.Dock = DockStyle.Fill;
            btnClose.ForeColor = SystemColors.ControlText;
            btnClose.Location = new Point(117, 4);
            btnClose.Margin = new Padding(4);
            btnClose.Location = new Point(91, 3);
            btnClose.Name = "btnClose";
            btnClose.Size = new Size(105, 31);
            btnClose.Size = new Size(82, 28);
            btnClose.TabIndex = 9;
            btnClose.Text = "关闭";
            btnClose.UseVisualStyleBackColor = true;
@@ -215,10 +206,9 @@
            // 
            label5.AutoSize = true;
            label5.Dock = DockStyle.Fill;
            label5.Location = new Point(4, 0);
            label5.Margin = new Padding(4, 0, 4, 0);
            label5.Location = new Point(3, 0);
            label5.Name = "label5";
            label5.Size = new Size(146, 39);
            label5.Size = new Size(114, 34);
            label5.TabIndex = 15;
            label5.Text = "取图数量:";
            label5.TextAlign = ContentAlignment.MiddleCenter;
@@ -227,10 +217,9 @@
            // 
            lblPicCount.AutoSize = true;
            lblPicCount.Dock = DockStyle.Fill;
            lblPicCount.Location = new Point(158, 0);
            lblPicCount.Margin = new Padding(4, 0, 4, 0);
            lblPicCount.Location = new Point(123, 0);
            lblPicCount.Name = "lblPicCount";
            lblPicCount.Size = new Size(291, 39);
            lblPicCount.Size = new Size(226, 34);
            lblPicCount.TabIndex = 16;
            lblPicCount.Text = "0";
            lblPicCount.TextAlign = ContentAlignment.MiddleLeft;
@@ -238,20 +227,18 @@
            // txtGain
            // 
            txtGain.Dock = DockStyle.Fill;
            txtGain.Location = new Point(68, 4);
            txtGain.Margin = new Padding(4);
            txtGain.Location = new Point(53, 3);
            txtGain.Name = "txtGain";
            txtGain.Size = new Size(381, 27);
            txtGain.Size = new Size(296, 23);
            txtGain.TabIndex = 21;
            txtGain.TextChanged += txtGain_TextChanged;
            // 
            // txtExp
            // 
            txtExp.Dock = DockStyle.Fill;
            txtExp.Location = new Point(68, 4);
            txtExp.Margin = new Padding(4);
            txtExp.Location = new Point(53, 3);
            txtExp.Name = "txtExp";
            txtExp.Size = new Size(381, 27);
            txtExp.Size = new Size(296, 23);
            txtExp.TabIndex = 20;
            txtExp.TextChanged += txtExp_TextChanged;
            // 
@@ -259,10 +246,9 @@
            // 
            label4.AutoSize = true;
            label4.Dock = DockStyle.Fill;
            label4.Location = new Point(4, 0);
            label4.Margin = new Padding(4, 0, 4, 0);
            label4.Location = new Point(3, 0);
            label4.Name = "label4";
            label4.Size = new Size(56, 39);
            label4.Size = new Size(44, 34);
            label4.TabIndex = 19;
            label4.Text = "增益";
            label4.TextAlign = ContentAlignment.MiddleCenter;
@@ -271,10 +257,9 @@
            // 
            label3.AutoSize = true;
            label3.Dock = DockStyle.Fill;
            label3.Location = new Point(4, 0);
            label3.Margin = new Padding(4, 0, 4, 0);
            label3.Location = new Point(3, 0);
            label3.Name = "label3";
            label3.Size = new Size(56, 39);
            label3.Size = new Size(44, 34);
            label3.TabIndex = 18;
            label3.Text = "曝光";
            label3.TextAlign = ContentAlignment.MiddleCenter;
@@ -286,10 +271,8 @@
            groupBox1.Dock = DockStyle.Fill;
            groupBox1.ForeColor = SystemColors.Control;
            groupBox1.Location = new Point(0, 0);
            groupBox1.Margin = new Padding(4);
            groupBox1.Name = "groupBox1";
            groupBox1.Padding = new Padding(4);
            groupBox1.Size = new Size(626, 695);
            groupBox1.Size = new Size(487, 591);
            groupBox1.TabIndex = 17;
            groupBox1.TabStop = false;
            groupBox1.Text = "实时采集";
@@ -297,20 +280,18 @@
            // panel_Picture
            // 
            panel_Picture.Dock = DockStyle.Fill;
            panel_Picture.Location = new Point(4, 24);
            panel_Picture.Margin = new Padding(4);
            panel_Picture.Location = new Point(3, 19);
            panel_Picture.Name = "panel_Picture";
            panel_Picture.Size = new Size(618, 667);
            panel_Picture.Size = new Size(481, 569);
            panel_Picture.TabIndex = 0;
            // 
            // radioButtonSoft
            // 
            radioButtonSoft.AutoSize = true;
            radioButtonSoft.Dock = DockStyle.Fill;
            radioButtonSoft.Location = new Point(4, 145);
            radioButtonSoft.Margin = new Padding(4);
            radioButtonSoft.Location = new Point(3, 123);
            radioButtonSoft.Name = "radioButtonSoft";
            radioButtonSoft.Size = new Size(453, 39);
            radioButtonSoft.Size = new Size(352, 34);
            radioButtonSoft.TabIndex = 23;
            radioButtonSoft.TabStop = true;
            radioButtonSoft.Text = "软触发";
@@ -321,10 +302,9 @@
            // 
            radioButtonHard.AutoSize = true;
            radioButtonHard.Dock = DockStyle.Fill;
            radioButtonHard.Location = new Point(4, 239);
            radioButtonHard.Margin = new Padding(4);
            radioButtonHard.Location = new Point(3, 203);
            radioButtonHard.Name = "radioButtonHard";
            radioButtonHard.Size = new Size(453, 39);
            radioButtonHard.Size = new Size(352, 34);
            radioButtonHard.TabIndex = 24;
            radioButtonHard.TabStop = true;
            radioButtonHard.Text = "硬触发";
@@ -333,8 +313,7 @@
            // splitContainer1
            // 
            splitContainer1.Dock = DockStyle.Fill;
            splitContainer1.Location = new Point(6, 6);
            splitContainer1.Margin = new Padding(4);
            splitContainer1.Location = new Point(5, 5);
            splitContainer1.Name = "splitContainer1";
            // 
            // splitContainer1.Panel1
@@ -344,9 +323,8 @@
            // splitContainer1.Panel2
            // 
            splitContainer1.Panel2.Controls.Add(groupBox1);
            splitContainer1.Size = new Size(1100, 695);
            splitContainer1.SplitterDistance = 469;
            splitContainer1.SplitterWidth = 5;
            splitContainer1.Size = new Size(855, 591);
            splitContainer1.SplitterDistance = 364;
            splitContainer1.TabIndex = 19;
            // 
            // groupBox2
@@ -356,11 +334,9 @@
            groupBox2.Dock = DockStyle.Fill;
            groupBox2.ForeColor = SystemColors.Control;
            groupBox2.Location = new Point(0, 0);
            groupBox2.Margin = new Padding(4);
            groupBox2.MinimumSize = new Size(336, 72);
            groupBox2.MinimumSize = new Size(261, 61);
            groupBox2.Name = "groupBox2";
            groupBox2.Padding = new Padding(4);
            groupBox2.Size = new Size(469, 695);
            groupBox2.Size = new Size(364, 591);
            groupBox2.TabIndex = 0;
            groupBox2.TabStop = false;
            groupBox2.Text = "相机参数";
@@ -384,8 +360,7 @@
            tableLayoutPanel2.Controls.Add(tableLayoutPanel9, 0, 10);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel10, 0, 9);
            tableLayoutPanel2.Dock = DockStyle.Fill;
            tableLayoutPanel2.Location = new Point(4, 24);
            tableLayoutPanel2.Margin = new Padding(4);
            tableLayoutPanel2.Location = new Point(3, 19);
            tableLayoutPanel2.Name = "tableLayoutPanel2";
            tableLayoutPanel2.RowCount = 14;
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 7.14301062F));
@@ -402,40 +377,38 @@
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 7.14301062F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 7.143011F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 7.14086771F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 24F));
            tableLayoutPanel2.Size = new Size(461, 667);
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
            tableLayoutPanel2.Size = new Size(358, 569);
            tableLayoutPanel2.TabIndex = 25;
            // 
            // tableLayoutPanel3
            // 
            tableLayoutPanel3.ColumnCount = 2;
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 64F));
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F));
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel3.Controls.Add(label1, 0, 0);
            tableLayoutPanel3.Controls.Add(cmbBrand, 1, 0);
            tableLayoutPanel3.Dock = DockStyle.Fill;
            tableLayoutPanel3.Location = new Point(4, 4);
            tableLayoutPanel3.Margin = new Padding(4);
            tableLayoutPanel3.Location = new Point(3, 3);
            tableLayoutPanel3.Name = "tableLayoutPanel3";
            tableLayoutPanel3.RowCount = 1;
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel3.Size = new Size(453, 39);
            tableLayoutPanel3.Size = new Size(352, 34);
            tableLayoutPanel3.TabIndex = 0;
            // 
            // tableLayoutPanel4
            // 
            tableLayoutPanel4.ColumnCount = 2;
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 64F));
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F));
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel4.Controls.Add(label2, 0, 0);
            tableLayoutPanel4.Controls.Add(cmbSN, 1, 0);
            tableLayoutPanel4.Dock = DockStyle.Fill;
            tableLayoutPanel4.Location = new Point(4, 51);
            tableLayoutPanel4.Margin = new Padding(4);
            tableLayoutPanel4.Location = new Point(3, 43);
            tableLayoutPanel4.Name = "tableLayoutPanel4";
            tableLayoutPanel4.RowCount = 1;
            tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel4.Size = new Size(453, 39);
            tableLayoutPanel4.Size = new Size(352, 34);
            tableLayoutPanel4.TabIndex = 1;
            // 
            // tableLayoutPanel5
@@ -449,12 +422,11 @@
            tableLayoutPanel5.Controls.Add(btnClose, 1, 0);
            tableLayoutPanel5.Controls.Add(btnEdit, 3, 0);
            tableLayoutPanel5.Dock = DockStyle.Fill;
            tableLayoutPanel5.Location = new Point(4, 98);
            tableLayoutPanel5.Margin = new Padding(4);
            tableLayoutPanel5.Location = new Point(3, 83);
            tableLayoutPanel5.Name = "tableLayoutPanel5";
            tableLayoutPanel5.RowCount = 1;
            tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel5.Size = new Size(453, 39);
            tableLayoutPanel5.Size = new Size(352, 34);
            tableLayoutPanel5.TabIndex = 2;
            // 
            // btnEdit
@@ -462,10 +434,9 @@
            btnEdit.Dock = DockStyle.Fill;
            btnEdit.Enabled = false;
            btnEdit.ForeColor = SystemColors.ControlText;
            btnEdit.Location = new Point(343, 4);
            btnEdit.Margin = new Padding(4);
            btnEdit.Location = new Point(267, 3);
            btnEdit.Name = "btnEdit";
            btnEdit.Size = new Size(106, 31);
            btnEdit.Size = new Size(82, 28);
            btnEdit.TabIndex = 10;
            btnEdit.Text = "编辑";
            btnEdit.UseVisualStyleBackColor = true;
@@ -483,22 +454,21 @@
            tableLayoutPanel6.Controls.Add(btnCloseGrab, 2, 0);
            tableLayoutPanel6.Controls.Add(btnSaveImage, 3, 0);
            tableLayoutPanel6.Dock = DockStyle.Fill;
            tableLayoutPanel6.Location = new Point(4, 192);
            tableLayoutPanel6.Margin = new Padding(4);
            tableLayoutPanel6.Location = new Point(3, 163);
            tableLayoutPanel6.Name = "tableLayoutPanel6";
            tableLayoutPanel6.RowCount = 1;
            tableLayoutPanel6.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel6.Size = new Size(453, 39);
            tableLayoutPanel6.Size = new Size(352, 34);
            tableLayoutPanel6.TabIndex = 24;
            // 
            // btnSaveImage
            // 
            btnSaveImage.Dock = DockStyle.Fill;
            btnSaveImage.ForeColor = SystemColors.Desktop;
            btnSaveImage.Location = new Point(342, 2);
            btnSaveImage.Margin = new Padding(3, 2, 3, 2);
            btnSaveImage.Location = new Point(266, 2);
            btnSaveImage.Margin = new Padding(2, 2, 2, 2);
            btnSaveImage.Name = "btnSaveImage";
            btnSaveImage.Size = new Size(108, 35);
            btnSaveImage.Size = new Size(84, 30);
            btnSaveImage.TabIndex = 8;
            btnSaveImage.Text = "保存图片";
            btnSaveImage.UseVisualStyleBackColor = true;
@@ -507,33 +477,31 @@
            // tableLayoutPanel7
            // 
            tableLayoutPanel7.ColumnCount = 2;
            tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 64F));
            tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F));
            tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel7.Controls.Add(label3, 0, 0);
            tableLayoutPanel7.Controls.Add(txtExp, 1, 0);
            tableLayoutPanel7.Dock = DockStyle.Fill;
            tableLayoutPanel7.Location = new Point(4, 333);
            tableLayoutPanel7.Margin = new Padding(4);
            tableLayoutPanel7.Location = new Point(3, 283);
            tableLayoutPanel7.Name = "tableLayoutPanel7";
            tableLayoutPanel7.RowCount = 1;
            tableLayoutPanel7.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
            tableLayoutPanel7.Size = new Size(453, 39);
            tableLayoutPanel7.Size = new Size(352, 34);
            tableLayoutPanel7.TabIndex = 25;
            // 
            // tableLayoutPanel8
            // 
            tableLayoutPanel8.ColumnCount = 2;
            tableLayoutPanel8.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 64F));
            tableLayoutPanel8.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F));
            tableLayoutPanel8.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel8.Controls.Add(label4, 0, 0);
            tableLayoutPanel8.Controls.Add(txtGain, 1, 0);
            tableLayoutPanel8.Dock = DockStyle.Fill;
            tableLayoutPanel8.Location = new Point(4, 380);
            tableLayoutPanel8.Margin = new Padding(4);
            tableLayoutPanel8.Location = new Point(3, 323);
            tableLayoutPanel8.Name = "tableLayoutPanel8";
            tableLayoutPanel8.RowCount = 1;
            tableLayoutPanel8.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel8.Size = new Size(453, 39);
            tableLayoutPanel8.Size = new Size(352, 34);
            tableLayoutPanel8.TabIndex = 26;
            // 
            // tableLayoutPanel1
@@ -546,21 +514,19 @@
            tableLayoutPanel1.Controls.Add(ckbUpParams, 1, 0);
            tableLayoutPanel1.Controls.Add(ckbRegrab, 2, 0);
            tableLayoutPanel1.Dock = DockStyle.Fill;
            tableLayoutPanel1.Location = new Point(4, 286);
            tableLayoutPanel1.Margin = new Padding(4);
            tableLayoutPanel1.Location = new Point(3, 243);
            tableLayoutPanel1.Name = "tableLayoutPanel1";
            tableLayoutPanel1.RowCount = 1;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.Size = new Size(453, 39);
            tableLayoutPanel1.Size = new Size(352, 34);
            tableLayoutPanel1.TabIndex = 29;
            // 
            // btnStartHard
            // 
            btnStartHard.Dock = DockStyle.Fill;
            btnStartHard.Location = new Point(4, 4);
            btnStartHard.Margin = new Padding(4);
            btnStartHard.Location = new Point(3, 3);
            btnStartHard.Name = "btnStartHard";
            btnStartHard.Size = new Size(82, 31);
            btnStartHard.Size = new Size(64, 28);
            btnStartHard.TabIndex = 22;
            btnStartHard.Text = "等待触发";
            btnStartHard.UseVisualStyleBackColor = true;
@@ -570,10 +536,9 @@
            // 
            ckbUpParams.AutoSize = true;
            ckbUpParams.Dock = DockStyle.Fill;
            ckbUpParams.Location = new Point(94, 4);
            ckbUpParams.Margin = new Padding(4);
            ckbUpParams.Location = new Point(73, 3);
            ckbUpParams.Name = "ckbUpParams";
            ckbUpParams.Size = new Size(173, 31);
            ckbUpParams.Size = new Size(134, 28);
            ckbUpParams.TabIndex = 23;
            ckbUpParams.Text = "是否每次写入参数";
            ckbUpParams.UseVisualStyleBackColor = true;
@@ -582,10 +547,9 @@
            // 
            ckbRegrab.AutoSize = true;
            ckbRegrab.Dock = DockStyle.Fill;
            ckbRegrab.Location = new Point(275, 4);
            ckbRegrab.Margin = new Padding(4);
            ckbRegrab.Location = new Point(213, 3);
            ckbRegrab.Name = "ckbRegrab";
            ckbRegrab.Size = new Size(174, 31);
            ckbRegrab.Size = new Size(136, 28);
            ckbRegrab.TabIndex = 24;
            ckbRegrab.Text = "是否失败重新取图";
            ckbRegrab.UseVisualStyleBackColor = true;
@@ -593,27 +557,25 @@
            // tableLayoutPanel12
            // 
            tableLayoutPanel12.ColumnCount = 2;
            tableLayoutPanel12.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 154F));
            tableLayoutPanel12.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 120F));
            tableLayoutPanel12.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel12.Controls.Add(lblCapTime, 1, 0);
            tableLayoutPanel12.Controls.Add(label7, 0, 0);
            tableLayoutPanel12.Dock = DockStyle.Fill;
            tableLayoutPanel12.Location = new Point(4, 615);
            tableLayoutPanel12.Margin = new Padding(4);
            tableLayoutPanel12.Location = new Point(3, 523);
            tableLayoutPanel12.Name = "tableLayoutPanel12";
            tableLayoutPanel12.RowCount = 1;
            tableLayoutPanel12.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel12.Size = new Size(453, 48);
            tableLayoutPanel12.Size = new Size(352, 43);
            tableLayoutPanel12.TabIndex = 31;
            // 
            // lblCapTime
            // 
            lblCapTime.AutoSize = true;
            lblCapTime.Dock = DockStyle.Fill;
            lblCapTime.Location = new Point(158, 0);
            lblCapTime.Margin = new Padding(4, 0, 4, 0);
            lblCapTime.Location = new Point(123, 0);
            lblCapTime.Name = "lblCapTime";
            lblCapTime.Size = new Size(291, 48);
            lblCapTime.Size = new Size(226, 43);
            lblCapTime.TabIndex = 16;
            lblCapTime.Text = "0ms";
            lblCapTime.TextAlign = ContentAlignment.MiddleLeft;
@@ -622,10 +584,9 @@
            // 
            label7.AutoSize = true;
            label7.Dock = DockStyle.Fill;
            label7.Location = new Point(4, 0);
            label7.Margin = new Padding(4, 0, 4, 0);
            label7.Location = new Point(3, 0);
            label7.Name = "label7";
            label7.Size = new Size(146, 48);
            label7.Size = new Size(114, 43);
            label7.TabIndex = 15;
            label7.Text = "取图时间:";
            label7.TextAlign = ContentAlignment.MiddleCenter;
@@ -633,17 +594,16 @@
            // tableLayoutPanel11
            // 
            tableLayoutPanel11.ColumnCount = 2;
            tableLayoutPanel11.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 154F));
            tableLayoutPanel11.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 120F));
            tableLayoutPanel11.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel11.Controls.Add(label5, 0, 0);
            tableLayoutPanel11.Controls.Add(lblPicCount, 1, 0);
            tableLayoutPanel11.Dock = DockStyle.Fill;
            tableLayoutPanel11.Location = new Point(4, 568);
            tableLayoutPanel11.Margin = new Padding(4);
            tableLayoutPanel11.Location = new Point(3, 483);
            tableLayoutPanel11.Name = "tableLayoutPanel11";
            tableLayoutPanel11.RowCount = 1;
            tableLayoutPanel11.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel11.Size = new Size(453, 39);
            tableLayoutPanel11.Size = new Size(352, 34);
            tableLayoutPanel11.TabIndex = 30;
            // 
            // cmbImagesPath
@@ -652,10 +612,9 @@
            cmbImagesPath.Dock = DockStyle.Fill;
            cmbImagesPath.ForeColor = SystemColors.ControlText;
            cmbImagesPath.FormattingEnabled = true;
            cmbImagesPath.Location = new Point(4, 521);
            cmbImagesPath.Margin = new Padding(4);
            cmbImagesPath.Location = new Point(3, 443);
            cmbImagesPath.Name = "cmbImagesPath";
            cmbImagesPath.Size = new Size(453, 28);
            cmbImagesPath.Size = new Size(352, 25);
            cmbImagesPath.TabIndex = 0;
            cmbImagesPath.SelectedIndexChanged += cmbImagesPath_SelectedIndexChanged;
            cmbImagesPath.MouseHover += cmbImagesPath_MouseHover;
@@ -670,22 +629,20 @@
            tableLayoutPanel9.Controls.Add(btnAddImages, 1, 0);
            tableLayoutPanel9.Controls.Add(btnLocalGrab, 2, 0);
            tableLayoutPanel9.Dock = DockStyle.Fill;
            tableLayoutPanel9.Location = new Point(4, 474);
            tableLayoutPanel9.Margin = new Padding(4);
            tableLayoutPanel9.Location = new Point(3, 403);
            tableLayoutPanel9.Name = "tableLayoutPanel9";
            tableLayoutPanel9.RowCount = 1;
            tableLayoutPanel9.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel9.Size = new Size(453, 39);
            tableLayoutPanel9.Size = new Size(352, 34);
            tableLayoutPanel9.TabIndex = 27;
            // 
            // ckbLocalTest
            // 
            ckbLocalTest.AutoSize = true;
            ckbLocalTest.Dock = DockStyle.Fill;
            ckbLocalTest.Location = new Point(4, 4);
            ckbLocalTest.Margin = new Padding(4);
            ckbLocalTest.Location = new Point(3, 3);
            ckbLocalTest.Name = "ckbLocalTest";
            ckbLocalTest.Size = new Size(142, 31);
            ckbLocalTest.Size = new Size(111, 28);
            ckbLocalTest.TabIndex = 0;
            ckbLocalTest.Text = "本地取图";
            ckbLocalTest.UseVisualStyleBackColor = true;
@@ -694,10 +651,9 @@
            // 
            btnAddImages.Dock = DockStyle.Fill;
            btnAddImages.ForeColor = SystemColors.Desktop;
            btnAddImages.Location = new Point(154, 4);
            btnAddImages.Margin = new Padding(4);
            btnAddImages.Location = new Point(120, 3);
            btnAddImages.Name = "btnAddImages";
            btnAddImages.Size = new Size(142, 31);
            btnAddImages.Size = new Size(111, 28);
            btnAddImages.TabIndex = 1;
            btnAddImages.Text = "添加图片";
            btnAddImages.UseVisualStyleBackColor = true;
@@ -707,10 +663,9 @@
            // 
            btnLocalGrab.Dock = DockStyle.Fill;
            btnLocalGrab.ForeColor = SystemColors.Desktop;
            btnLocalGrab.Location = new Point(304, 4);
            btnLocalGrab.Margin = new Padding(4);
            btnLocalGrab.Location = new Point(237, 3);
            btnLocalGrab.Name = "btnLocalGrab";
            btnLocalGrab.Size = new Size(145, 31);
            btnLocalGrab.Size = new Size(112, 28);
            btnLocalGrab.TabIndex = 2;
            btnLocalGrab.Text = "本地取图";
            btnLocalGrab.UseVisualStyleBackColor = true;
@@ -719,27 +674,25 @@
            // tableLayoutPanel10
            // 
            tableLayoutPanel10.ColumnCount = 2;
            tableLayoutPanel10.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 64F));
            tableLayoutPanel10.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 50F));
            tableLayoutPanel10.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel10.Controls.Add(label6, 0, 0);
            tableLayoutPanel10.Controls.Add(txtTimeout, 1, 0);
            tableLayoutPanel10.Dock = DockStyle.Fill;
            tableLayoutPanel10.Location = new Point(4, 427);
            tableLayoutPanel10.Margin = new Padding(4);
            tableLayoutPanel10.Location = new Point(3, 363);
            tableLayoutPanel10.Name = "tableLayoutPanel10";
            tableLayoutPanel10.RowCount = 1;
            tableLayoutPanel10.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel10.Size = new Size(453, 39);
            tableLayoutPanel10.Size = new Size(352, 34);
            tableLayoutPanel10.TabIndex = 32;
            // 
            // label6
            // 
            label6.AutoSize = true;
            label6.Dock = DockStyle.Fill;
            label6.Location = new Point(4, 0);
            label6.Margin = new Padding(4, 0, 4, 0);
            label6.Location = new Point(3, 0);
            label6.Name = "label6";
            label6.Size = new Size(56, 39);
            label6.Size = new Size(44, 34);
            label6.TabIndex = 0;
            label6.Text = "超时";
            label6.TextAlign = ContentAlignment.MiddleCenter;
@@ -747,10 +700,9 @@
            // txtTimeout
            // 
            txtTimeout.Dock = DockStyle.Fill;
            txtTimeout.Location = new Point(68, 4);
            txtTimeout.Margin = new Padding(4);
            txtTimeout.Location = new Point(53, 3);
            txtTimeout.Name = "txtTimeout";
            txtTimeout.Size = new Size(381, 27);
            txtTimeout.Size = new Size(296, 23);
            txtTimeout.TabIndex = 1;
            // 
            // theme_2DCameraForm
@@ -763,12 +715,11 @@
            theme_2DCameraForm.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
            theme_2DCameraForm.Image = (Image)resources.GetObject("theme_2DCameraForm.Image");
            theme_2DCameraForm.Location = new Point(0, 0);
            theme_2DCameraForm.Margin = new Padding(4);
            theme_2DCameraForm.Name = "theme_2DCameraForm";
            theme_2DCameraForm.Padding = new Padding(13, 82, 13, 11);
            theme_2DCameraForm.Padding = new Padding(10, 70, 10, 9);
            theme_2DCameraForm.RoundCorners = true;
            theme_2DCameraForm.Sizable = true;
            theme_2DCameraForm.Size = new Size(1138, 800);
            theme_2DCameraForm.Size = new Size(885, 680);
            theme_2DCameraForm.SmartBounds = true;
            theme_2DCameraForm.StartPosition = FormStartPosition.WindowsDefaultLocation;
            theme_2DCameraForm.TabIndex = 20;
@@ -785,8 +736,7 @@
            controlBox1.EnableMaximizeButton = false;
            controlBox1.EnableMinimizeButton = false;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(1009, 18);
            controlBox1.Margin = new Padding(4);
            controlBox1.Location = new Point(807, 15);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
@@ -800,24 +750,22 @@
            panel_2DCameraForm.Controls.Add(splitContainer1);
            panel_2DCameraForm.Dock = DockStyle.Fill;
            panel_2DCameraForm.EdgeColor = Color.FromArgb(32, 41, 50);
            panel_2DCameraForm.Location = new Point(13, 82);
            panel_2DCameraForm.Margin = new Padding(4);
            panel_2DCameraForm.Location = new Point(10, 70);
            panel_2DCameraForm.Name = "panel_2DCameraForm";
            panel_2DCameraForm.Padding = new Padding(6);
            panel_2DCameraForm.Size = new Size(1112, 707);
            panel_2DCameraForm.Padding = new Padding(5, 5, 5, 5);
            panel_2DCameraForm.Size = new Size(865, 601);
            panel_2DCameraForm.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            panel_2DCameraForm.TabIndex = 20;
            panel_2DCameraForm.Text = "panel2";
            // 
            // CameraForm
            // 
            AutoScaleDimensions = new SizeF(9F, 20F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(1138, 800);
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(885, 680);
            Controls.Add(theme_2DCameraForm);
            FormBorderStyle = FormBorderStyle.None;
            Margin = new Padding(4);
            MinimumSize = new Size(336, 72);
            MinimumSize = new Size(261, 61);
            Name = "CameraForm";
            Text = "2D相机设置界面";
            TransparencyKey = Color.Fuchsia;
LB_VisionProcesses/Cameras/LBCameras/LBCamera.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LB_VisionProcesses.Cameras.LBCameras
{
    /// <summary>
    /// LB3D工业相机实现类
    /// åŸºäºŽPHM6000系列封装
    /// </summary>
    internal class LBCamera : BaseCamera
    {
        public override bool AutoBalanceWhite()
        {
            return true;
        }
        public override bool CloseDevice()
        {
            return true;
        }
        public override bool GetExpouseTime(out double value)
        {
            value = 0;
            return true;
        }
        public override bool GetGain(out double gain)
        {
            gain = 0;
            return true;
        }
        public override bool GetLineStatus(IOLines line, out LineStatus lineStatus)
        {
            lineStatus = LineStatus.Hight;
            return true;
        }
        public override List<string> GetListEnum()
        {
            return new List<string>();
        }
        public override bool GetTriggerDelay(out double delay)
        {
            delay = 0;
            return true;
        }
        public override bool GetTriggerFliter(out double flitertime)
        {
            flitertime = 0;
            return true;
        }
        public override bool GetTriggerMode(out TriggerMode mode, out TriggerSource source)
        {
            mode = TriggerMode.On;
            source = TriggerSource.Line0;
            return true;
        }
        public override bool GetTriggerPolarity(out TriggerPolarity polarity)
        {
            polarity = TriggerPolarity.RisingEdge;
            return true;
        }
        public override bool InitDevice(string SN, object Handle = null)
        {
            return true;
        }
        public override bool SetExpouseTime(double value)
        {
            return true;
        }
        public override bool SetGain(double gain)
        {
            return true;
        }
        public override bool SetLineMode(IOLines line, LineMode mode)
        {
            return true;
        }
        public override bool SetLineStatus(IOLines line, LineStatus linestatus)
        {
            return true;
        }
        public override bool SetTriggerDelay(double delay)
        {
            return true;
        }
        public override bool SetTriggerFliter(double flitertime)
        {
            return true;
        }
        public override bool SetTriggerMode(TriggerMode mode, TriggerSource triggerEnum = TriggerSource.Line0)
        {
            return true;
        }
        public override bool SetTriggerPolarity(TriggerPolarity polarity)
        {
            return true;
        }
        public override bool SoftTrigger()
        {
            return true;
        }
        public override bool StartGrabbing()
        {
            return true;
        }
        public override bool StopGrabbing()
        {
            return true;
        }
    }
}
LB_VisionProcesses/Communicators/CommunicatorForm.Designer.cs
@@ -321,7 +321,7 @@
            controlBox1.EnableMaximizeButton = false;
            controlBox1.EnableMinimizeButton = false;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(479, 12);
            controlBox1.Location = new Point(481, 18);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
@@ -331,8 +331,8 @@
            // 
            // CommunicatorForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(581, 496);
            Controls.Add(btnRuleSend);
            Controls.Add(grpTest);
LB_VisionProcesses/Communicators/CommunicatorForm.resx
@@ -120,25 +120,25 @@
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPiSURBVFhH7VZLiBxlEG7d+IjBKKtktqt6d8kybLqqZyfi
        +lgUXcGooKIXxYBKLgZFQVDwgQhBvAVzUOPBi3iJgnoSCcTLKobEma7qHeOiuB7UiBo1PuIjq9HNSPX0
        rDN/zyzbQjztB9+pv3r8/19dVZ63ilUUwBzzmbppGOpRcKlEcLNwcGfMsE0J7ogj//okws2NamlD83Zv
        wLX9z2h63ulz7I8kDNsSxleF8CMl+EEY/lDCv5TxbyU8oQTHlfCIEL5kSbh+CqPpeafVIxgWwieUcU4I
        /lTGZl8SnEgI3pBxPzTbOQ4Gkyi4pxEGFTuE639ZpFfNcIsS1LJT5gN28xdl3Cnj/oVmP7t59Hwl3K0M
        C8owL4zbG9XSOjdOT5hQCB5Rxu97BMqT4BsJ4X6Z9M8x+483XXCuEO5KnyjTCOGvSvjMAQ4G3XhdODAV
        rBWGHUL4Wy5Qb34Sk3/rzLS3xuwtCSV8ShmOu1p7wpjwBRkbO8+Nm6LpeQMxwX3Suk43ULczxpPKKLOR
        f+WO7H1bz4YPpaftYdMiLMQET5rWje/FhJfHhF/kjXJcVIZ3tIJVKzazfc3zBpTwLmU82kPfRWH8Lg79
        67qC76uW1mkEr2Qnyxl1GC8K49uNEMbbtpZEjeBaXVnymR/Y2/UUNQqutn/bFTpcVMZ9ykF5ydDzvEMV
        P4wZtYe+L+2Z4hBvSh3YP6rs71zu9PZNGN7tPLnBqloIXl/Oth+F4MW0eO0qlPA9V9BFwtlZhos6g89M
        T69JGB/Xjt+tIDXtG41qaaMwftZDkBG+TAi2tAuuDaHhq4Thq7x+pYSvNRoiL54IJqwy84L05L8LwwPu
        cLFOJ4Rv5vQFKAQ/xRxc1jeB9F0J9rxfHlzfGdxQD2GrJefaFGI7gfrEyJgwfp4X4GEN/Uk3+H5rtQx7
        c/qCFIIjNSpFrcHBcLDro1U94a52i+1EHPoXC+VvrCiF4cNDlY2ltIsJwXOO4KiEOOUGN9jykc7/Hk4L
        kWDPUkuWKLhBGY79+xH32824wQ3WcsWWENdhAdqktG1qyakVWszw1pKI8GW7ma7IGbQydImNYNdpIRLU
        4nDE73JcJ9gihN9mCexuTzkX2dR7TAh+zDleAa0N1wnvdvuKJ5OTZ9j6JQwL1l57jswMM6OjZ8eEN0q6
        I8KnynjMVjKbF1lbPtlq3ykXW1tVuh39LITP992O5suD65XhWSH4QGlo1P3uYr5cPst0thckjLcp473K
        8LBYiyb/0YTwQdsLNYStlnASwRX9amsJaZcL8WkJcXu/OjjlODwVrI0jvOZgZUPJ/fa/wYrEnQGrOBX4
        B6XRFGacFF+7AAAAAElFTkSuQmCC
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        wgAADsIBFShKgAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
        NNs5DgaTKLinEQYVO4Trf1mkV81wixLUslPmA3bzF2XcKeP+hWY/u3n0fCXcrQwLyjAvjNsb1dI6N05P
        mFAIHlHG73sEypPgGwnhfpn0zzH7jzddcK4Q7kqfKNMI4a9K+MwBDgbdeF04MBWsFYYdQvhbLlBvfhKT
        f+vMtLfG7C0JJXxKGY67WnvCmPAFGRs7z42boul5AzHBfdK6TjdQtzPGk8oos5F/5Y7sfVvPhg+lp+1h
        0yIsxARPmtaN78WEl8eEX+SNclxUhne0glUrNrN9zfMGlPAuZTzaQ99FYfwuDv3ruoLvq5bWaQSvZCfL
        GXUYLwrj240Qxtu2lkSN4FpdWfKZH9jb9RQ1Cq62f9sVOlxUxn3KQXnJ0PO8QxU/jBm1h74v7ZniEG9K
        Hdg/quzvXO709k0Y3u08ucGqWgheX862H4XgxbR47SqU8D1X0EXC2VmGizqDz0xPr0kYH9eO360gNe0b
        jWppozB+1kOQEb5MCLa0C64NoeGrhOGrvH6lhK81GiIvnggmrDLzgvTkvwvDA+5wsU4nhG/m9AUoBD/F
        HFzWN4H0XQn2vF8eXN8Z3FAPYasl59oUYjuB+sTImDB+nhfgYQ39STf4fmu1DHtz+oIUgiM1KkWtwcFw
        sOujVT3hrnaL7UQc+hcL5W+sKIXhw0OVjaW0iwnBc47gqIQ45QY32PKRzv8eTguRYM9SS5YouEEZjv37
        EffbzbjBDdZyxZYQ12EB2qS0bWrJqRVazPDWkojwZbuZrsgZtDJ0iY1g12khEtTicMTvclwn2CKE32YJ
        7G5PORfZ1HtMCH7MOV4BrQ3XCe92+4onk5Nn2PolDAvWXnuOzAwzo6Nnx4Q3SrojwqfKeMxWMpsXWVs+
        2WrfKRdbW1W6Hf0shM/33Y7my4PrleFZIfhAaWjU/e5ivlw+y3S2FySMtynjvcrwsFiLJv/RhPBB2ws1
        hK2WcBLBFf1qawlplwvxaQlxe786OOU4PBWsjSO85mBlQ8n99r/BisSdAas4FfgHpdEUZpwUX7sAAAAA
        SUVORK5CYII=
</value>
  </data>
</root>
LB_VisionProcesses/Communicators/MES/LBMES.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LB_VisionProcesses.Communicators.MES
{
    internal class LBMES
    {
    }
}
LB_VisionProcesses/Communicators/SiemensS7/SiemensLBS7.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LB_VisionProcesses.Communicators.SiemensS7
{
    internal class SiemensLBS7
    {
    }
}
LB_VisionProcesses/Forms/GlobalVarControl.Designer.cs
@@ -79,8 +79,8 @@
            // 
            // GlobalVarControl
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(tableLayoutPanel1);
            Name = "GlobalVarControl";
            Size = new Size(578, 32);
LB_VisionProcesses/Forms/GlobalVarForm.Designer.cs
@@ -30,12 +30,12 @@
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GlobalVarForm));
            theme_GlobalVarForm = new ReaLTaiizor.Forms.ThemeForm();
            controlBox_GlobalVarForm = new ReaLTaiizor.Controls.ControlBox();
            controlsPanel = new ReaLTaiizor.Controls.Panel();
            tlp_GlobalVarForm = new Sunny.UI.UITableLayoutPanel();
            tlp_GlobalVarFormOperator = new Sunny.UI.UITableLayoutPanel();
            btn_Delete = new ReaLTaiizor.Controls.Button();
            btn_Add = new ReaLTaiizor.Controls.Button();
            controlsPanel = new ReaLTaiizor.Controls.Panel();
            controlBox_GlobalVarForm = new ReaLTaiizor.Controls.ControlBox();
            theme_GlobalVarForm.SuspendLayout();
            tlp_GlobalVarForm.SuspendLayout();
            tlp_GlobalVarFormOperator.SuspendLayout();
@@ -59,37 +59,6 @@
            theme_GlobalVarForm.StartPosition = FormStartPosition.WindowsDefaultLocation;
            theme_GlobalVarForm.TabIndex = 0;
            theme_GlobalVarForm.Text = "全局变量";
            //
            // controlBox_GlobalVarForm
            //
            controlBox_GlobalVarForm.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            controlBox_GlobalVarForm.BackColor = Color.FromArgb(32, 34, 37);
            controlBox_GlobalVarForm.CloseHoverColor = Color.FromArgb(230, 17, 35);
            controlBox_GlobalVarForm.DefaultLocation = true;
            controlBox_GlobalVarForm.EnableHoverHighlight = true;
            controlBox_GlobalVarForm.EnableMaximizeButton = false;
            controlBox_GlobalVarForm.EnableMinimizeButton = false;
            controlBox_GlobalVarForm.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox_GlobalVarForm.Location = new Point(700, 18);
            controlBox_GlobalVarForm.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox_GlobalVarForm.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox_GlobalVarForm.Name = "controlBox_GlobalVarForm";
            controlBox_GlobalVarForm.Size = new Size(90, 25);
            controlBox_GlobalVarForm.TabIndex = 1;
            //
            // controlsPanel
            //
            controlsPanel.BackColor = Color.FromArgb(39, 51, 63);
            controlsPanel.Dock = DockStyle.Fill;
            controlsPanel.EdgeColor = Color.FromArgb(32, 41, 50);
            controlsPanel.Location = new Point(3, 3);
            controlsPanel.Name = "controlsPanel";
            controlsPanel.Padding = new Padding(5);
            controlsPanel.Size = new Size(774, 455);
            controlsPanel.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            controlsPanel.TabIndex = 0;
            controlsPanel.Text = "panel1";
            controlsPanel.SizeChanged += controlsPanel_SizeChanged;
            // 
            // tlp_GlobalVarForm
            // 
@@ -169,10 +138,41 @@
            btn_Add.TextAlignment = StringAlignment.Center;
            btn_Add.Click += btn_Add_Click;
            // 
            // controlsPanel
            //
            controlsPanel.BackColor = Color.FromArgb(39, 51, 63);
            controlsPanel.Dock = DockStyle.Fill;
            controlsPanel.EdgeColor = Color.FromArgb(32, 41, 50);
            controlsPanel.Location = new Point(3, 3);
            controlsPanel.Name = "controlsPanel";
            controlsPanel.Padding = new Padding(5);
            controlsPanel.Size = new Size(774, 455);
            controlsPanel.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            controlsPanel.TabIndex = 0;
            controlsPanel.Text = "panel1";
            controlsPanel.SizeChanged += controlsPanel_SizeChanged;
            //
            // controlBox_GlobalVarForm
            //
            controlBox_GlobalVarForm.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            controlBox_GlobalVarForm.BackColor = Color.FromArgb(32, 34, 37);
            controlBox_GlobalVarForm.CloseHoverColor = Color.FromArgb(230, 17, 35);
            controlBox_GlobalVarForm.DefaultLocation = true;
            controlBox_GlobalVarForm.EnableHoverHighlight = true;
            controlBox_GlobalVarForm.EnableMaximizeButton = false;
            controlBox_GlobalVarForm.EnableMinimizeButton = false;
            controlBox_GlobalVarForm.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox_GlobalVarForm.Location = new Point(700, 18);
            controlBox_GlobalVarForm.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox_GlobalVarForm.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox_GlobalVarForm.Name = "controlBox_GlobalVarForm";
            controlBox_GlobalVarForm.Size = new Size(90, 25);
            controlBox_GlobalVarForm.TabIndex = 1;
            //
            // GlobalVarForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(800, 600);
            Controls.Add(theme_GlobalVarForm);
            FormBorderStyle = FormBorderStyle.None;
LB_VisionProcesses/LB_VisionProcesses.csproj
@@ -37,9 +37,6 @@
  <ItemGroup>
    <Folder Include="Alogrithms\VisualLargeModel\" />
    <Folder Include="Cameras\LBCameras\" />
    <Folder Include="Communicators\SiemensS7\" />
    <Folder Include="Communicators\MES\" />
  </ItemGroup>
  <ItemGroup>
LB_VisionProcesses/ProcessEditForm.Designer.cs
@@ -85,8 +85,8 @@
            // 
            // ProcessEditForm
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(944, 601);
            Controls.Add(theme_AlgorithmForm);
            FormBorderStyle = FormBorderStyle.None;
LB_VisionProcesses/ProcessEditForm.resx
@@ -121,7 +121,7 @@
  <data name="theme_AlgorithmForm.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        wQAADsEBuJFr7QAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        wAAADsABataJCQAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
LB_VisionProcesses/Processes/ScriptTool/ScriptToolEdit.Designer.cs
@@ -241,7 +241,7 @@
            btnRunCode.Image = (Image)resources.GetObject("btnRunCode.Image");
            btnRunCode.ImageTransparentColor = Color.Magenta;
            btnRunCode.Name = "btnRunCode";
            btnRunCode.Size = new Size(36, 22);
            btnRunCode.Size = new Size(46, 25);
            btnRunCode.Text = "运行";
            btnRunCode.Click += btnRunCode_Click;
            // 
@@ -274,6 +274,8 @@
            // 
            // ScriptToolEdit
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleMode = AutoScaleMode.Dpi;
            Controls.Add(panel1);
            Controls.Add(statusStrip1);
            Controls.Add(ToolsStrip);
LB_VisionProcesses/ref/MVSDKmd.dll
Binary files differ