轮胎外观检测添加思谋语义分割模型检测工具
ed2cb324d534291a221bb5a8cabe8ff48b3a46f3..eda17eddf88e6108cadbf8dcef5c2195c1a7b708
2026-04-01 C3204
提交VS生成临时文件
eda17e 对比 | 目录
2026-04-01 C3204
集成曹工添加的读码器功能以及工具集
4d6c9a 对比 | 目录
已修改123个文件
已添加81个文件
已删除1个文件
11827 ■■■■■ 文件已修改
LB_SmartVision/.vs/LB_SmartVision/CopilotIndices/17.14.1593.33849/CodeChunks.db 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/CopilotIndices/17.14.1593.33849/SemanticSymbols.db 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/DesignTimeBuild/.dtbcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/0a6bdf73-a39c-4518-8e0c-a8f56e267a80.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/21a6d510-514b-45b0-a16e-6f68637ad30d.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/230aacfd-8986-4989-a241-19f43a34c421.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/86cd2fd8-585b-42a8-98c5-9f4c25100d24.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/98ac23f6-fbf4-4a36-8116-292cb0f89b94.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/d829e6c3-9220-4089-bfdf-acafa50d5245.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/v17/.suo 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/v17/DocumentLayout.backup.json 462 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/v17/DocumentLayout.json 449 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/v17/fileList.bin 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/ProjectEvaluation/lb_smartvision.metadata.v9.bin 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/ProjectEvaluation/lb_smartvision.projects.v9.bin 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/ProjectEvaluation/lb_smartvision.strings.v9.bin 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReaderForm.Designer.cs 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReaderForm.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReaderForm.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReadersEditPage.Designer.cs 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReadersEditPage.cs 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReadersEditPage.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/CreateBarcodeReaderForm.Designer.cs 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/CreateBarcodeReaderForm.cs 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/BarcodeReaderPage/CreateBarcodeReaderForm.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/GlobalVar.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/LB_SmartVision.csproj.user 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/ProcessRun/ProcessContext.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/VisionForm.cs 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/EasyIDSDK_Net.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/EasyIDSDK_Net.xml 1812 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.deps.json 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.exe 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.exe 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionControls.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionControls.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionFlowNode.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionFlowNode.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionProcesses.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionProcesses.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Debug_Log/2026-03/2026-03-31.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Debug_Log/2026-04/2026-04-01.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Error_Log/2026-03/2026-03-31.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Error_Log/2026-04/2026-04-01.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Fatal/2026-03/2026-03-31.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Fatal/2026-04/2026-04-01.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Run_Log/2026-03/2026-03-31.log 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Run_Log/2026-04/2026-04-01.log 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Warn/2026-03/2026-03-31.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/Log/Warn/2026-04/2026-04-01.log 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/所有产品/Product0/A_BarcodeReaderConnections.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/生产数据/20260331/流程0.csv 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/生产数据/20260331/流程1.csv 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/生产数据/20260401/流程0.csv 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/bin/Debug/net8.0-windows/生产数据/20260401/流程1.csv 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.Forms.Pages.BarcodeReaderPage.BarcodeReaderForm.resources 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.Forms.Pages.BarcodeReaderPage.BarcodeReadersEditPage.resources 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.Forms.Pages.BarcodeReaderPage.CreateBarcodeReaderForm.resources 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.FileListAbsolute.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.GenerateResource.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/apphost.exe 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/ref/LB_SmartVision.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/obj/Debug/net8.0-windows/refint/LB_SmartVision.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/ref/LB_SmartVisionCameraDevice.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/refint/LB_SmartVisionCameraDevice.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/ImageEnhancementData.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/ImageEnhancementManager.cs 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/ref/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionCommon/obj/Debug/net8.0-windows/refint/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.exe 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.AssemblyInfo.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.AssemblyInfoInputs.cache 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.GeneratedMSBuildEditorConfig.editorconfig 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.GlobalUsings.g.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.assets.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.csproj.BuildWithSkipAnalyzers 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/apphost.exe 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/ref/LB_SmartVisionLoginUI.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/refint/LB_SmartVisionLoginUI.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_VisionControls.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_VisionControls.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/ref/LB_VisionControls.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionControls/obj/Debug/net8.0-windows7.0/refint/LB_VisionControls.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/IFlowContext.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_VisionFlowNode.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_VisionFlowNode.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/ref/LB_VisionFlowNode.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/refint/LB_VisionFlowNode.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementTool.cs 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.Designer.cs 610 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs 574 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.resx 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderBase.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderFactory.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.Designer.cs 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.cs 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.resx 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/Huayray/HRBarcodeReader.cs 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/IBarcodeReader.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/IProcess.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/LB_VisionProcesses.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/LB_VisionProcesses.csproj.user 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Processes/BarcodeReaderProcess.cs 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/EasyIDSDK_Net.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/EasyIDSDK_Net.xml 1812 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCameraDevice.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCameraDevice.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionControls.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionControls.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionProcesses.deps.json 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionProcesses.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionProcesses.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.Alogrithms.Halcon.HImageEnhancementToolEdit.resources 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.AssemblyInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.AssemblyInfoInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.BarcodeReaders.BarcodeReaderForm.resources 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.FileListAbsolute.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.GenerateResource.cache 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.designer.deps.json 178 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.pdb 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/ref/LB_VisionProcesses.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/refint/LB_VisionProcesses.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/CLAllSerial_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/CLProtocol_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/CLSerCOM.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/EasyID.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/EasyIDSDK_Net.XML 1812 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/EasyIDSDK_Net.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/GCBase_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/GenApi_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/GenCP_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/ImageConvert.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/ImageSave.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/Log_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/MVlog4cppmd.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/MathParser_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/NodeMapData_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/SDKLOG_default.properties 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/SharpnessDetection64.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/VideoRender.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/XmlParser_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/clserVsp.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/iImageProcessing64.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/libwinpthread-1.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/ref/log4cpp_MD_VC120_v3_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/.vs/LB_SmartVision/CopilotIndices/17.14.1593.33849/CodeChunks.db
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/CopilotIndices/17.14.1593.33849/SemanticSymbols.db
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/DesignTimeBuild/.dtbcache.v2
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/0a6bdf73-a39c-4518-8e0c-a8f56e267a80.vsidx
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/21a6d510-514b-45b0-a16e-6f68637ad30d.vsidx
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/230aacfd-8986-4989-a241-19f43a34c421.vsidx
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/86cd2fd8-585b-42a8-98c5-9f4c25100d24.vsidx
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/98ac23f6-fbf4-4a36-8116-292cb0f89b94.vsidx
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/FileContentIndex/d829e6c3-9220-4089-bfdf-acafa50d5245.vsidx
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/v17/.futdcache.v2
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/v17/.suo
Binary files differ
LB_SmartVision/.vs/LB_SmartVision/v17/DocumentLayout.backup.json
@@ -3,12 +3,103 @@
  "WorkspaceRootPath": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtooledit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\iprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\barcodereaderform.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderform.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtooledit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\processrun\\processcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:processrun\\processcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\basealgorithm\\talgorithm.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{81657A9F-621D-F158-837F-4470F21E5004}|..\\LB_VisionFlowNode\\LB_VisionFlowNode.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionflownode\\iflowcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\hblobtool\\hblobtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\huayray\\hrbarcodereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\ibarcodereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\barcodereaderprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\globalvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:globalvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtooledit.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\recordtool\\recordtooledit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\recordtool\\recordcontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\recordtool\\recordtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\cameras\\lbcameras\\lbcamera.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\cameras\\hrcameras\\hrcamera.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\lb_visionprocesses.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    }
  ],
  "DocumentGroupContainers": [
@@ -18,7 +109,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 610,
          "SelectedChildIndex": 1,
          "SelectedChildIndex": 18,
          "Children": [
            {
              "$type": "Bookmark",
@@ -26,28 +117,375 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 3,
              "Title": "BarcodeReaderForm.Designer.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "ViewState": "AgIAABMAAAAAAAAAAAAAwBYAAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:17:10.303Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "ProcessContext.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\ProcessRun\\ProcessContext.cs",
              "RelativeDocumentMoniker": "ProcessRun\\ProcessContext.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\ProcessRun\\ProcessContext.cs",
              "RelativeToolTip": "ProcessRun\\ProcessContext.cs",
              "ViewState": "AgIAAPoAAAAAAAAAAADgvwMBAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:14:17.104Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "HBlobTool.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:12:59.344Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "IFlowContext.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionFlowNode\\IFlowContext.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionFlowNode\\IFlowContext.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionFlowNode\\IFlowContext.cs",
              "RelativeToolTip": "..\\LB_VisionFlowNode\\IFlowContext.cs",
              "ViewState": "AgIAACcBAAAAAAAAAAAIwC4BAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:11:55.296Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "BarcodeReaderFactory.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "ViewState": "AgIAAA4AAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:07:45.401Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "TAlgorithm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "ViewState": "AgIAACQWAAAAAAAAAAAawIYXAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T01:59:37.978Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "IProcess.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\IProcess.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\IProcess.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\IProcess.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\IProcess.cs",
              "ViewState": "AgIAACAAAAAAAAAAAADwvyQAAAAYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:49:16.422Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "VisionForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs",
              "RelativeDocumentMoniker": "VisionForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs",
              "RelativeToolTip": "VisionForm.cs",
              "ViewState": "AgIAADwEAAAAAAAAAAAEwE0EAAAPAAAAAAAAAA==",
              "ViewState": "AgIAAIAAAAAAAAAAAAAAwGsAAAAvAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-30T08:25:28.342Z",
              "WhenOpened": "2026-04-01T00:35:41.829Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "GlobalVar.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\GlobalVar.cs",
              "RelativeDocumentMoniker": "GlobalVar.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\GlobalVar.cs",
              "RelativeToolTip": "GlobalVar.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAAQwC0AAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:34:18.376Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "BarcodeReadersEditPage.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:34.736Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "CreateBarcodeReaderForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "ViewState": "AgIAACYAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:30.766Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "CreateBarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:28.87Z",
              "EditorCaption": " [\u8BBE\u8BA1]"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "BarcodeReadersEditPage.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "ViewState": "AgIAACsAAAAAAAAAAAAIwDsAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:09.471Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "BarcodeReaderForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:06.623Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "HImageEnhancementToolEdit.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "ViewState": "AgIAAB8AAAAAAAAAAAAAwA0AAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:48:13.473Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "VisionForm.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs",
              "RelativeDocumentMoniker": "VisionForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "VisionForm.cs [\u8BBE\u8BA1]",
              "Title": "HImageEnhancementToolEdit.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-30T08:23:40.582Z",
              "WhenOpened": "2026-03-31T05:48:09.415Z",
              "EditorCaption": " [\u8BBE\u8BA1]"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "HImageEnhancementToolEdit.Designer.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:48:08.459Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "HImageEnhancementTool.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "ViewState": "AgIAACUAAAAAAAAAAAAlwBQAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:47:36.448Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "BarcodeReaderProcess.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "ViewState": "AgIAABYAAAAAAAAAAAAIwA4AAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:45:56.595Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "BarcodeReaderForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "ViewState": "AgIAANEAAAAAAAAAAAAswA4AAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:43:49.585Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "BarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:43:15.84Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "BarcodeReaderBase.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAAAwwAsAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:36.276Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "IBarcodeReader.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwoAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:22.392Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "Title": "RecordToolEdit.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:14.878Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "Title": "RecordControl.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:10.378Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "Title": "RecordTool.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:09.596Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "Title": "LBCamera.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:41:43.083Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "Title": "HRCamera.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:41:36.306Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "HRBarcodeReader.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "ViewState": "AgIAAKQAAAAAAAAAAAAcwA4AAAAFAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:41:06.409Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "LB_VisionProcesses.csproj",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "RelativeToolTip": "..\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2026-03-31T05:36:50.69Z"
            }
          ]
        },
LB_SmartVision/.vs/LB_SmartVision/v17/DocumentLayout.json
@@ -3,12 +3,103 @@
  "WorkspaceRootPath": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtooledit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\iprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\barcodereaderform.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderform.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtooledit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\processrun\\processcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:processrun\\processcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\basealgorithm\\talgorithm.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{81657A9F-621D-F158-837F-4470F21E5004}|..\\LB_VisionFlowNode\\LB_VisionFlowNode.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionflownode\\iflowcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\hblobtool\\hblobtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\huayray\\hrbarcodereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\ibarcodereader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\barcodereaderprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:visionform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\globalvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:globalvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderseditpage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\createbarcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_smartvision\\forms\\pages\\barcodereaderpage\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{CCC2E421-B887-0A0A-E6B0-3D15411364FD}|LB_SmartVision.csproj|solutionrelative:forms\\pages\\barcodereaderpage\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\alogrithms\\halcon\\2d\\himageenhancementtool\\himageenhancementtooledit.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\barcodereaders\\barcodereaderform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\recordtool\\recordtooledit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\recordtool\\recordcontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\processes\\recordtool\\recordtool.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\cameras\\lbcameras\\lbcamera.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\cameras\\hrcameras\\hrcamera.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{E51B9948-EB07-BAEF-424D-5B0332375B34}|..\\LB_VisionProcesses\\LB_VisionProcesses.csproj|d:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\smartvision\\lb_visionprocesses\\lb_visionprocesses.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    }
  ],
  "DocumentGroupContainers": [
@@ -18,7 +109,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 610,
          "SelectedChildIndex": 1,
          "SelectedChildIndex": 18,
          "Children": [
            {
              "$type": "Bookmark",
@@ -26,27 +117,361 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 3,
              "Title": "BarcodeReaderForm.Designer.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.Designer.cs",
              "ViewState": "AgIAABMAAAAAAAAAAAAAwBYAAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:17:10.303Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "ProcessContext.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\ProcessRun\\ProcessContext.cs",
              "RelativeDocumentMoniker": "ProcessRun\\ProcessContext.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\ProcessRun\\ProcessContext.cs",
              "RelativeToolTip": "ProcessRun\\ProcessContext.cs",
              "ViewState": "AgIAAPoAAAAAAAAAAADgvwMBAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:14:17.104Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "HBlobTool.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HBlobTool\\HBlobTool.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:12:59.344Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "IFlowContext.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionFlowNode\\IFlowContext.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionFlowNode\\IFlowContext.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionFlowNode\\IFlowContext.cs",
              "RelativeToolTip": "..\\LB_VisionFlowNode\\IFlowContext.cs",
              "ViewState": "AgIAACcBAAAAAAAAAAAIwC4BAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:11:55.296Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "BarcodeReaderFactory.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderFactory.cs",
              "ViewState": "AgIAAA4AAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T02:07:45.401Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "TAlgorithm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\BaseAlgorithm\\TAlgorithm.cs",
              "ViewState": "AgIAACQWAAAAAAAAAAAawIYXAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T01:59:37.978Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "IProcess.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\IProcess.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\IProcess.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\IProcess.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\IProcess.cs",
              "ViewState": "AgIAACAAAAAAAAAAAADwvyQAAAAYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:49:16.422Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "VisionForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs",
              "RelativeDocumentMoniker": "VisionForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs",
              "RelativeToolTip": "VisionForm.cs",
              "ViewState": "AgIAAA8AAAAAAAAAAAAAABMAAAAsAAAAAAAAAA==",
              "ViewState": "AgIAAIAAAAAAAAAAAAAAwGsAAAAvAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-30T08:25:28.342Z",
              "WhenOpened": "2026-04-01T00:35:41.829Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "GlobalVar.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\GlobalVar.cs",
              "RelativeDocumentMoniker": "GlobalVar.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\GlobalVar.cs",
              "RelativeToolTip": "GlobalVar.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAAQwC0AAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:34:18.376Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "BarcodeReadersEditPage.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:34.736Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "CreateBarcodeReaderForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "ViewState": "AgIAACYAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:30.766Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "CreateBarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\CreateBarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:28.87Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "BarcodeReadersEditPage.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReadersEditPage.cs",
              "ViewState": "AgIAACsAAAAAAAAAAAAIwDsAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:09.471Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "BarcodeReaderForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "RelativeToolTip": "Forms\\Pages\\BarcodeReaderPage\\BarcodeReaderForm.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-01T00:32:06.623Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "HImageEnhancementToolEdit.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "ViewState": "AgIAAB8AAAAAAAAAAAAAwA0AAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:48:13.473Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "VisionForm.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs",
              "RelativeDocumentMoniker": "VisionForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_SmartVision\\VisionForm.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "VisionForm.cs [\u8BBE\u8BA1]",
              "Title": "HImageEnhancementToolEdit.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-30T08:23:40.582Z"
              "WhenOpened": "2026-03-31T05:48:09.415Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "HImageEnhancementToolEdit.Designer.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementToolEdit.Designer.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:48:08.459Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "HImageEnhancementTool.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Alogrithms\\Halcon\\2D\\HImageEnhancementTool\\HImageEnhancementTool.cs",
              "ViewState": "AgIAAAEAAAAAAAAAAAAAABQAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:47:36.448Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "BarcodeReaderProcess.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\BarcodeReaderProcess.cs",
              "ViewState": "AgIAABYAAAAAAAAAAAAIwA4AAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:45:56.595Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "BarcodeReaderForm.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "ViewState": "AgIAANEAAAAAAAAAAAAswA4AAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:43:49.585Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "BarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderForm.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:43:15.84Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "BarcodeReaderBase.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\BarcodeReaderBase.cs",
              "ViewState": "AgIAAAgAAAAAAAAAAAAwwAsAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:36.276Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "IBarcodeReader.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\IBarcodeReader.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwoAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:22.392Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "Title": "RecordToolEdit.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordToolEdit.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:14.878Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "Title": "RecordControl.cs [\u8BBE\u8BA1]",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs [\u8BBE\u8BA1]",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordControl.cs [\u8BBE\u8BA1]",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:10.378Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "Title": "RecordTool.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Processes\\RecordTool\\RecordTool.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:42:09.596Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "Title": "LBCamera.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Cameras\\LBCameras\\LBCamera.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:41:43.083Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "Title": "HRCamera.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\Cameras\\HRCameras\\HRCamera.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:41:36.306Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "HRBarcodeReader.cs",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "RelativeToolTip": "..\\LB_VisionProcesses\\BarcodeReaders\\Huayray\\HRBarcodeReader.cs",
              "ViewState": "AgIAAKQAAAAAAAAAAAAcwA4AAAAFAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-03-31T05:41:06.409Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "LB_VisionProcesses.csproj",
              "DocumentMoniker": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "RelativeDocumentMoniker": "..\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "ToolTip": "D:\\\u9879\u76EE\\\u8F6E\u80CE\u5916\u89C2\u68C0\u6D4B\\SmartVision\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "RelativeToolTip": "..\\LB_VisionProcesses\\LB_VisionProcesses.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2026-03-31T05:36:50.69Z"
            }
          ]
        },
LB_SmartVision/.vs/LB_SmartVision/v17/fileList.bin
Binary files differ
LB_SmartVision/.vs/ProjectEvaluation/lb_smartvision.metadata.v9.bin
Binary files differ
LB_SmartVision/.vs/ProjectEvaluation/lb_smartvision.projects.v9.bin
Binary files differ
LB_SmartVision/.vs/ProjectEvaluation/lb_smartvision.strings.v9.bin
Binary files differ
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReaderForm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
using System.Drawing;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.BarcodeReaderPage
{
    partial class BarcodeReaderForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            uiGroupBoxImage = new GroupBox();
            uiGroupBoxControl = new GroupBox();
            uiGroupBoxResult = new GroupBox();
            uiComboBoxBrand = new ComboBox();
            uiLabel1 = new Label();
            uiRadioButtonSoftTrigger = new RadioButton();
            uiRadioButtonHardTrigger = new RadioButton();
            uiButtonStartGrabbing = new Button();
            uiButtonStopGrabbing = new Button();
            uiButtonSoftTrigger = new Button();
            uiListBoxBarcodes = new ListBox();
            uiTextBoxResult = new TextBox();
            uiLabel2 = new Label();
            uiButtonClear = new Button();
            uiGroupBoxImage.SuspendLayout();
            uiGroupBoxControl.SuspendLayout();
            uiGroupBoxResult.SuspendLayout();
            SuspendLayout();
            //
            // uiGroupBoxImage
            //
            uiGroupBoxImage.BackColor = Color.FromArgb(32, 41, 50);
            uiGroupBoxImage.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiGroupBoxImage.ForeColor = Color.White;
            uiGroupBoxImage.Location = new Point(12, 12);
            uiGroupBoxImage.Margin = new Padding(4, 5, 4, 5);
            uiGroupBoxImage.Name = "uiGroupBoxImage";
            uiGroupBoxImage.Padding = new Padding(4, 5, 4, 5);
            uiGroupBoxImage.Size = new Size(400, 400);
            uiGroupBoxImage.TabIndex = 0;
            uiGroupBoxImage.TabStop = false;
            uiGroupBoxImage.Text = "图像预览";
            //
            // uiGroupBoxControl
            //
            uiGroupBoxControl.BackColor = Color.FromArgb(32, 41, 50);
            uiGroupBoxControl.Controls.Add(uiButtonSoftTrigger);
            uiGroupBoxControl.Controls.Add(uiButtonStopGrabbing);
            uiGroupBoxControl.Controls.Add(uiButtonStartGrabbing);
            uiGroupBoxControl.Controls.Add(uiRadioButtonHardTrigger);
            uiGroupBoxControl.Controls.Add(uiRadioButtonSoftTrigger);
            uiGroupBoxControl.Controls.Add(uiComboBoxBrand);
            uiGroupBoxControl.Controls.Add(uiLabel1);
            uiGroupBoxControl.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiGroupBoxControl.ForeColor = Color.White;
            uiGroupBoxControl.Location = new Point(430, 12);
            uiGroupBoxControl.Margin = new Padding(4, 5, 4, 5);
            uiGroupBoxControl.Name = "uiGroupBoxControl";
            uiGroupBoxControl.Padding = new Padding(4, 5, 4, 5);
            uiGroupBoxControl.Size = new Size(350, 200);
            uiGroupBoxControl.TabIndex = 1;
            uiGroupBoxControl.TabStop = false;
            uiGroupBoxControl.Text = "控制面板";
            //
            // uiGroupBoxResult
            //
            uiGroupBoxResult.BackColor = Color.FromArgb(32, 41, 50);
            uiGroupBoxResult.Controls.Add(uiButtonClear);
            uiGroupBoxResult.Controls.Add(uiLabel2);
            uiGroupBoxResult.Controls.Add(uiTextBoxResult);
            uiGroupBoxResult.Controls.Add(uiListBoxBarcodes);
            uiGroupBoxResult.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiGroupBoxResult.ForeColor = Color.White;
            uiGroupBoxResult.Location = new Point(430, 230);
            uiGroupBoxResult.Margin = new Padding(4, 5, 4, 5);
            uiGroupBoxResult.Name = "uiGroupBoxResult";
            uiGroupBoxResult.Padding = new Padding(4, 5, 4, 5);
            uiGroupBoxResult.Size = new Size(350, 280);
            uiGroupBoxResult.TabIndex = 2;
            uiGroupBoxResult.TabStop = false;
            uiGroupBoxResult.Text = "读码结果";
            //
            // uiComboBoxBrand
            //
            uiComboBoxBrand.DropDownStyle = ComboBoxStyle.DropDownList;
            uiComboBoxBrand.FormattingEnabled = true;
            uiComboBoxBrand.Location = new Point(90, 50);
            uiComboBoxBrand.Name = "uiComboBoxBrand";
            uiComboBoxBrand.Size = new Size(150, 28);
            uiComboBoxBrand.TabIndex = 0;
            //
            // uiLabel1
            //
            uiLabel1.Location = new Point(15, 50);
            uiLabel1.Name = "uiLabel1";
            uiLabel1.Size = new Size(70, 29);
            uiLabel1.TabIndex = 1;
            uiLabel1.Text = "品牌:";
            uiLabel1.TextAlign = ContentAlignment.MiddleRight;
            //
            // uiRadioButtonSoftTrigger
            //
            uiRadioButtonSoftTrigger.Checked = true;
            uiRadioButtonSoftTrigger.Location = new Point(20, 90);
            uiRadioButtonSoftTrigger.Name = "uiRadioButtonSoftTrigger";
            uiRadioButtonSoftTrigger.Size = new Size(100, 29);
            uiRadioButtonSoftTrigger.TabIndex = 2;
            uiRadioButtonSoftTrigger.TabStop = true;
            uiRadioButtonSoftTrigger.Text = "软触发";
            uiRadioButtonSoftTrigger.UseVisualStyleBackColor = true;
            uiRadioButtonSoftTrigger.CheckedChanged += uiRadioButtonSoftTrigger_CheckedChanged;
            //
            // uiRadioButtonHardTrigger
            //
            uiRadioButtonHardTrigger.Location = new Point(140, 90);
            uiRadioButtonHardTrigger.Name = "uiRadioButtonHardTrigger";
            uiRadioButtonHardTrigger.Size = new Size(100, 29);
            uiRadioButtonHardTrigger.TabIndex = 3;
            uiRadioButtonHardTrigger.Text = "硬触发";
            uiRadioButtonHardTrigger.UseVisualStyleBackColor = true;
            //
            // uiButtonStartGrabbing
            //
            uiButtonStartGrabbing.BackColor = Color.FromArgb(0, 150, 136);
            uiButtonStartGrabbing.ForeColor = Color.White;
            uiButtonStartGrabbing.Location = new Point(20, 140);
            uiButtonStartGrabbing.Name = "uiButtonStartGrabbing";
            uiButtonStartGrabbing.Size = new Size(100, 35);
            uiButtonStartGrabbing.TabIndex = 4;
            uiButtonStartGrabbing.Text = "开始采集";
            uiButtonStartGrabbing.UseVisualStyleBackColor = false;
            uiButtonStartGrabbing.Click += uiButtonStartGrabbing_Click;
            //
            // uiButtonStopGrabbing
            //
            uiButtonStopGrabbing.BackColor = Color.FromArgb(255, 87, 34);
            uiButtonStopGrabbing.Enabled = false;
            uiButtonStopGrabbing.ForeColor = Color.White;
            uiButtonStopGrabbing.Location = new Point(140, 140);
            uiButtonStopGrabbing.Name = "uiButtonStopGrabbing";
            uiButtonStopGrabbing.Size = new Size(100, 35);
            uiButtonStopGrabbing.TabIndex = 5;
            uiButtonStopGrabbing.Text = "停止采集";
            uiButtonStopGrabbing.UseVisualStyleBackColor = false;
            uiButtonStopGrabbing.Click += uiButtonStopGrabbing_Click;
            //
            // uiButtonSoftTrigger
            //
            uiButtonSoftTrigger.BackColor = Color.FromArgb(64, 158, 255);
            uiButtonSoftTrigger.ForeColor = Color.White;
            uiButtonSoftTrigger.Location = new Point(260, 140);
            uiButtonSoftTrigger.Name = "uiButtonSoftTrigger";
            uiButtonSoftTrigger.Size = new Size(75, 35);
            uiButtonSoftTrigger.TabIndex = 6;
            uiButtonSoftTrigger.Text = "触发";
            uiButtonSoftTrigger.UseVisualStyleBackColor = false;
            uiButtonSoftTrigger.Click += uiButtonSoftTrigger_Click;
            //
            // uiListBoxBarcodes
            //
            uiListBoxBarcodes.FormattingEnabled = true;
            uiListBoxBarcodes.ItemHeight = 20;
            uiListBoxBarcodes.Location = new Point(15, 35);
            uiListBoxBarcodes.Name = "uiListBoxBarcodes";
            uiListBoxBarcodes.Size = new Size(320, 164);
            uiListBoxBarcodes.TabIndex = 0;
            //
            // uiTextBoxResult
            //
            uiTextBoxResult.Location = new Point(90, 210);
            uiTextBoxResult.Name = "uiTextBoxResult";
            uiTextBoxResult.ReadOnly = true;
            uiTextBoxResult.Size = new Size(160, 26);
            uiTextBoxResult.TabIndex = 1;
            //
            // uiLabel2
            //
            uiLabel2.Location = new Point(15, 210);
            uiLabel2.Name = "uiLabel2";
            uiLabel2.Size = new Size(70, 29);
            uiLabel2.TabIndex = 2;
            uiLabel2.Text = "状态:";
            uiLabel2.TextAlign = ContentAlignment.MiddleRight;
            //
            // uiButtonClear
            //
            uiButtonClear.BackColor = Color.FromArgb(64, 158, 255);
            uiButtonClear.ForeColor = Color.White;
            uiButtonClear.Location = new Point(260, 208);
            uiButtonClear.Name = "uiButtonClear";
            uiButtonClear.Size = new Size(75, 30);
            uiButtonClear.TabIndex = 3;
            uiButtonClear.Text = "清空";
            uiButtonClear.UseVisualStyleBackColor = false;
            uiButtonClear.Click += uiButtonClear_Click;
            //
            // BarcodeReaderForm
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            BackColor = Color.FromArgb(32, 41, 50);
            ClientSize = new Size(800, 530);
            Controls.Add(uiGroupBoxResult);
            Controls.Add(uiGroupBoxControl);
            Controls.Add(uiGroupBoxImage);
            Name = "BarcodeReaderForm";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "读码器测试";
            FormClosing += BarcodeReaderForm_FormClosing;
            uiGroupBoxImage.ResumeLayout(false);
            uiGroupBoxControl.ResumeLayout(false);
            uiGroupBoxResult.ResumeLayout(false);
            uiGroupBoxResult.PerformLayout();
            ResumeLayout(false);
        }
        #endregion
        private GroupBox uiGroupBoxImage;
        private GroupBox uiGroupBoxControl;
        private GroupBox uiGroupBoxResult;
        private ComboBox uiComboBoxBrand;
        private Label uiLabel1;
        private RadioButton uiRadioButtonSoftTrigger;
        private RadioButton uiRadioButtonHardTrigger;
        private Button uiButtonStartGrabbing;
        private Button uiButtonStopGrabbing;
        private Button uiButtonSoftTrigger;
        private ListBox uiListBoxBarcodes;
        private TextBox uiTextBoxResult;
        private Label uiLabel2;
        private Button uiButtonClear;
    }
}
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReaderForm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
using LB_VisionProcesses.BarcodeReaders;
using System;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.BarcodeReaderPage
{
    public partial class BarcodeReaderForm : Form
    {
        BarcodeReaderBase barcodeReader { get; set; }
        PictureBox pictureBox1 { get; set; }
        public BarcodeReaderForm()
        {
            InitializeComponent();
        }
        public BarcodeReaderForm(BarcodeReaderBase reader)
        {
            InitializeComponent();
            // åˆ›å»ºå›¾åƒæ˜¾ç¤ºæŽ§ä»¶
            pictureBox1 = new PictureBox();
            pictureBox1.Dock = DockStyle.Fill;
            pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
            uiGroupBoxImage.Controls.Add(pictureBox1);
            if (reader == null)
                return;
            this.barcodeReader = reader;
            this.Text = reader.SN;
            // æ·»åŠ å“ç‰Œé€‰é¡¹
            foreach (BarcodeReaderBrand brand in Enum.GetValues(typeof(BarcodeReaderBrand)))
            {
                if (brand != BarcodeReaderBrand.Unsupported)
                    uiComboBoxBrand.Items.Add(brand.ToString());
            }
            // è®¾ç½®å“ç‰Œ
            uiComboBoxBrand.Text = reader.Brand.ToString();
            // åŠ è½½å›žè°ƒå‡½æ•°
            Subscribe();
        }
        private void BarcodeReaderForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (barcodeReader == null)
                return;
            barcodeReader.StopGrabbing();
            Unsubscribe();
        }
        public void Unsubscribe()
        {
            try
            {
                if (barcodeReader == null)
                    return;
                // å–消回调函数
                barcodeReader.BarcodeRead -= OnBarcodeRead;
            }
            catch (Exception ex)
            {
                // è®°å½•错误信息
                Debug.WriteLine($"错误: {ex.Message}");
            }
        }
        public void Subscribe()
        {
            try
            {
                if (barcodeReader == null)
                    return;
                // å–消回调函数
                barcodeReader.BarcodeRead -= OnBarcodeRead;
                // åŠ è½½å›žè°ƒå‡½æ•°
                barcodeReader.BarcodeRead += OnBarcodeRead;
            }
            catch (Exception ex)
            {
                // è®°å½•错误信息
                Debug.WriteLine($"错误: {ex.Message}");
            }
        }
        private void OnBarcodeRead(object sender, BarcodeEventArgs e)
        {
            if (e.Barcodes == null || e.Barcodes.Count == 0)
                return;
            if (this.InvokeRequired)
            {
                this.Invoke(new Action(() =>
                {
                    DisplayBarcodeResult(e);
                }));
            }
            else
            {
                DisplayBarcodeResult(e);
            }
        }
        private void DisplayBarcodeResult(BarcodeEventArgs e)
        {
            uiListBoxBarcodes.Items.Clear();
            if (e.BarcodeInfos != null && e.BarcodeInfos.Count > 0)
            {
                foreach (var info in e.BarcodeInfos)
                {
                    uiListBoxBarcodes.Items.Add(info.Text);
                }
            }
            if (e.Image != null)
            {
                // åˆ›å»ºå›¾åƒå‰¯æœ¬è¿›è¡Œç»˜åˆ¶
                Bitmap drawImg = new Bitmap(e.Image);
                using (Graphics g = Graphics.FromImage(drawImg))
                {
                    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                    using (Pen pen = new Pen(Color.LimeGreen, 3))
                    using (SolidBrush brush = new SolidBrush(Color.LimeGreen))
                    using (Font font = new Font("Arial", 16, FontStyle.Bold))
                    {
                        foreach (var info in e.BarcodeInfos)
                        {
                            if (info.Points != null && info.Points.Length >= 4)
                            {
                                // ç»˜åˆ¶æ¡†çº¿
                                g.DrawPolygon(pen, info.Points);
                                // ç»˜åˆ¶æ–‡æœ¬
                                Point textPos = info.Points[0];
                                textPos.Y -= 25;
                                g.DrawString(info.Text, font, brush, textPos);
                            }
                        }
                    }
                }
                // é‡Šæ”¾æ—§å›¾åƒ
                var oldImg = pictureBox1.Image;
                pictureBox1.Image = drawImg;
                oldImg?.Dispose();
            }
            uiTextBoxResult.Text = $"读取到{e.BarcodeInfos.Count}个条码";
        }
        private void uiRadioButtonSoftTrigger_CheckedChanged(object sender, EventArgs e)
        {
            uiButtonSoftTrigger.Enabled = uiRadioButtonSoftTrigger.Checked;
            if (barcodeReader == null)
                return;
            barcodeReader.SetTriggerMode(uiRadioButtonSoftTrigger.Checked);
        }
        private void uiButtonStartGrabbing_Click(object sender, EventArgs e)
        {
            if (barcodeReader == null)
                return;
            if (barcodeReader.StartGrabbing())
            {
                uiButtonStartGrabbing.Enabled = false;
                uiButtonStopGrabbing.Enabled = true;
            }
        }
        private void uiButtonStopGrabbing_Click(object sender, EventArgs e)
        {
            if (barcodeReader == null)
                return;
            if (barcodeReader.StopGrabbing())
            {
                uiButtonStartGrabbing.Enabled = true;
                uiButtonStopGrabbing.Enabled = false;
            }
        }
        private void uiButtonSoftTrigger_Click(object sender, EventArgs e)
        {
            if (barcodeReader == null)
                return;
            barcodeReader.SoftTrigger();
        }
        private void uiButtonClear_Click(object sender, EventArgs e)
        {
            uiListBoxBarcodes.Items.Clear();
            uiTextBoxResult.Text = "";
            if (pictureBox1 != null)
                pictureBox1.Image = null;
        }
    }
}
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReaderForm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    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
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <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
    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
    mimetype set.
    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
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    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
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReadersEditPage.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,152 @@
using ReaLTaiizor.Controls;
using System.Drawing;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.BarcodeReaderPage
{
    partial class BarcodeReadersEditPage
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Component Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            uiButton1 = new HopeButton();
            uiButton2 = new LostButton();
            uiFlowLayoutPanel1 = new FlowLayoutPanel();
            tableLayoutPanel1 = new TableLayoutPanel();
            tableLayoutPanel2 = new TableLayoutPanel();
            tableLayoutPanel1.SuspendLayout();
            tableLayoutPanel2.SuspendLayout();
            SuspendLayout();
            //
            // uiButton1
            //
            uiButton1.BorderColor = Color.FromArgb(220, 223, 230);
            uiButton1.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            uiButton1.Cursor = Cursors.Hand;
            uiButton1.DangerColor = Color.FromArgb(245, 108, 108);
            uiButton1.DefaultColor = Color.FromArgb(255, 255, 255);
            uiButton1.Dock = DockStyle.Fill;
            uiButton1.Font = new Font("宋体", 12F);
            uiButton1.HoverTextColor = Color.FromArgb(48, 49, 51);
            uiButton1.InfoColor = Color.FromArgb(144, 147, 153);
            uiButton1.Location = new Point(503, 3);
            uiButton1.MinimumSize = new Size(1, 1);
            uiButton1.Name = "uiButton1";
            uiButton1.PrimaryColor = Color.FromArgb(64, 158, 255);
            uiButton1.Size = new Size(95, 38);
            uiButton1.SuccessColor = Color.FromArgb(103, 194, 58);
            uiButton1.TabIndex = 11;
            uiButton1.Text = "新增";
            uiButton1.TextColor = Color.White;
            uiButton1.WarningColor = Color.FromArgb(230, 162, 60);
            uiButton1.Click += uiButton1_Click;
            //
            // uiButton2
            //
            uiButton2.BackColor = Color.FromArgb(39, 41, 60);
            uiButton2.Cursor = Cursors.Hand;
            uiButton2.Dock = DockStyle.Fill;
            uiButton2.Font = new Font("宋体", 12F);
            uiButton2.ForeColor = Color.White;
            uiButton2.HoverColor = Color.DodgerBlue;
            uiButton2.Image = null;
            uiButton2.Location = new Point(403, 3);
            uiButton2.MinimumSize = new Size(1, 1);
            uiButton2.Name = "uiButton2";
            uiButton2.Size = new Size(94, 38);
            uiButton2.TabIndex = 12;
            uiButton2.Text = "全部清除";
            uiButton2.Click += uiButton2_Click;
            //
            // uiFlowLayoutPanel1
            //
            uiFlowLayoutPanel1.BackColor = Color.FromArgb(32, 41, 50);
            uiFlowLayoutPanel1.Dock = DockStyle.Fill;
            uiFlowLayoutPanel1.Font = new Font("宋体", 12F);
            uiFlowLayoutPanel1.ForeColor = SystemColors.Control;
            uiFlowLayoutPanel1.Location = new Point(4, 5);
            uiFlowLayoutPanel1.Margin = new Padding(4, 5, 4, 5);
            uiFlowLayoutPanel1.MinimumSize = new Size(1, 1);
            uiFlowLayoutPanel1.Name = "uiFlowLayoutPanel1";
            uiFlowLayoutPanel1.Padding = new Padding(2);
            uiFlowLayoutPanel1.Size = new Size(599, 293);
            uiFlowLayoutPanel1.TabIndex = 10;
            //
            // tableLayoutPanel1
            //
            tableLayoutPanel1.ColumnCount = 1;
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0);
            tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 1);
            tableLayoutPanel1.Dock = DockStyle.Fill;
            tableLayoutPanel1.Location = new Point(0, 0);
            tableLayoutPanel1.Name = "tableLayoutPanel1";
            tableLayoutPanel1.RowCount = 2;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
            tableLayoutPanel1.Size = new Size(607, 353);
            tableLayoutPanel1.TabIndex = 13;
            //
            // tableLayoutPanel2
            //
            tableLayoutPanel2.ColumnCount = 6;
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.Controls.Add(uiButton1, 5, 0);
            tableLayoutPanel2.Controls.Add(uiButton2, 4, 0);
            tableLayoutPanel2.Dock = DockStyle.Fill;
            tableLayoutPanel2.Location = new Point(3, 306);
            tableLayoutPanel2.Name = "tableLayoutPanel2";
            tableLayoutPanel2.RowCount = 1;
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel2.Size = new Size(601, 44);
            tableLayoutPanel2.TabIndex = 11;
            //
            // BarcodeReadersEditPage
            //
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            Name = "BarcodeReadersEditPage";
            Size = new Size(607, 353);
            Paint += BarcodeReadersEditPage_Paint;
            tableLayoutPanel1.ResumeLayout(false);
            tableLayoutPanel2.ResumeLayout(false);
            ResumeLayout(false);
        }
        #endregion
        private HopeButton uiButton1;
        private LostButton uiButton2;
        private FlowLayoutPanel uiFlowLayoutPanel1;
        private TableLayoutPanel tableLayoutPanel1;
        private TableLayoutPanel tableLayoutPanel2;
    }
}
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReadersEditPage.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,226 @@
using LB_VisionControls;
using LB_VisionProcesses.BarcodeReaders;
using LB_VisionProcesses.BarcodeReaders.Huayray;
using System;
using System.Collections.Concurrent;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.BarcodeReaderPage
{
    public partial class BarcodeReadersEditPage : UserControl
    {
        public Action<string, LogInfoType> LogInfo;
        public BarcodeReadersEditPage()
        {
            InitializeComponent();
            Name = "BarcodeReadersEditPage";
            Text = "读码器设置";
        }
        private void BarcodeReadersEditPage_Paint(object sender, PaintEventArgs e)
        {
            uiFlowLayoutPanel1.Controls.Clear();
            if (GlobalVar.dicBarcodeReaders.Count <= 0)
                return;
            foreach (var item in GlobalVar.dicBarcodeReaders)
            {
                string ReaderSN = item.Key;
                string ReaderBrand = item.Value.Brand.ToString();
                if (string.IsNullOrEmpty(ReaderSN) || string.IsNullOrEmpty(ReaderBrand))
                    continue;
                UserItem flow = new UserItem(new string[] { "测试", "刷新", "移除" });
                flow.Name = ReaderSN;
                flow.Text = $"[{ReaderBrand}] {ReaderSN}";
                if (item.Value.IsConnected)
                    flow.state = State.Pass;
                else
                    flow.state = State.Error;
                LoadFlowEvent(flow);
                uiFlowLayoutPanel1.Controls.Add(flow);
            }
        }
        private void uiButton1_Click(object sender, System.EventArgs e)
        {
            CreateBarcodeReaderForm createForm = new CreateBarcodeReaderForm();
            createForm.ShowDialog();
            if (createForm.bCreate)
            {
                BarcodeReaderBase reader = createForm.barcodeReader;
                if (GlobalVar.dicBarcodeReaders.ContainsKey(reader.SN))
                {
                    MessageBox.Show($"读码器[{reader.SN}]已存在!", "异常");
                    return;
                }
                string ReaderSN = reader.SN;
                string ReaderBrand = reader.Brand.ToString();
                if (string.IsNullOrEmpty(ReaderSN) || string.IsNullOrEmpty(ReaderBrand))
                    return;
                GlobalVar.dicBarcodeReaders.TryAdd(ReaderSN, reader);
                LogInfo?.Invoke(string.Format("添加读码器[{0}][{1}]成功", ReaderBrand, ReaderSN), LogInfoType.PASS);
            }
            this.Invalidate();
        }
        private void uiButton2_Click(object sender, System.EventArgs e)
        {
            //清除用Clear方法
            uiFlowLayoutPanel1.Controls.Clear();
            foreach (var reader in GlobalVar.dicBarcodeReaders.Values)
            {
                reader.Dispose();
            }
            GlobalVar.dicBarcodeReaders.Clear();
        }
        private void LoadFlowEvent(UserItem flow)
        {
            //按键1为测试
            flow.MenuItem1ClickedEvent += TestEvent;
            //按键2为刷新
            flow.MenuItem2ClickedEvent += ReconnectEvent;
            //按键3为移除
            flow.MenuItem3ClickedEvent += DeleteEvent;
        }
        private void RemoveFlowEvent(UserItem flow)
        {
            //按键1为测试
            flow.MenuItem1ClickedEvent -= TestEvent;
            //按键2为刷新
            flow.MenuItem2ClickedEvent -= ReconnectEvent;
            //按键3为移除
            flow.MenuItem3ClickedEvent -= DeleteEvent;
        }
        // æµ‹è¯•读码器
        private void TestEvent(string Name, string Text)
        {
            for (int i = 0; i < uiFlowLayoutPanel1.Controls.Count; i++)
            {
                UserItem flow = (UserItem)uiFlowLayoutPanel1.Controls[i];
                string name = flow.Name;
                if (name != Name)
                    continue;
                if (GlobalVar.dicBarcodeReaders.ContainsKey(name))
                {
                    BarcodeReaderForm readerForm = new BarcodeReaderForm(GlobalVar.dicBarcodeReaders[name]);
                    readerForm.Show();
                }
            }
        }
        // ç§»é™¤è¯»ç å™¨
        private void DeleteEvent(string Name, string Text)
        {
            for (int i = 0; i < uiFlowLayoutPanel1.Controls.Count; i++)
            {
                UserItem flow = (UserItem)uiFlowLayoutPanel1.Controls[i];
                string name = flow.Name;
                if (name != Name)
                    continue;
                RemoveFlowEvent(flow);
                uiFlowLayoutPanel1.Controls.Remove(uiFlowLayoutPanel1.Controls[i]);
                if (GlobalVar.dicBarcodeReaders.TryRemove(name, out BarcodeReaderBase barcodeReader))
                {
                    barcodeReader.Dispose();
                    LogInfo?.Invoke(string.Format("移除读码器[{0}]", name), LogInfoType.INFO);
                }
                else
                    LogInfo?.Invoke(string.Format("移除读码器[{0}]失败", name), LogInfoType.ERROR);
            }
        }
        // é‡è¿žè¯»ç å™¨
        private void ReconnectEvent(string Name, string Text)
        {
            for (int i = 0; i < uiFlowLayoutPanel1.Controls.Count; i++)
            {
                UserItem flow = (UserItem)uiFlowLayoutPanel1.Controls[i];
                string name = flow.Name;
                if (name != Name)
                    continue;
                if (!GlobalVar.dicBarcodeReaders.ContainsKey(name))
                {
                    LogInfo?.Invoke(string.Format("读码器[{0}]不存在", name), LogInfoType.ERROR);
                    flow.state = State.Error;
                    flow.Refresh();
                    return;
                }
                var reader = GlobalVar.dicBarcodeReaders[name];
                if (reader == null)
                {
                    LogInfo?.Invoke(string.Format("读码器[{0}]实例为空", name), LogInfoType.ERROR);
                    flow.state = State.Error;
                    flow.Refresh();
                    return;
                }
                try
                {
                    // å…ˆé‡Šæ”¾æ—§å®žä¾‹çš„资源
                    reader.Dispose();
                    // æ·»åŠ çŸ­æš‚å»¶è¿Ÿï¼Œç¡®ä¿SDK底层资源完全释放
                    System.Threading.Thread.Sleep(500);
                    // å¼ºåˆ¶åžƒåœ¾å›žæ”¶ï¼Œç¡®ä¿ç›¸æœºå¯¹è±¡è¢«å®Œå…¨é‡Šæ”¾
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    // ä»Žå­—典中移除旧实例
                    GlobalVar.dicBarcodeReaders.TryRemove(name, out _);
                    // åˆ›å»ºæ–°å®žä¾‹
                    BarcodeReaderBase newReader = null;
                    switch (reader.Brand)
                    {
                        case BarcodeReaderBrand.Huayray:
                            newReader = new HRBarcodeReader();
                            break;
                        default:
                            throw new Exception($"不支持的读码器品牌: {reader.Brand}");
                    }
                    if (newReader.Open(name))
                    {
                        // æ·»åŠ åˆ°å­—å…¸
                        GlobalVar.dicBarcodeReaders.TryAdd(name, newReader);
                        flow.state = State.Pass;
                        LogInfo?.Invoke(string.Format("重连读码器[{0}]成功", name), LogInfoType.PASS);
                    }
                    else
                    {
                        flow.state = State.Error;
                        LogInfo?.Invoke(string.Format("读码器[{0}]重新创建后仍连接失败", name), LogInfoType.ERROR);
                    }
                }
                catch (Exception ex)
                {
                    flow.state = State.Error;
                    LogInfo?.Invoke(string.Format("重连读码器[{0}]异常: {1}", name, ex.Message), LogInfoType.ERROR);
                }
                flow.Refresh();
            }
        }
    }
}
LB_SmartVision/Forms/Pages/BarcodeReaderPage/BarcodeReadersEditPage.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    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
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <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
    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
    mimetype set.
    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
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    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
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
LB_SmartVision/Forms/Pages/BarcodeReaderPage/CreateBarcodeReaderForm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
using ReaLTaiizor.Controls;
using System.Drawing;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.BarcodeReaderPage
{
    partial class CreateBarcodeReaderForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            uiComboBoxBrand = new ComboBox();
            uiComboBoxSN = new ComboBox();
            uiLabel1 = new Label();
            uiLabel2 = new Label();
            uiButtonTest = new HopeButton();
            uiButtonCreate = new HopeButton();
            uiButtonCancel = new LostButton();
            SuspendLayout();
            //
            // uiComboBoxBrand
            //
            uiComboBoxBrand.DropDownStyle = ComboBoxStyle.DropDownList;
            uiComboBoxBrand.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiComboBoxBrand.FormattingEnabled = true;
            uiComboBoxBrand.Location = new Point(127, 30);
            uiComboBoxBrand.Name = "uiComboBoxBrand";
            uiComboBoxBrand.Size = new Size(200, 28);
            uiComboBoxBrand.TabIndex = 0;
            uiComboBoxBrand.MouseClick += uiComboBoxBrand_MouseClick;
            uiComboBoxBrand.SelectedIndexChanged += uiComboBoxBrand_SelectedIndexChanged;
            //
            // uiComboBoxSN
            //
            uiComboBoxSN.DropDownStyle = ComboBoxStyle.DropDownList;
            uiComboBoxSN.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiComboBoxSN.FormattingEnabled = true;
            uiComboBoxSN.Location = new Point(127, 80);
            uiComboBoxSN.Name = "uiComboBoxSN";
            uiComboBoxSN.Size = new Size(200, 28);
            uiComboBoxSN.TabIndex = 1;
            uiComboBoxSN.MouseClick += uiComboBoxSN_MouseClick;
            //
            // uiLabel1
            //
            uiLabel1.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiLabel1.ForeColor = Color.White;
            uiLabel1.Location = new Point(25, 30);
            uiLabel1.Name = "uiLabel1";
            uiLabel1.Size = new Size(100, 29);
            uiLabel1.TabIndex = 2;
            uiLabel1.Text = "品牌:";
            uiLabel1.TextAlign = ContentAlignment.MiddleRight;
            //
            // uiLabel2
            //
            uiLabel2.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiLabel2.ForeColor = Color.White;
            uiLabel2.Location = new Point(25, 80);
            uiLabel2.Name = "uiLabel2";
            uiLabel2.Size = new Size(100, 29);
            uiLabel2.TabIndex = 3;
            uiLabel2.Text = "序列号:";
            uiLabel2.TextAlign = ContentAlignment.MiddleRight;
            //
            // uiButtonTest
            //
            uiButtonTest.BorderColor = Color.FromArgb(220, 223, 230);
            uiButtonTest.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            uiButtonTest.Cursor = Cursors.Hand;
            uiButtonTest.DangerColor = Color.FromArgb(245, 108, 108);
            uiButtonTest.DefaultColor = Color.FromArgb(255, 255, 255);
            uiButtonTest.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiButtonTest.HoverTextColor = Color.FromArgb(48, 49, 51);
            uiButtonTest.InfoColor = Color.FromArgb(144, 147, 153);
            uiButtonTest.Location = new Point(350, 52);
            uiButtonTest.MinimumSize = new Size(1, 1);
            uiButtonTest.Name = "uiButtonTest";
            uiButtonTest.PrimaryColor = Color.FromArgb(64, 158, 255);
            uiButtonTest.Size = new Size(100, 35);
            uiButtonTest.SuccessColor = Color.FromArgb(103, 194, 58);
            uiButtonTest.TabIndex = 4;
            uiButtonTest.Text = "测试连接";
            uiButtonTest.TextColor = Color.White;
            uiButtonTest.WarningColor = Color.FromArgb(230, 162, 60);
            uiButtonTest.Click += uiButtonTest_Click;
            //
            // uiButtonCreate
            //
            uiButtonCreate.BorderColor = Color.FromArgb(220, 223, 230);
            uiButtonCreate.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            uiButtonCreate.Cursor = Cursors.Hand;
            uiButtonCreate.DangerColor = Color.FromArgb(245, 108, 108);
            uiButtonCreate.DefaultColor = Color.FromArgb(255, 255, 255);
            uiButtonCreate.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiButtonCreate.HoverTextColor = Color.FromArgb(48, 49, 51);
            uiButtonCreate.InfoColor = Color.FromArgb(144, 147, 153);
            uiButtonCreate.Location = new Point(127, 140);
            uiButtonCreate.MinimumSize = new Size(1, 1);
            uiButtonCreate.Name = "uiButtonCreate";
            uiButtonCreate.PrimaryColor = Color.FromArgb(0, 150, 136);
            uiButtonCreate.Size = new Size(100, 35);
            uiButtonCreate.SuccessColor = Color.FromArgb(103, 194, 58);
            uiButtonCreate.TabIndex = 5;
            uiButtonCreate.Text = "创建";
            uiButtonCreate.TextColor = Color.White;
            uiButtonCreate.WarningColor = Color.FromArgb(230, 162, 60);
            uiButtonCreate.Click += uiButtonCreate_Click;
            //
            // uiButtonCancel
            //
            uiButtonCancel.BackColor = Color.FromArgb(39, 41, 60);
            uiButtonCancel.Cursor = Cursors.Hand;
            uiButtonCancel.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            uiButtonCancel.ForeColor = Color.White;
            uiButtonCancel.HoverColor = Color.DodgerBlue;
            uiButtonCancel.Image = null;
            uiButtonCancel.Location = new Point(245, 140);
            uiButtonCancel.MinimumSize = new Size(1, 1);
            uiButtonCancel.Name = "uiButtonCancel";
            uiButtonCancel.Size = new Size(100, 35);
            uiButtonCancel.TabIndex = 6;
            uiButtonCancel.Text = "取消";
            uiButtonCancel.Click += uiButtonCancel_Click;
            //
            // CreateBarcodeReaderForm
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            BackColor = Color.FromArgb(32, 41, 50);
            ClientSize = new Size(484, 211);
            Controls.Add(uiButtonCancel);
            Controls.Add(uiButtonCreate);
            Controls.Add(uiButtonTest);
            Controls.Add(uiLabel2);
            Controls.Add(uiLabel1);
            Controls.Add(uiComboBoxSN);
            Controls.Add(uiComboBoxBrand);
            Name = "CreateBarcodeReaderForm";
            StartPosition = FormStartPosition.CenterParent;
            Text = "添加读码器";
            ResumeLayout(false);
        }
        #endregion
        private ComboBox uiComboBoxBrand;
        private ComboBox uiComboBoxSN;
        private Label uiLabel1;
        private Label uiLabel2;
        private HopeButton uiButtonTest;
        private HopeButton uiButtonCreate;
        private LostButton uiButtonCancel;
    }
}
LB_SmartVision/Forms/Pages/BarcodeReaderPage/CreateBarcodeReaderForm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,117 @@
using LB_VisionProcesses.BarcodeReaders;
using LB_VisionProcesses.BarcodeReaders.Huayray;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.BarcodeReaderPage
{
    public partial class CreateBarcodeReaderForm : Form
    {
        public BarcodeReaderBase barcodeReader { get; set; }
        public bool bCreate = false;
        public CreateBarcodeReaderForm(BarcodeReaderBase reader = null)
        {
            InitializeComponent();
            // ç¦æ­¢ä¿®æ”¹çª—口大小
            this.FormBorderStyle = FormBorderStyle.FixedDialog;
            if (reader == null)
                this.barcodeReader = new HRBarcodeReader();
            else
                this.barcodeReader = reader;
            uiButtonCreate.Enabled = false;
        }
        private void uiButtonTest_Click(object sender, EventArgs e)
        {
            uiButtonCreate.Enabled = false;
            if (string.IsNullOrEmpty(uiComboBoxSN.Text))
                MessageBox.Show($"初始化读码器[{uiComboBoxSN.Text}]为空!", "异常");
            if (barcodeReader == null)
            {
                MessageBox.Show("请先选择读码器品牌!", "异常");
                return;
            }
            barcodeReader.Close();
            if (barcodeReader.Open(uiComboBoxSN.Text))
            {
                uiButtonCreate.Enabled = true;
                barcodeReader.Close();
            }
            else
                MessageBox.Show($"初始化读码器[{uiComboBoxSN.Text}]失败!", "异常");
        }
        private void uiButtonCreate_Click(object sender, EventArgs e)
        {
            if (barcodeReader.Open(uiComboBoxSN.Text))
            {
                barcodeReader.SN = uiComboBoxSN.Text;
                bCreate = true;
                this.Close();
            }
            else
                MessageBox.Show($"初始化读码器[{uiComboBoxSN.Text}]失败!", "异常");
        }
        private void uiButtonCancel_Click(object sender, EventArgs e)
        {
            if (barcodeReader != null)
                barcodeReader.Close();
            bCreate = false;
            this.Close();
        }
        private void uiComboBoxBrand_MouseClick(object sender, MouseEventArgs e)
        {
            uiComboBoxBrand.Items.Clear();
            foreach (BarcodeReaderBrand brand in Enum.GetValues(typeof(BarcodeReaderBrand)))
            {
                if (brand != BarcodeReaderBrand.Unsupported)
                    uiComboBoxBrand.Items.Add(brand.ToString());
            }
        }
        private void uiComboBoxBrand_SelectedIndexChanged(object sender, EventArgs e)
        {
            uiButtonCreate.Enabled = false;
            uiComboBoxSN.Text = string.Empty;
            if (barcodeReader != null)
                barcodeReader.Close();
            Enum.TryParse<BarcodeReaderBrand>(uiComboBoxBrand.Text, out BarcodeReaderBrand brand);
            switch (brand)
            {
                case BarcodeReaderBrand.Huayray:
                    barcodeReader = new HRBarcodeReader();
                    break;
                default:
                    return;
            }
        }
        private void uiComboBoxSN_MouseClick(object sender, MouseEventArgs e)
        {
            uiButtonCreate.Enabled = false;
            uiComboBoxSN.Text = string.Empty;
            uiComboBoxSN.Items.Clear();
            var list = barcodeReader.GetDeviceList();
            foreach (string sn in list)
                uiComboBoxSN.Items.Add(sn);
        }
    }
}
LB_SmartVision/Forms/Pages/BarcodeReaderPage/CreateBarcodeReaderForm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    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
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <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
    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
    mimetype set.
    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
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    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
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
LB_SmartVision/GlobalVar.cs
@@ -3,6 +3,7 @@
using LB_SmartVision.Forms.Pages.SettingPage;
using LB_SmartVision.ProcessRun;
using LB_SmartVision.Tool;
using LB_VisionProcesses.BarcodeReaders;
using LB_VisionProcesses.Cameras;
using LB_VisionProcesses.Communicators;
using System.Collections.Concurrent;
@@ -25,11 +26,25 @@
            strStartTime = DateTime.Now.ToString("yyyyMMdd_HHmm");
        }
        /// <summary>
        /// è¯»ç å™¨é›†åˆ(Key:设备SN,Value:读码器句柄)
        /// </summary>
        public static ObservableConcurrentDictionary<string, BarcodeReaderBase> dicBarcodeReaders { get; set; } = new ObservableConcurrentDictionary<string, BarcodeReaderBase>();
        /// <summary>
        /// å…‰æºæŽ§åˆ¶é…ç½®
        /// </summary>
        public static Dictionary<string, LEDControlParams> dicSerialPort { get; set; } = new Dictionary<string, LEDControlParams>();
        #region è¯»ç å™¨
        public static ConcurrentDictionary<string, string> allBarcodeReadersConnectionString = new ConcurrentDictionary<string, string>();
        public static string allBarcodeReadersConnectionStringPath
            => GlobalVar.strApplicationPath + "所有产品\\" + GlobalVar.strProductName + "\\A_BarcodeReaderConnections.json";
        #endregion
        public static string AllSerialPortPath
        => GlobalVar.strApplicationPath + "所有产品\\" + GlobalVar.strProductName + "\\A_SerialPort.json";
LB_SmartVision/LB_SmartVision.csproj.user
@@ -7,6 +7,15 @@
    <Compile Update="Forms\CreateProductForm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Forms\Pages\BarcodeReaderPage\BarcodeReaderForm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Forms\Pages\BarcodeReaderPage\BarcodeReadersEditPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="Forms\Pages\BarcodeReaderPage\CreateBarcodeReaderForm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Forms\Pages\CameraPage\CameraForm.cs">
      <SubType>Form</SubType>
    </Compile>
LB_SmartVision/ProcessRun/ProcessContext.cs
@@ -239,7 +239,7 @@
                #region ç»˜åˆ¶ç»“果图
                string[] RecordImageMaps = RecordImageMap.Split(';');
                int FontSize = ho_ImageHeight.I / 80 > 0 ? ho_ImageHeight.I / 80 : 8;
                int MsgSize = ho_ImageHeight.I / 20 > 0 ? ho_ImageHeight.I / 20 : 20;
                int MsgSize = ho_ImageHeight.I / 40 > 0 ? ho_ImageHeight.I / 80 : 20;
                TAlgorithm.set_display_font(hWindowControl.HalconWindow, FontSize, "mono", "true", "false");
@@ -415,6 +415,9 @@
        [Node("Halcon2D_找线工具", "Halcon2D算法", "Basic", "Halcon2D_找线工具")]
        public void Halcon2D_找线工具(FlowNode node) { RunNodeAsync(node); }
        [Node("Halcon2D_图像增强工具", "Halcon2D算法", "Basic", "Halcon2D_图像增强工具")]
        public void Halcon2D_图像增强工具(FlowNode node) { RunNodeAsync(node); }
        #endregion
        #region åˆ†å‰²æ¨¡åž‹
LB_SmartVision/VisionForm.cs
@@ -1,6 +1,7 @@
using HalconDotNet;
using LB_SmartVision.Forms;
using LB_SmartVision.Forms.Pages;
using LB_SmartVision.Forms.Pages.BarcodeReaderPage;
using LB_SmartVision.Forms.Pages.CameraPage;
using LB_SmartVision.Forms.Pages.CommunicatorPage;
using LB_SmartVision.Forms.Pages.HistoricalData;
@@ -16,6 +17,8 @@
using LB_SmartVisionCommon;
using LB_SmartVisionLoginUI;
using LB_VisionProcesses;
using LB_VisionProcesses.BarcodeReaders;
using LB_VisionProcesses.BarcodeReaders.Huayray;
using LB_VisionProcesses.Cameras;
using LB_VisionProcesses.Cameras.HikCameras;
using LB_VisionProcesses.Cameras.HRCameras;
@@ -51,10 +54,12 @@
{
    public partial class VisionForm : Form
    {
        #region  Variable
        public string NowBom = string.Empty;
        AllProcessesPage AllProcessesPage = new AllProcessesPage();
        CamerasEditPage CamerasEditPage = new CamerasEditPage();
        BarcodeReadersEditPage BarcodeReadersEditPage = new BarcodeReadersEditPage();
        HistoricalDataEditPage HistoricalDataEditPage = new HistoricalDataEditPage();
        CommunicatorsEditPage CommunicatorsEditPage = new CommunicatorsEditPage();
        SettingEditPage SettingEditPage = new SettingEditPage();
@@ -77,6 +82,8 @@
        // çª—体类的全局变量:标记是否允许切换Tab(默认允许)
        private bool _isTabSwitchAllowed = true;
        #endregion
        public VisionForm()
        {
            InitializeComponent();
@@ -94,10 +101,15 @@
            HistoricalDataEditPage.LogInfo += LogInfo;
            materialTabControl.Controls.Add(new MyPage(HistoricalDataEditPage));
            lEDLightSourceControlEditPage.LogInfo += LogInfo;
            materialTabControl.Controls.Add(new MyPage(lEDLightSourceControlEditPage));
            CamerasEditPage.LogInfo += LogInfo;
            materialTabControl.Controls.Add(new MyPage(CamerasEditPage));
            BarcodeReadersEditPage.LogInfo += LogInfo;
            materialTabControl.Controls.Add(new MyPage(BarcodeReadersEditPage));
            CommunicatorsEditPage.LogInfo += LogInfo;
            materialTabControl.Controls.Add(new MyPage(CommunicatorsEditPage));
@@ -771,6 +783,20 @@
            {
                LogInfo("相机加载失败", LogInfoType.ERROR);
            }
            //加载读码器
            foreach (var reader in GlobalVar.dicBarcodeReaders.Values)
            {
                reader.Dispose();
            }
            GlobalVar.dicBarcodeReaders.Clear();
            if (LoadAllBarcodeReaders(GlobalVar.allBarcodeReadersConnectionStringPath))
            {
                LogInfo("读码器加载成功", LogInfoType.PASS);
            }
            else
            {
                LogInfo("读码器加载失败", LogInfoType.ERROR);
            }
            //加载全局变量
            IProcess.dicGlobalVars.Clear();
            if (LoadAllProcessVars(GlobalVar.allProcessVarsPath))
@@ -936,8 +962,110 @@
            SaveAllCsv();
            SaveMotionControlDatas();
            SaveSerialPorts();
            SaveAllBarcodeReaders();
        }
        public bool LoadAllBarcodeReaders(string allBarcodeReadersConnectionStringPath)
        {
            if (!File.Exists(allBarcodeReadersConnectionStringPath))
            {
                Debug.WriteLine("读码器配置文件不存在,创建空文件");
                SaveAllBarcodeReaders();
                return true;
            }
            string strJson = string.Empty;
            using (StreamReader streamReader = new StreamReader(allBarcodeReadersConnectionStringPath, Encoding.UTF8))
            {
                strJson = streamReader.ReadToEnd();
                streamReader.Close();
            }
            GlobalVar.allBarcodeReadersConnectionString = JsonConvert.DeserializeObject<ConcurrentDictionary<string, string>>(strJson);
            if (GlobalVar.allBarcodeReadersConnectionString == null)
            {
                MessageBox.Show("读码器加载失败!", "异常");
                return false;
            }
            BarcodeReaderBase reader = null;
            foreach (var ReaderConnectionString in GlobalVar.allBarcodeReadersConnectionString)
            {
                Enum.TryParse<BarcodeReaderBrand>(ReaderConnectionString.Value, out BarcodeReaderBrand brand);
                switch (brand)
                {
                    case BarcodeReaderBrand.Huayray:
                        {
                            reader = new HRBarcodeReader();
                            break;
                        }
                    default:
                        {
                            MessageBox.Show($"[{ReaderConnectionString.Key}]读码器品牌不支持!", "异常");
                            continue;
                        }
                }
                reader.SN = ReaderConnectionString.Key;
                if (!reader.Open(ReaderConnectionString.Key))
                {
                    LogInfo($"初始化读码器[{ReaderConnectionString.Key}]失败", LogInfoType.ERROR);
                    reader.IsConnected = false;
                    reader.IsGrabbing = false;
                }
                else
                {
                    LogInfo($"初始化读码器[{ReaderConnectionString.Key}]成功", LogInfoType.PASS);
                }
                GlobalVar.dicBarcodeReaders.TryAdd(ReaderConnectionString.Key, reader);
            }
            return true;
        }
        public bool SaveAllBarcodeReaders()
        {
            try
            {
                string strJson = string.Empty;
                GlobalVar.allBarcodeReadersConnectionString = new ConcurrentDictionary<string, string>();
                foreach (var item in GlobalVar.dicBarcodeReaders)
                {
                    string ReaderSN = item.Value.SN;
                    string ReaderBrand = item.Value.Brand.ToString();
                    if (string.IsNullOrEmpty(ReaderSN) || string.IsNullOrEmpty(ReaderBrand))
                    {
                        break;
                    }
                    GlobalVar.allBarcodeReadersConnectionString.TryAdd(ReaderSN, ReaderBrand);
                }
                var settings = new JsonSerializerSettings
                {
                    Formatting = Formatting.Indented,
                    ContractResolver = new DefaultContractResolver
                    {
                        NamingStrategy = new CamelCaseNamingStrategy()
                    }
                };
                strJson = JsonConvert.SerializeObject(GlobalVar.allBarcodeReadersConnectionString, settings);
                string directoryPath = Path.GetDirectoryName(GlobalVar.allBarcodeReadersConnectionStringPath);
                if (!Directory.Exists(directoryPath))
                {
                    try
                    {
                        Directory.CreateDirectory(directoryPath);
                    }
                    catch (Exception)
                    { }
                }
                File.WriteAllText(GlobalVar.allBarcodeReadersConnectionStringPath, strJson, Encoding.UTF8);
                return true;
            }
            catch { return false; }
        }
        public bool LoadSerialPorts(string allSerialPortPath)
        {
            try
LB_SmartVision/bin/Debug/net8.0-windows/EasyIDSDK_Net.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/EasyIDSDK_Net.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1812 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>EasyIDSDK_Net</name>
    </assembly>
    <members>
        <member name="T:EasyIDSDK_Net.EidCamera">
            <summary>
            <para><ch>EidCamera</ch></para>
            <para><en>EidCamera</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorOK">
            <summary>
            <para><ch>成功</ch></para>
            <para><en>OK</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorUnknown">
            <summary>
            <para><ch>未知错误</ch></para>
            <para><en>Unknown error</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInternalError">
            <summary>
            <para><ch>内部错误</ch></para>
            <para><en>Internal error</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInvalidParameter">
            <summary>
            <para><ch>无效参数</ch></para>
            <para><en>Invalid parameter</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotConnected">
            <summary>
            <para><ch>相机未连接</ch></para>
            <para><en>Camera not connected</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotFound">
            <summary>
            <para><ch>未找到</ch></para>
            <para><en>Not found</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorTimeout">
            <summary>
            <para><ch>超时</ch></para>
            <para><en>Timeout</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotImplemented">
            <summary>
            <para><ch>未实现</ch></para>
            <para><en>Not implemented</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorRepeatOperation">
            <summary>
            <para><ch>重复操作</ch></para>
            <para><en>Repeat operation</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNullPtr">
            <summary>
            <para><ch>空指针</ch></para>
            <para><en>Null pointer</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorReadDataFail">
            <summary>
            <para><ch>读取数据失败</ch></para>
            <para><en>Failed to read data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorWriteDataFail">
            <summary>
            <para><ch>写入数据失败</ch></para>
            <para><en>Failed to write data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorDataCheckFail">
            <summary>
            <para><ch>数据校验失败</ch></para>
            <para><en>Data verification failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageSizeError">
            <summary>
            <para><ch>图像大小错误</ch></para>
            <para><en>Wrong image size</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageTypeError">
            <summary>
            <para><ch>图像类型错误</ch></para>
            <para><en>Wrong image type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageDataTypeError">
            <summary>
            <para><ch>图像数据类型错误</ch></para>
            <para><en>Wrong image data type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorSerializeFail">
            <summary>
            <para><ch>序列化失败</ch></para>
            <para><en>Serialization failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorDeserializeFail">
            <summary>
            <para><ch>反序列化失败</ch></para>
            <para><en>Deserialization failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorOpenFileFail">
            <summary>
            <para><ch>打开文件失败</ch></para>
            <para><en>Failed to open file</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorWriteFileFail">
            <summary>
            <para><ch>文件写入失败</ch></para>
            <para><en>File writing failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInvalidHandle">
            <summary>
            <para><ch>无效句柄</ch></para>
            <para><en>Invalid handle</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInsufficientBuffer">
            <summary>
            <para><ch>缓冲区过小</ch></para>
            <para><en>Insufficient buffers</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.#ctor">
            <summary>
            <para><ch>构造函数</ch></para>
            <para><en>Constructor</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetVersion_Net">
            <summary>
            <para><ch>获取版本信息</ch></para>
            <para><en>Get version information</en></para>
            </summary>
            <returns><para><ch>版本信息</ch></para><para><en>Version infomation</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidEnumDevices_Net(EasyIDSDK_Net.EidCamera.EidDeviceList@,System.UInt32)">
            <summary>
            <para><ch>根据接口类型枚举相机, åŒæ—¶è¾“出所有相机信息到 deviceList</ch></para>
            <para><en>Enumerate devices according to the interface type, and outputting all devices information to the deviceList</en></para>
            </summary>
            <param name="deviceList"><para><ch>[out] è®¾å¤‡ä¿¡æ¯åˆ—表</ch></para><para><en>[out] Device information list</en></para></param>
            <param name="type"><para><ch>[in] æŽ¥å£ç±»åž‹, å¯ä»¥æ˜¯å¤šä¸ªæŽ¥å£ç±»åž‹çš„组合. è‹¥ä¼ å…¥å€¼ä¸º0表示所有类型, ä¸Ž eidInterfaceTypeAll å«ä¹‰ç›¸åŒ, å…¶ä½™å–值参考 #EidInterfaceType</ch></para>
            <para><en>[in] Interface type, which can be a combination of multiple interface types.If the value of the parameter is 0, it means all types, which is the same as eidInterfaceTypeAll. other value see #EidInterfaceType</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidCreateDevice_Net(System.String,EasyIDSDK_Net.EidCamera.EidDeviceDataType)">
            <summary>
            <para><ch>根据设备数据信息创建相应的设备对象, å¦‚可以通过设备序列号创建。</ch></para>
            <para><en>Create a device handle according to the device data, for example, you can create a device object through the serial number.
            This interface will not enumerate devices and needs to be called after #eidEnumDevices.</en></para>
            </summary>
            <param name="data"><para><ch>[in] è®¾å¤‡æ•°æ®, æ•°æ®å†…容的含义由 type å‚数决定</ch></para><para><en>[in] Device data, the meaning of the data content is determined by the type parameter</en></para></param>
            <param name="type"><para><ch>[in] æ•°æ®ç±»åž‹, é»˜è®¤å€¼æ˜¯è®¾å¤‡åºåˆ—号</ch></para><para><en>[in] Data type</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
            <remarks><para><ch>注意需要调用 #eidReleaseHandle_Net é‡Šæ”¾èµ„源。</ch></para><para><en>Note that need to call #eidReleaseHandle_Net to release resources.</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidReleaseHandle_Net">
            <summary>
            <para><ch>释放相机句柄资源</ch></para>
            <para><en>Release device handle resources</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetDeviceInfo_Net(EasyIDSDK_Net.EidCamera.EidDeviceInfo@)">
            <summary>
            <para><ch>获取设备信息</ch></para>
            <para><en>Get device infomation</en></para>
            </summary>
            <param name="info"><para><ch>[out] è®¾å¤‡ä¿¡æ¯</ch></para><para><en>[out] Pointer to a EidDeviceInfo structure to receive the device information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidOpenDevice_Net">
            <summary>
            <para><ch>打开设备</ch></para>
            <para><en>Open a device</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidCloseDevice_Net">
            <summary>
            <para><ch>关闭设备</ch></para>
            <para><en>Close a device</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsDeviceOpen_Net">
            <summary>
            <para><ch>设备是否已经打开</ch></para>
            <para><en>Gets a value indicating whether the media source is currently open. .</en></para>
            </summary>
            <returns><para><ch>如果设备处于打开状态,返回 true,否则,false</ch></para><para><en>True if the device is open; otherwise, false</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidForceIpAddress_Net(System.String,System.String,System.String)">
            <summary>
            <para><ch>修改相机IP. è¯¥æŽ¥å£åªé’ˆå¯¹é€šè¿‡ç½‘卡接入的设备,对于其余设备,调用此接口无意义</ch></para>
            <para><en>Modify the device IP. This interface is only for devices connected through a network card.
            For other devices, it is meaningless to call this interface.</en></para>
            </summary>
            <param name="ipAddr"><para><ch>[in] è®¾å¤‡IP地址</ch></para><para><en>[in] New IP address</en></para></param>
            <param name="subnetMask"><para><ch>[in] å­ç½‘掩码</ch></para><para><en>[in] New subnet mask</en></para></param>
            <param name="gateway"><para><ch>[in] é»˜è®¤ç½‘å…³</ch></para><para><en>[in] New default gateway</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidDownloadGenICamXML_Net(System.String)">
            <summary>
            <para><ch>下载设备描述XML文件,并保存到指定路径</ch></para>
            <para><en>Download device description XML file, and save the file to specified path</en></para>
            </summary>
            <param name="path"><para><ch>[in] æ–‡ä»¶ä¿å­˜è·¯å¾„</ch></para><para><en>[in] The file path where the downloaded XMl file would be saved to</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSaveDeviceConfig_Net(System.String)">
            <summary>
            <para><ch>保存设备配置到指定的路径</ch></para>
            <para><en>Save the configuration of the device to specified path</en></para>
            </summary>
            <param name="path"><para><ch>[in] æ–‡ä»¶ä¿å­˜è·¯å¾„</ch></para><para><en>[in] The file path where the downloaded XMl file would be saved to</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidLoadDeviceConfig_Net(System.String,EasyIDSDK_Net.EidCamera.EidErrorList@)">
            <summary>
            <para><ch>从文件加载设备配置</ch></para>
            <para><en>Load the device configuration from a file</en></para>
            </summary>
            <param name="path"><para><ch>[in] é…ç½®æ–‡ä»¶è·¯å¾„</ch></para><para><en>[in] Configuration file path</en></para></param>
            <param name="errorList"><para><ch>[out] é”™è¯¯åˆ—表指针, å†™å…¥å¤±è´¥çš„设备属性名称将通过该参数返回</ch></para><para><en>[out] Pointor to error list. The device feature names that failed to write will be returned with this parameter</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFeatureType_Net(System.String)">
            <summary>
            <para><ch>获取设备属性类型</ch></para>
            <para><en>Get device feature type</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>设备属性类型, è§ #EidFeatureType</ch></para><para><en>Device feature type, see enum #EidFeatureType</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureValid_Net(System.String)">
            <summary>
            <para><ch>设备属性是否有效</ch></para>
            <para><en>Is the device feature valid</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true æœ‰æ•ˆ,false æ— æ•ˆ</ch></para><para><en>true Valid,false Not valid</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureAvailable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可用</ch></para>
            <para><en>Is the device feature available</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯ç”¨,false ä¸å¯ç”¨</ch></para><para><en>true Available,false Not available</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureReadable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可读</ch></para>
            <para><en>Is the device feature readable</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯è¯»,false ä¸å¯è¯»</ch></para><para><en>true Readable,false Not readable</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureWriteable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可写</ch></para>
            <para><en>Is the device feature writeable</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯å†™,false ä¸å¯å†™</ch></para><para><en>true Writeable,false Not writeable</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetIntFeatureValue_Net(System.String,System.Int64@)">
            <summary>
            <para><ch>获取整型属性值</ch></para>
            <para><en>Get integer feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetIntFeatureValue_Net(System.String,System.Int64)">
            <summary>
            <para><ch>设置整型属性值</ch></para>
            <para><en>Set integer feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetIntFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidIntFeatureInfo@)">
            <summary>
            <para><ch>获取整型属性信息</ch></para>
            <para><en>Gets integer feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFloatFeatureValue_Net(System.String,System.Double@)">
            <summary>
            <para><ch>获取浮点型属性值</ch></para>
            <para><en>Get float feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetFloatFeatureValue_Net(System.String,System.Double)">
            <summary>
            <para><ch>设置浮点型属性值</ch></para>
            <para><en>Set float feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFloatFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo@)">
            <summary>
            <para><ch>获取浮点型属性信息</ch></para>
            <para><en>Gets float feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetBoolFeatureValue_Net(System.String,System.Boolean@)">
            <summary>
            <para><ch>获取布尔型属性值</ch></para>
            <para><en>Get bool feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetBoolFeatureValue_Net(System.String,System.Boolean)">
            <summary>
            <para><ch>设置布尔型属性值</ch></para>
            <para><en>Set bool feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetStringFeatureValue_Net(System.String,System.Byte@,System.UInt32@)">
            <summary>
            <para><ch>获取字符串型属性值</ch></para>
            <para><en>Get string feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼å­—符串缓冲区, ç”¨æˆ·åˆ†é…å†…存空间</ch></para><para><en>[out] Pointer to string feature value buffer that is allocated memory space by the user</en></para></param>
            <param name="size"><para><ch>[in,out] å±žæ€§å€¼å­—符串缓冲区长度.</ch></para><para><en>[in,out] The length of the string buffer.</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
            <remarks><para><ch>当函数返回时, å¦‚果缓冲区足够大, æ‰€æœ‰çš„æ•°æ®éƒ½ä¼šæ‹·è´åˆ° value ç¼“冲区, å¹¶ä¸”此参数的值是实际字符串的长度(不包含null结束符);
            å¦‚果缓冲区不够大, ç¼“冲区的数据是截断后的字符串内容, å¹¶ä¸”此参数包含字符串的实际长度(不包含null结束符)</ch></para><para><en>When the function returns, if the buffer is large enough,
            all data is copied to the value buffer, and the value of this parameter is the length of the actual string (without the null terminator);
            If the buffer is not large enough, the buffer's data is the truncated string content,
            and this parameter contains the actual length of the string (without the null terminator)</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetStringFeatureValue_Net(System.String,System.Byte@)">
            <summary>
            <para><ch>设置字符串型属性值</ch></para>
            <para><en>Set string feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetStringFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidStringFeatureInfo@)">
            <summary>
            <para><ch>获取字符串型属性信息</ch></para>
            <para><en>Gets string feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureValue_Net(System.String,System.UInt64@)">
            <summary>
            <para><ch>获取枚举型属性值</ch></para>
            <para><en>Get enum feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetEnumFeatureValue_Net(System.String,System.UInt64)">
            <summary>
            <para><ch>设置枚举型属性值</ch></para>
            <para><en>Set enum feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureSymbol_Net(System.String,System.Byte@,System.UInt32)">
            <summary>
            <para><ch>获取枚举型属性符号</ch></para>
            <para><en>Get enum feature symbol</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§ç¬¦å·</ch></para><para><en>[out] Pointer to enum feature symbol buffer</en></para></param>
            <param name="size"><para><ch>[in] å±žæ€§ç¬¦å·ç¼“冲长度</ch></para><para><en>[in] The length of symbol buffer</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetEnumFeatureSymbol_Net(System.String,System.String)">
            <summary>
            <para><ch>设置枚举型属性符号</ch></para>
            <para><en>Set enum feature symbol</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§ç¬¦å·</ch></para><para><en>[in] Feature symbol</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureEntryList_Net(System.String,EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList@)">
            <summary>
            <para><ch>获取枚举型属性条目列表</ch></para>
            <para><en>Get enum feature entry list</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="entryList"><para><ch>[out] æžšä¸¾æ¡ç›®åˆ—表</ch></para><para><en>[out] Pointer to a EidEnumFeatureEntryList structure to receive the enum entry list</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidExecCommandFeature_Net(System.String)">
            <summary>
            <para><ch>执行命令行属性</ch></para>
            <para><en>Execute command feature</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidEnumFeatureChildren_Net(System.String,EasyIDSDK_Net.EidCamera.EidEnumFeatureChildrenCallback,System.IntPtr)">
            <summary>
            <para><ch>枚举子属性</ch></para>
            <para><en>Enum Feature Children</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="fn"><para><ch>[in] å›žè°ƒå‡½æ•°, æ¯ä¸ªå­å±žæ€§éƒ½å°†ä¼šè§¦å‘一次该函数的调用</ch></para><para><en>[in] callback function, each child feature will invoke this method</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] user data for callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidStartGrabbing_Net(System.Int32)">
            <summary>
            <para><ch>开始取流</ch></para>
            <para><en>Start grabbing, then you can get the camera frame through #eidGetFrame</en></para>
            </summary>
            <param name="bufferCount"><para><ch>[in] å¸§ç¼“存数量, 0表示使用默认缓存数, >0使用设置的缓存数</ch></para><para><en>[in] The number of frame buffers, 0 means to use the default number of buffers, >0 to use the set number of buffers</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidStopGrabbing_Net">
            <summary>
            <para><ch>停止取流</ch></para>
            <para><en>Stop grabbing</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsGrabbing_Net">
            <summary>
            <para><ch>是否正在取流</ch></para>
            <para><en>Check whether it is grabbing or not</en></para>
            </summary>
            <returns><para><ch>如果正在取流, è¿”回true; å¦åˆ™è¿”回false</ch></para><para><en>Returns true if it is grabbing; otherwise returns false</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidClearFrameBuffer_Net">
            <summary>
            <para><ch>清除帧数据缓存</ch></para>
            <para><en>clear frame buffer cache</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFrame_Net(System.UInt32)">
            <summary>
            <para><ch>获取一帧图像, è‹¥ç›¸æœºå¼€å¯äº†è¯»ç åŠŸèƒ½, å¸§æ•°æ®ä¸­åŒæ—¶æºå¸¦æ¡ç ä¿¡æ¯.</ch></para>
            <para><en>Get a frame. If the code reading function is enabled, the frame data also carries the barcode information.</en></para>
            </summary>
            <param name="timeout"><para><ch>[in] è¶…æ—¶æ—¶é—´, å•位: æ¯«ç§’. å½“值为-1时表示无限等待</ch></para><para><en>[in] Timeout, in ms, when the value is -1, it means infinite wait</en></para></param>
            <returns><para><ch>帧数据句柄, å¤±è´¥è¿”回 nullptr</ch></para><para><en>Frame handle, failure returns nullptr</en></para></returns>
            <remarks><para><ch>该接口将导致线程阻塞, ç›´åˆ°æ”¶åˆ°å›¾åƒæˆ–者到达超时时间. è¿”回的句柄需要通过 #eidReleaseFrame_Net è¿›è¡Œé‡Šæ”¾</ch></para><para><en>This method will block the thread until the timeout is reached.
             The returned handle needs to be released through #eidReleaseFrame_Net</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidReleaseFrame_Net(System.IntPtr@)">
            <summary>
            <para><ch>释放一帧图像</ch></para>
            <para><en>Release a frame</en></para>
            </summary>
            <param name="frame"><para><ch>帧数据句柄</ch></para><para><en>Frame handle</en></para></param>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFrameValid_Net(System.IntPtr)">
            <summary>
            <para><ch>帧句柄是否有效</ch></para>
            <para><en>Is the frame handle valid</en></para>
            </summary>
            <param name="frame"><para><ch>[in] å¸§å¥æŸ„</ch></para><para><en>[in] Frame handle</en></para></param>
            <returns><para><ch>true æœ‰æ•ˆ,false æ— æ•ˆ</ch></para><para><en>true Valid,false Not valid</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFrameInfo_Net(System.IntPtr,EasyIDSDK_Net.EidCamera.EidFrameInfo@)">
            <summary>
            <para><ch>获取帧信息. å¸§ä¿¡æ¯é‡ŒåŒæ—¶åŒ…含图像数据和条码数据</ch></para>
            <para><en>Get frame information. The frame information contains both image data and barcode data</en></para>
            </summary>
            <param name="frame"><para><ch>[in] å¸§å¥æŸ„</ch></para><para><en>[in] Frame handle</en></para></param>
            <param name="info"><para><ch>[out] å¸§ä¿¡æ¯</ch></para><para><en>[out] Frame information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterFrameCallback_Net(EasyIDSDK_Net.EidCamera.EidFrameCallback,System.IntPtr)">
            <summary>
            <para><ch>注册帧数据回调</ch></para>
            <para><en>Register frame data callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] å¸§æ•°æ®å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to frame data callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterConnectionCallback_Net(EasyIDSDK_Net.EidCamera.EidConnectionCallback,System.IntPtr)">
            <summary>
            <para><ch>注册设备连接信息回调</ch></para>
            <para><en>Register device connection information callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] è¿žæŽ¥ä¿¡æ¯å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to device connection information callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterFeatureUpdateCallback_Net(EasyIDSDK_Net.EidCamera.EidFeatureUpdateCallback,System.IntPtr)">
            <summary>
            <para><ch>注册设备属性更新回调</ch></para>
            <para><en>Register device feature update callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] å±žæ€§æ›´æ–°å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to device feature update callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFeatureType">
            <summary>
            <para><ch>属性类型</ch></para>
            <para><en>Feature type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeUnknown">
            <summary>
            <para><ch>未定义</ch></para>
            <para><en>Undefined</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeInt">
            <summary>
            <para><ch>整型数</ch></para>
            <para><en>Integer</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeFloat">
            <summary>
            <para><ch>浮点数</ch></para>
            <para><en>Float</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeEnum">
            <summary>
            <para><ch>枚举</ch></para>
            <para><en>Enumeration</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeBool">
            <summary>
            <para><ch>布尔</ch></para>
            <para><en>Bool</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeString">
            <summary>
            <para><ch>字符串</ch></para>
            <para><en>String</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeCommand">
            <summary>
            <para><ch>命令</ch></para>
            <para><en>Command</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeGroup">
            <summary>
            <para><ch>分组</ch></para>
            <para><en>Group</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidInterfaceType">
            <summary>
            <para><ch>接口类型</ch></para>
            <para><en>Interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeUnknown">
            <summary>
            <para><ch>未知接口类型</ch></para>
            <para><en>Unknown interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeGige">
            <summary>
            <para><ch>网卡接口类型</ch></para>
            <para><en>NIC type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeUsb">
            <summary>
            <para><ch>USB接口类型</ch></para>
            <para><en>USB interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeAll">
            <summary>
            <para><ch>所有接口类型</ch></para>
            <para><en>All interface type</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceType">
            <summary>
            <para><ch>设备类型</ch></para>
            <para><en>Device type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeUnknown">
            <summary>
            <para><ch>未知类型</ch></para>
            <para><en>Unknown type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeGige">
            <summary>
            <para><ch>GIGE相机</ch></para>
            <para><en>GigE Camera</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeUSB">
            <summary>
            <para><ch>USB相机</ch></para>
            <para><en>USB Camera</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceDataType">
            <summary>
            <para><ch>设备数据类型, ç”¨äºŽ #eidCreateDevice å‡½æ•°</ch></para>
            <para><en>Device data type, used in the #eidCreateDevice function</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeID">
            <summary>
            <para><ch>设备ID</ch></para>
            <para><en>Device ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeSN">
            <summary>
            <para><ch>序列号</ch></para>
            <para><en>Serial number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeIP">
            <summary>
            <para><ch>IP地址</ch></para>
            <para><en>IP address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeMAC">
            <summary>
            <para><ch>MAC地址</ch></para>
            <para><en>MAC address</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidPixelFormat">
            <summary>
            <para><ch>图像像素格式</ch></para>
            <para><en>Image pixel format</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelUnknwon">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono1p">
            <summary>
            <para><ch>Mono1p</ch></para>
            <para><en>Mono1p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono2p">
            <summary>
            <para><ch>Mono2p</ch></para>
            <para><en>Mono2p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono4p">
            <summary>
            <para><ch>Mono4p</ch></para>
            <para><en>Mono4p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono8">
            <summary>
            <para><ch>Mono8</ch></para>
            <para><en>Mono8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono8S">
            <summary>
            <para><ch>Mono8S</ch></para>
            <para><en>Mono8S</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono10">
            <summary>
            <para><ch>Mono10</ch></para>
            <para><en>Mono10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono10Packed">
            <summary>
            <para><ch>Mono10Packed</ch></para>
            <para><en>Mono10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono12">
            <summary>
            <para><ch>Mono12</ch></para>
            <para><en>Mono12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono12Packed">
            <summary>
            <para><ch>Mono12Packed</ch></para>
            <para><en>Mono12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono14">
            <summary>
            <para><ch>Mono14</ch></para>
            <para><en>Mono14</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono16">
            <summary>
            <para><ch>Mono16</ch></para>
            <para><en>Mono16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR8">
            <summary>
            <para><ch>BayGR8</ch></para>
            <para><en>BayGR8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG8">
            <summary>
            <para><ch>BayRG8</ch></para>
            <para><en>BayRG8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB8">
            <summary>
            <para><ch>BayGB8</ch></para>
            <para><en>BayGB8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG8">
            <summary>
            <para><ch>BayBG8</ch></para>
            <para><en>BayBG8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR10">
            <summary>
            <para><ch>BayGR10</ch></para>
            <para><en>BayGR10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG10">
            <summary>
            <para><ch>BayRG10</ch></para>
            <para><en>BayRG10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB10">
            <summary>
            <para><ch>BayGB10</ch></para>
            <para><en>BayGB10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG10">
            <summary>
            <para><ch>BayBG10</ch></para>
            <para><en>BayBG10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR12">
            <summary>
            <para><ch>BayGR12</ch></para>
            <para><en>BayGR12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG12">
            <summary>
            <para><ch>BayRG12</ch></para>
            <para><en>BayRG12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB12">
            <summary>
            <para><ch>BayGB12</ch></para>
            <para><en>BayGB12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG12">
            <summary>
            <para><ch>BayBG12</ch></para>
            <para><en>BayBG12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR10Packed">
            <summary>
            <para><ch>BayGR10Packed</ch></para>
            <para><en>BayGR10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG10Packed">
            <summary>
            <para><ch>BayRG10Packed</ch></para>
            <para><en>BayRG10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB10Packed">
            <summary>
            <para><ch>BayGB10Packed</ch></para>
            <para><en>BayGB10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG10Packed">
            <summary>
            <para><ch>BayBG10Packed</ch></para>
            <para><en>BayBG10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR12Packed">
            <summary>
            <para><ch>BayGR12Packed</ch></para>
            <para><en>BayGR12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG12Packed">
            <summary>
            <para><ch>BayRG12Packed</ch></para>
            <para><en>BayRG12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB12Packed">
            <summary>
            <para><ch>BayGB12Packed</ch></para>
            <para><en>BayGB12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG12Packed">
            <summary>
            <para><ch>BayBG12Packed</ch></para>
            <para><en>BayBG12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR16">
            <summary>
            <para><ch>BayGR16</ch></para>
            <para><en>BayGR16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG16">
            <summary>
            <para><ch>BayRG16</ch></para>
            <para><en>BayRG16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB16">
            <summary>
            <para><ch>BayGB16</ch></para>
            <para><en>BayGB16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG16">
            <summary>
            <para><ch>BayBG16</ch></para>
            <para><en>BayBG16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB8">
            <summary>
            <para><ch>RGB8</ch></para>
            <para><en>RGB8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR8">
            <summary>
            <para><ch>BGR8</ch></para>
            <para><en>BGR8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGBA8">
            <summary>
            <para><ch>RGBA8</ch></para>
            <para><en>RGBA8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGRA8">
            <summary>
            <para><ch>BGRA8</ch></para>
            <para><en>BGRA8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10">
            <summary>
            <para><ch>RGB10</ch></para>
            <para><en>RGB10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR10">
            <summary>
            <para><ch>BGR10</ch></para>
            <para><en>BGR10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12">
            <summary>
            <para><ch>RGB12</ch></para>
            <para><en>RGB12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR12">
            <summary>
            <para><ch>BGR12</ch></para>
            <para><en>BGR12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB16">
            <summary>
            <para><ch>RGB16</ch></para>
            <para><en>RGB16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10V1Packed">
            <summary>
            <para><ch>RGB10V1Packed</ch></para>
            <para><en>RGB10V1Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10P32">
            <summary>
            <para><ch>RGB10P32</ch></para>
            <para><en>RGB10P32</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12V1Packed">
            <summary>
            <para><ch>RGB12V1Packed</ch></para>
            <para><en>RGB12V1Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB565P">
            <summary>
            <para><ch>RGB565P</ch></para>
            <para><en>RGB565P</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR565P">
            <summary>
            <para><ch>BGR565P</ch></para>
            <para><en>BGR565P</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV411_8_UYYVYY">
            <summary>
            <para><ch>YUV411_8_UYYVYY</ch></para>
            <para><en>YUV411_8_UYYVYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV422_8_UYVY">
            <summary>
            <para><ch>YUV422_8_UYVY</ch></para>
            <para><en>YUV422_8_UYVY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV422_8">
            <summary>
            <para><ch>YUV422_8 </ch></para>
            <para><en>YUV422_8 </en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV8_UYV">
            <summary>
            <para><ch>YUV8_UYV</ch></para>
            <para><en>YUV8_UYV</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr8CbYCr">
            <summary>
            <para><ch>YCbCr8CbYCr</ch></para>
            <para><en>YCbCr8CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr422_8">
            <summary>
            <para><ch>YCbCr422_8</ch></para>
            <para><en>YCbCr422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr422_8_CbYCrY</ch></para>
            <para><en>YCbCr422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_8_CbYCr">
            <summary>
            <para><ch>YCbCr601_8_CbYCr</ch></para>
            <para><en>YCbCr601_8_CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_422_8">
            <summary>
            <para><ch>YCbCr601_422_8</ch></para>
            <para><en>YCbCr601_422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr601_422_8_CbYCrY</ch></para>
            <para><en>YCbCr601_422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr601_411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr601_411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_8_CbYCr">
            <summary>
            <para><ch>YCbCr709_8_CbYCr</ch></para>
            <para><en>YCbCr709_8_CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_422_8">
            <summary>
            <para><ch>YCbCr709_422_8</ch></para>
            <para><en>YCbCr709_422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr709_422_8_CbYCrY</ch></para>
            <para><en>YCbCr709_422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr709_411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr709_411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB8Planar">
            <summary>
            <para><ch>RGB8Planar</ch></para>
            <para><en>RGB8Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10Planar">
            <summary>
            <para><ch>RGB10Planar</ch></para>
            <para><en>RGB10Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12Planar">
            <summary>
            <para><ch>RGB12Planar</ch></para>
            <para><en>RGB12Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB16Planar">
            <summary>
            <para><ch>RGB16Planar</ch></para>
            <para><en>RGB16Planar</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidReadState">
            <summary>
            <para><ch>读码状态</ch></para>
            <para><en>Code reading state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateUnknown">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateNA">
            <summary>
            <para><ch>无效</ch></para>
            <para><en>Not available</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateComplete">
            <summary>
            <para><ch>全部</ch></para>
            <para><en>Complete</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateNoRead">
            <summary>
            <para><ch>无条码</ch></para>
            <para><en>No code was read</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePartial">
            <summary>
            <para><ch>部分</ch></para>
            <para><en>Partial</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateFail">
            <summary>
            <para><ch>失败</ch></para>
            <para><en>Fail</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseNA">
            <summary>
            <para><ch>无效(Phase模式)</ch></para>
            <para><en>Not available(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseComplete">
            <summary>
            <para><ch>全部(Phase模式)</ch></para>
            <para><en>Complete(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseNoRead">
            <summary>
            <para><ch>无条码(Phase模式)</ch></para>
            <para><en>No code was read(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhasePartial">
            <summary>
            <para><ch>部分(Phase模式)</ch></para>
            <para><en>Partial(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseFail">
            <summary>
            <para><ch>失败(Phase模式)</ch></para>
            <para><en>Fail(Phase mode)</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidBarcodeType">
            <summary>
            <para><ch>码类型</ch></para>
            <para><en>Barcode type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUnknown">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeEAN8">
            <summary>
            <para><ch>EAN8</ch></para>
            <para><en>EAN8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeEAN13">
            <summary>
            <para><ch>EAN13</ch></para>
            <para><en>EAN13 type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode39">
            <summary>
            <para><ch>Code39</ch></para>
            <para><en>Code39</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode93">
            <summary>
            <para><ch>Code93</ch></para>
            <para><en>Code93</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode128">
            <summary>
            <para><ch>Code128</ch></para>
            <para><en>Code128</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUPCA">
            <summary>
            <para><ch>UPCA</ch></para>
            <para><en>UPCA</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUPCE">
            <summary>
            <para><ch>UPCE</ch></para>
            <para><en>UPCE</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeITF25">
            <summary>
            <para><ch>ITF25</ch></para>
            <para><en>ITF25</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODABAR">
            <summary>
            <para><ch>CODABAR</ch></para>
            <para><en>CODABAR</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128A">
            <summary>
            <para><ch>CODE128A</ch></para>
            <para><en>CODE128A</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128B">
            <summary>
            <para><ch>CODE128B</ch></para>
            <para><en>CODE128B</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128C">
            <summary>
            <para><ch>CODE128C</ch></para>
            <para><en>CODE128C</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeQR">
            <summary>
            <para><ch>QR</ch></para>
            <para><en>QR</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeDM">
            <summary>
            <para><ch>DM</ch></para>
            <para><en>DM</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypePDF417">
            <summary>
            <para><ch>PDF417</ch></para>
            <para><en>PDF417</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeVERICODE">
            <summary>
            <para><ch>VERICODE</ch></para>
            <para><en>VERICODE</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionState">
            <summary>
            <para><ch>连接事件类型</ch></para>
            <para><en>Connect event type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionState.eidConnStateOffline">
            <summary>
            <para><ch>离线</ch></para>
            <para><en>Offline</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionState.eidConnStateOnline">
            <summary>
            <para><ch>在线</ch></para>
            <para><en>Online</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo">
            <summary>
            <para><ch>GigE设备信息</ch></para>
            <para><en>GigE device info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.macAddress">
            <summary>
            <para><ch>设备Mac地址</ch></para>
            <para><en>Device MAC Address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.ipAddress">
            <summary>
            <para><ch>设备Ip地址</ch></para>
            <para><en>Device ip Address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.subnetMask">
            <summary>
            <para><ch>子网掩码</ch></para>
            <para><en>SubnetMask</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.defaultGateWay">
            <summary>
            <para><ch>默认网关</ch></para>
            <para><en>Default GateWay</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.isIpValid">
            <summary>
            <para><ch>Ip是否有效</ch></para>
            <para><en>Ip valid</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.chReserved">
            <summary>
            <para><ch>保留</ch></para>
            <para><en>Reserved field</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceInfo">
            <summary>
            <para><ch>设备信息</ch></para>
            <para><en>Device info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceType">
            <summary>
            <para><ch>设备类别</ch></para>
            <para><en>Device type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.interfaceType">
            <summary>
            <para><ch>接口类别</ch></para>
            <para><en>Interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceID">
            <summary>
            <para><ch>设备ID</ch></para>
            <para><en>Device ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.cameraName">
            <summary>
            <para><ch>用户自定义名</ch></para>
            <para><en>User defined name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.serialNumber">
            <summary>
            <para><ch>设备序列号</ch></para>
            <para><en>Device serial number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.vendorName">
            <summary>
            <para><ch>厂商</ch></para>
            <para><en>Device vendor</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.modelName">
            <summary>
            <para><ch>设备型号</ch></para>
            <para><en>Device model</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.manufactureInfo">
            <summary>
            <para><ch>设备制造信息</ch></para>
            <para><en>Device manufacture</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceVersion">
            <summary>
            <para><ch>设备版本</ch></para>
            <para><en>Device version</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.interfaceName">
            <summary>
            <para><ch>接口名</ch></para>
            <para><en>Interface name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reseved</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.stSpecialInfo">
            <summary>
            <para><ch>具体设备信息</ch></para>
            <para><en>special device Info</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceInfo.SPECIAL_INFO">
            <summary>
            <para><ch>具体设备信息</ch></para>
            <para><en>special device Info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.SPECIAL_INFO.gigeDeviceInfo">
            <summary>
            <para><ch>Gige设备信息</ch></para>
            <para><en>Gige device info</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceList">
            <summary>
            <para><ch>设备信息列表</ch></para>
            <para><en>Device information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.num">
            <summary>
            <para><ch>设备数量</ch></para>
            <para><en>Device Number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.infos">
            <summary>
            <para><ch>设备信息列表</ch></para>
            <para><en>Device information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidErrorList">
            <summary>
            <para><ch>错误列表</ch></para>
            <para><en>Error list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.num">
            <summary>
            <para><ch>失败的属性数量</ch></para>
            <para><en>Number of failed features</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.names">
            <summary>
            <para><ch>失败属性名列表</ch></para>
            <para><en>Error feature name list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo">
            <summary>
            <para><ch>整型属性信息</ch></para>
            <para><en>int feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.current">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.min">
            <summary>
            <para><ch>最小值</ch></para>
            <para><en>Minimum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.max">
            <summary>
            <para><ch>最大值</ch></para>
            <para><en>Maximum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.inc">
            <summary>
            <para><ch>增量</ch></para>
            <para><en>Increment</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo">
            <summary>
            <para><ch>浮点型属性信息</ch></para>
            <para><en>float feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.current">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.min">
            <summary>
            <para><ch>最小值</ch></para>
            <para><en>Minimum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.max">
            <summary>
            <para><ch>最大值</ch></para>
            <para><en>Maximum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.unit">
            <summary>
            <para><ch>单位</ch></para>
            <para><en>Unit</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo">
            <summary>
            <para><ch>字符串型属性信息</ch></para>
            <para><en>String feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.maxLen">
            <summary>
            <para><ch>最大长度</ch></para>
            <para><en>The maximum length of the String</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.value">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry">
            <summary>
            <para><ch>枚举型属性条目</ch></para>
            <para><en>enum feature entry</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry.value">
            <summary>
            <para><ch>值</ch></para>
            <para><en>Value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry.name">
            <summary>
            <para><ch>名称</ch></para>
            <para><en>Current Name</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList">
            <summary>
            <para><ch>枚举型属性信息</ch></para>
            <para><en>enum feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList.num">
            <summary>
            <para><ch>数量</ch></para>
            <para><en>count</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList.entryList">
            <summary>
            <para><ch>条目列表</ch></para>
            <para><en>Entry list</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidPoint">
            <summary>
            <para><ch>二维坐标点</ch></para>
            <para><en>2D coordinate point</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPoint.x">
            <summary>
            <para><ch>x坐标</ch></para>
            <para><en>x-coordinate</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPoint.y">
            <summary>
            <para><ch>y坐标</ch></para>
            <para><en>y-coordinate</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidCodeInfo">
            <summary>
            <para><ch>条码信息</ch></para>
            <para><en>Barcode information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.type">
            <summary>
            <para><ch>类型</ch></para>
            <para><en>Code type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.ppm">
            <summary>
            <para><ch>PPM</ch></para>
            <para><en>PPM</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.position">
            <summary>
            <para><ch>位置, 4个点</ch></para>
            <para><en>Position, 4 points</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.data">
            <summary>
            <para><ch>内容</ch></para>
            <para><en>Code content</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.typeName">
            <summary>
            <para><ch>类型名称</ch></para>
            <para><en>Code type name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFrameInfo">
            <summary>
            <para><ch>帧信息</ch></para>
            <para><en>Frame information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.id">
            <summary>
            <para><ch>帧ID</ch></para>
            <para><en>Frame block ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.timestamp">
            <summary>
            <para><ch>时间戳</ch></para>
            <para><en>Timestamp</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.width">
            <summary>
            <para><ch>图像宽度</ch></para>
            <para><en>Image width</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.height">
            <summary>
            <para><ch>图像高度</ch></para>
            <para><en>Image height</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.format">
            <summary>
            <para><ch>像素格式</ch></para>
            <para><en>Pixel format</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.readState">
            <summary>
            <para><ch>读码状态</ch></para>
            <para><en>Code reading state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.codeNum">
            <summary>
            <para><ch>条码数量</ch></para>
            <para><en>Number of barcodes</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.imageDataLen">
            <summary>
            <para><ch>图像数据长度</ch></para>
            <para><en>Length of image data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.imageData">
            <summary>
            <para><ch>图像数据</ch></para>
            <para><en>Image data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.codeList">
            <summary>
            <para><ch>条码信息列</ch></para>
            <para><en>Barcode information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.isJpeg">
            <summary>
            <para><ch>是否jpeg图</ch></para>
            <para><en>Is jpeg image</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionInfo">
            <summary>
            <para><ch>连接信息</ch></para>
            <para><en>Connetion information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionInfo.state">
            <summary>
            <para><ch>连接状态</ch></para>
            <para><en>Connetion state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFrameCallback">
            <summary>
            <para><ch>帧数据回调函数</ch></para>
            <para><en>Frame data callback function</en></para>
            </summary>
            <param name="frameInfo"><para><ch>帧信息</ch></para><para><en>frameInfo Frame info</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionCallback">
            <summary>
            <para><ch>设备连接信息回调函数</ch></para>
            <para><en>Device connection information callback function</en></para>
            </summary>
            <param name="frameInfo"><para><ch>连接信息</ch></para><para><en>info Connection infomation</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFeatureUpdateCallback">
            <summary>
            <para><ch>设备属性更新回调函数</ch></para>
            <para><en>Device feature update callback function</en></para>
            </summary>
            <param name="name"><para><ch>属性名称</ch></para><para><en>name Device feature name</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureChildrenCallback">
            <summary>
            <para><ch>枚举子属性的回调函数, åœ¨ eidEnumFeatureChildren å‡½æ•°ä¸­ä½¿ç”¨, æ¯æ¬¡æŽ¥æ”¶ä¸€ä¸ªå­å±žæ€§çš„名称</ch></para>
            <para><en>Callback function used with the eidEnumFeatureChildren function. It receives children feature names</en></para>
            </summary>
            <param name="name"><para><ch>子属性名称</ch></para><para><en>name child feature name</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
    </members>
</doc>
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.deps.json
@@ -1827,6 +1827,14 @@
            "fileVersion": "4.7.0.2"
          }
        }
      },
      "EasyIDSDK_Net/1.3.0.9252": {
        "runtime": {
          "EasyIDSDK_Net.dll": {
            "assemblyVersion": "1.3.0.9252",
            "fileVersion": "1.0.0.42745"
          }
        }
      }
    }
  },
@@ -2658,6 +2666,11 @@
      "type": "reference",
      "serviceable": false,
      "sha512": ""
    },
    "EasyIDSDK_Net/1.3.0.9252": {
      "type": "reference",
      "serviceable": false,
      "sha512": ""
    }
  }
}
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.exe
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVision.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.exe
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionControls.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionControls.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionFlowNode.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionFlowNode.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionProcesses.dll
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/LB_VisionProcesses.pdb
Binary files differ
LB_SmartVision/bin/Debug/net8.0-windows/Log/Debug_Log/2026-03/2026-03-31.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Debug_Log/2026-04/2026-04-01.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Error_Log/2026-03/2026-03-31.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Error_Log/2026-04/2026-04-01.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Fatal/2026-03/2026-03-31.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Fatal/2026-04/2026-04-01.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Run_Log/2026-03/2026-03-31.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
2026-03-31 09:38:59,921 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:日志系统启动成功
2026-03-31 09:39:06,412 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Run
2026-03-31 09:39:06,425 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Debug
2026-03-31 09:39:06,429 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Error
2026-03-31 09:39:06,429 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Fatal
2026-03-31 09:39:06,430 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Warn
2026-03-31 09:39:06,847 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:初始化通讯口[通讯口0]成功
2026-03-31 09:39:06,854 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯口[通讯口0]加载触发通讯
2026-03-31 09:39:06,855 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯加载成功
2026-03-31 09:39:07,082 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:相机加载成功
2026-03-31 09:39:07,089 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局变量加载成功
2026-03-31 09:39:07,092 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:运动控制参数加载成功
2026-03-31 09:39:07,104 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:光源控制加载成功
2026-03-31 09:39:07,531 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[结束]
2026-03-31 09:39:07,628 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[相机取图]
2026-03-31 09:39:07,630 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[开始]
2026-03-31 09:39:07,631 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]加载成功
2026-03-31 09:39:07,686 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:添加流程[流程0]
2026-03-31 09:39:07,725 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[结束]
2026-03-31 09:39:07,729 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[相机取图]
2026-03-31 09:39:07,730 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[开始]
2026-03-31 09:39:07,731 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]加载成功
2026-03-31 09:39:07,752 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:添加流程[流程1]
2026-03-31 09:39:07,753 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程加载成功
2026-03-31 09:39:07,756 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程设置加载成功
2026-03-31 09:39:07,759 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程布局加载成功
2026-03-31 09:39:07,763 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程表格加载成功
2026-03-31 09:39:09,174 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:数据库和表创建成功!
2026-03-31 09:39:11,820 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯[通讯口0]接收到的消息"True"
2026-03-31 09:39:11,880 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:检查到可被触发的流程,清空所有流程运行完成标记位!
2026-03-31 09:39:11,890 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]开始运行
2026-03-31 09:39:11,892 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]开始运行
2026-03-31 09:39:13,068 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]运行成功
2026-03-31 09:39:13,070 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]运行成功
2026-03-31 09:39:13,072 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-03-31 09:39:13,074 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-03-31 09:39:18,580 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯[通讯口0]接收到的消息"True"
2026-03-31 09:39:18,582 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:检查到可被触发的流程,清空所有流程运行完成标记位!
2026-03-31 09:39:18,586 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]开始运行
2026-03-31 09:39:18,587 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]开始运行
2026-03-31 09:39:19,430 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]运行成功
2026-03-31 09:39:19,467 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-03-31 09:39:19,468 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]运行成功
2026-03-31 09:39:19,470 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-03-31 09:39:24,665 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程运行设置保存成功
2026-03-31 09:39:24,671 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局变量保存成功
2026-03-31 09:39:24,673 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局布局保存成功
LB_SmartVision/bin/Debug/net8.0-windows/Log/Run_Log/2026-04/2026-04-01.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
2026-04-01 10:17:32,494 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:日志系统启动成功
2026-04-01 10:17:38,969 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Run
2026-04-01 10:17:38,982 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Debug
2026-04-01 10:17:38,985 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Error
2026-04-01 10:17:38,985 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Fatal
2026-04-01 10:17:38,986 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Warn
2026-04-01 10:17:39,380 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:初始化通讯口[通讯口0]成功
2026-04-01 10:17:39,387 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯口[通讯口0]加载触发通讯
2026-04-01 10:17:39,388 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯加载成功
2026-04-01 10:17:39,616 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:相机加载成功
2026-04-01 10:17:39,673 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:读码器加载成功
2026-04-01 10:17:39,681 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局变量加载成功
2026-04-01 10:17:39,684 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:运动控制参数加载成功
2026-04-01 10:17:39,690 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:光源控制加载成功
2026-04-01 10:17:40,069 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[结束]
2026-04-01 10:17:40,172 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[相机取图]
2026-04-01 10:17:40,174 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[开始]
2026-04-01 10:17:40,174 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]加载成功
2026-04-01 10:17:40,242 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:添加流程[流程0]
2026-04-01 10:17:40,265 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[结束]
2026-04-01 10:17:40,267 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[相机取图]
2026-04-01 10:17:40,267 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[开始]
2026-04-01 10:17:40,268 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]加载成功
2026-04-01 10:17:40,288 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:添加流程[流程1]
2026-04-01 10:17:40,288 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程加载成功
2026-04-01 10:17:40,293 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程设置加载成功
2026-04-01 10:17:40,296 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程布局加载成功
2026-04-01 10:17:40,298 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程表格加载成功
2026-04-01 10:17:41,700 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:数据库和表创建成功!
2026-04-01 10:18:01,830 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯[通讯口0]接收到的消息"True"
2026-04-01 10:18:01,877 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:检查到可被触发的流程,清空所有流程运行完成标记位!
2026-04-01 10:18:01,970 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]开始运行
2026-04-01 10:18:01,973 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]开始运行
2026-04-01 10:18:03,094 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]运行成功
2026-04-01 10:18:03,098 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]运行成功
2026-04-01 10:18:03,102 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-04-01 10:18:03,103 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-04-01 10:18:24,762 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[Halcon2D_图像增强工具]
2026-04-01 10:18:36,966 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程运行设置保存成功
2026-04-01 10:18:36,970 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局变量保存成功
2026-04-01 10:18:36,973 [12] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局布局保存成功
2026-04-01 10:19:54,519 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:日志系统启动成功
2026-04-01 10:20:00,128 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Run
2026-04-01 10:20:00,131 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Debug
2026-04-01 10:20:00,132 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Error
2026-04-01 10:20:00,133 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Fatal
2026-04-01 10:20:00,133 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:ℹ️ ç›®å½•已存在: D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\Log\Warn
2026-04-01 10:20:00,526 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:初始化通讯口[通讯口0]成功
2026-04-01 10:20:00,529 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯口[通讯口0]加载触发通讯
2026-04-01 10:20:00,530 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯加载成功
2026-04-01 10:20:00,736 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:相机加载成功
2026-04-01 10:20:00,768 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:读码器加载成功
2026-04-01 10:20:00,775 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局变量加载成功
2026-04-01 10:20:00,777 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:运动控制参数加载成功
2026-04-01 10:20:00,783 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:光源控制加载成功
2026-04-01 10:20:01,172 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[结束]
2026-04-01 10:20:01,258 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[相机取图]
2026-04-01 10:20:01,259 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[开始]
2026-04-01 10:20:01,395 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]添加步骤[Halcon2D_图像增强工具]
2026-04-01 10:20:01,410 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]加载成功
2026-04-01 10:20:01,445 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:添加流程[流程0]
2026-04-01 10:20:01,463 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[结束]
2026-04-01 10:20:01,464 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[相机取图]
2026-04-01 10:20:01,465 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]添加步骤[开始]
2026-04-01 10:20:01,466 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]加载成功
2026-04-01 10:20:01,491 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:添加流程[流程1]
2026-04-01 10:20:01,492 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程加载成功
2026-04-01 10:20:01,495 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程设置加载成功
2026-04-01 10:20:01,498 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程布局加载成功
2026-04-01 10:20:01,503 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程表格加载成功
2026-04-01 10:20:02,784 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:数据库和表创建成功!
2026-04-01 10:20:34,094 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]移除步骤[Halcon2D_图像增强工具]
2026-04-01 10:20:38,009 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯[通讯口0]接收到的消息"True"
2026-04-01 10:20:38,134 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:检查到可被触发的流程,清空所有流程运行完成标记位!
2026-04-01 10:20:38,181 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]开始运行
2026-04-01 10:20:38,327 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]开始运行
2026-04-01 10:20:39,290 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]运行成功
2026-04-01 10:20:39,293 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]运行成功
2026-04-01 10:20:39,296 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-04-01 10:20:39,298 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-04-01 10:20:46,648 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:通讯[通讯口0]接收到的消息"True"
2026-04-01 10:20:46,650 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:检查到可被触发的流程,清空所有流程运行完成标记位!
2026-04-01 10:20:46,654 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]开始运行
2026-04-01 10:20:46,656 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]开始运行
2026-04-01 10:20:47,488 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程1]运行成功
2026-04-01 10:20:47,504 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-04-01 10:20:47,506 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]运行成功
2026-04-01 10:20:47,507 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:发送给[通讯口0]了消息"True"
2026-04-01 10:20:57,194 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程运行设置保存成功
2026-04-01 10:20:57,198 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局变量保存成功
2026-04-01 10:20:57,200 [13] INFO  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:全局布局保存成功
LB_SmartVision/bin/Debug/net8.0-windows/Log/Warn/2026-03/2026-03-31.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@

LB_SmartVision/bin/Debug/net8.0-windows/Log/Warn/2026-04/2026-04-01.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
2026-04-01 10:20:30,398 [13] WARN  LB_SmartVisionCommon.AsyncLogHelper - è®°å½•信息:流程[流程0]步骤"Halcon2D_图像增强工具"更新了
LB_SmartVision/bin/Debug/net8.0-windows/ËùÓвúÆ·/Product0/A_BarcodeReaderConnections.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
{}
LB_SmartVision/bin/Debug/net8.0-windows/Éú²úÊý¾Ý/20260331/Á÷³Ì0.csv
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
名称,时间,耗时,结果,原因,数据0,数据1,数据2
流程0,'09:39:14.07,1018.66,True,运行成功,True,True,True
流程0,'09:39:19.78,838.44,True,运行成功,True,True,True
LB_SmartVision/bin/Debug/net8.0-windows/Éú²úÊý¾Ý/20260331/Á÷³Ì1.csv
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
名称,时间,耗时,结果,原因,数据0,数据1,数据2
流程1,'09:39:14.03,1018.72,True,运行成功,True,True,True
流程1,'09:39:19.89,838.47,True,运行成功,True,True,True
LB_SmartVision/bin/Debug/net8.0-windows/Éú²úÊý¾Ý/20260401/Á÷³Ì0.csv
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
名称,时间,耗时,结果,原因,数据0,数据1,数据2
流程0,'10:18:03.75,1013.18,True,运行成功,True,True,True
流程0,'10:20:40.19,953.19,True,运行成功,True,True,True
流程0,'10:20:47.84,812.75,True,运行成功,True,True,True
LB_SmartVision/bin/Debug/net8.0-windows/Éú²úÊý¾Ý/20260401/Á÷³Ì1.csv
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
名称,时间,耗时,结果,原因,数据0,数据1,数据2
流程1,'10:18:04.06,1013.20,True,运行成功,True,True,True
流程1,'10:20:40.13,953.15,True,运行成功,True,True,True
流程1,'10:20:47.80,812.99,True,运行成功,True,True,True
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_SmartVision")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+63394fccfd4a07428d93f106a46a9393d8a9dd54")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_SmartVision")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_SmartVision")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.AssemblyInfoInputs.cache
@@ -1 +1 @@
f1be0604688d828d358159dfe3babcc37d31955bfe283611de10d376367119cb
3378b4046b2022bfba2e8105f0cc07b12550d7d7b4504c763d9e0b5fc729ff86
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.Forms.Pages.BarcodeReaderPage.BarcodeReaderForm.resources
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.Forms.Pages.BarcodeReaderPage.BarcodeReadersEditPage.resources
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.Forms.Pages.BarcodeReaderPage.CreateBarcodeReaderForm.resources
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.AssemblyReference.cache
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
035cb43308ce30472708ec07677cf794cf5e488f66c503573cc17a85fc73e1c2
e070d96e807d2d3658b93cd87a9f37b7899ef12edea4ebee52144b5776675dcb
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.FileListAbsolute.txt
@@ -713,3 +713,8 @@
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\obj\Debug\net8.0-windows\LB_SmartVision.pdb
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\obj\Debug\net8.0-windows\LB_SmartVision.genruntimeconfig.cache
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\obj\Debug\net8.0-windows\ref\LB_SmartVision.dll
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\obj\Debug\net8.0-windows\LB_SmartVision.Forms.Pages.BarcodeReaderPage.BarcodeReaderForm.resources
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\obj\Debug\net8.0-windows\LB_SmartVision.Forms.Pages.BarcodeReaderPage.BarcodeReadersEditPage.resources
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\obj\Debug\net8.0-windows\LB_SmartVision.Forms.Pages.BarcodeReaderPage.CreateBarcodeReaderForm.resources
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\EasyIDSDK_Net.dll
D:\项目\轮胎外观检测\SmartVision\LB_SmartVision\bin\Debug\net8.0-windows\EasyIDSDK_Net.xml
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.csproj.GenerateResource.cache
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.dll
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/LB_SmartVision.pdb
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/apphost.exe
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/ref/LB_SmartVision.dll
Binary files differ
LB_SmartVision/obj/Debug/net8.0-windows/refint/LB_SmartVision.dll
Binary files differ
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.dll
Binary files differ
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCameraDevice.pdb
Binary files differ
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVisionCameraDevice/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb
Binary files differ
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_SmartVisionCameraDevice")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ceaa09e4baefe84bad268b56bbf8b8f3f1d0f99")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_SmartVisionCameraDevice")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_SmartVisionCameraDevice")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.AssemblyInfoInputs.cache
@@ -1 +1 @@
bed73338798591dec6aeb3b35baeb6c04267679f3e432c5d1c7e58c14c0550a1
ede639e61be9b535fd195321807cbd74a59604b4e75cd516a0f1617df43a4263
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.csproj.AssemblyReference.cache
Binary files differ
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.dll
Binary files differ
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/LB_SmartVisionCameraDevice.pdb
Binary files differ
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/ref/LB_SmartVisionCameraDevice.dll
Binary files differ
LB_SmartVisionCameraDevice/obj/Debug/net8.0-windows/refint/LB_SmartVisionCameraDevice.dll
Binary files differ
LB_SmartVisionCommon/ImageEnhancementData.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LB_SmartVisionCommon
{
    /// <summary>
    /// è®°å½•图像增强算子参数
    /// </summary>
    [JsonObject(MemberSerialization.OptOut)]
    [TypeConverter(typeof(PropertySorter))]
    public class RecordImageEnhancementData
    {
        /// <summary>
        /// ç®—子类型
        /// </summary>
        [Category("RecordImageEnhancementData"), PropertyOrder(1)]
        [DisplayName("算子类型")]
        [Browsable(true)]
        public ImageEnhancementDataType FilterName { get; set; } = ImageEnhancementDataType.比例增强_ScaleImageMax;
        /// <summary>
        /// æŽ©è†œå®½åº¦
        /// </summary>
        [Category("RecordImageEnhancementData"), PropertyOrder(2)]
        [DisplayName("掩膜宽度")]
        [Browsable(true)]
        public string MaskWidth { get; set; }
        /// <summary>
        /// æŽ©è†œé«˜åº¦
        /// </summary>
        [Category("RecordImageEnhancementData"), PropertyOrder(3)]
        [DisplayName("掩膜高度")]
        [Browsable(true)]
        public string MaskHight { get; set; }
        /// <summary>
        /// å¢žå¼ºå› å­
        /// </summary>
        [Category("RecordImageEnhancementData"), PropertyOrder(4)]
        [DisplayName("增强因子")]
        [Browsable(true)]
        public string Factor { get; set; }
        /// <summary>
        /// å¤åˆ¶ç”¨æˆ·æ•°æ®
        /// </summary>
        public RecordImageEnhancementData Clone()
        {
            return new RecordImageEnhancementData
            {
                MaskWidth = this.MaskWidth,
                MaskHight = this.MaskHight,
                Factor = this.Factor,
                FilterName = this.FilterName
            };
        }
    }
    /// <summary>
    /// OperatorType
    /// </summary>
    public enum ImageEnhancementDataType
    {
        /// </summary>
        è¾¹ç¼˜å¢žå¼º_ImageEmphasize,
        /// </summary>
        ç›´æ–¹å›¾å‡è¡¡åŒ–_EquHistoImage,
        /// </summary>
        æ¯”例增强_ScaleImageMax
    }
}
LB_SmartVisionCommon/ImageEnhancementManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,155 @@
using Microsoft.VisualBasic.ApplicationServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LB_SmartVisionCommon
{
    public class ImageEnhancementManager
    {
        private Dictionary<ImageEnhancementDataType, RecordImageEnhancementData> _filters;
        private readonly string _dataFilePath;
        private RecordImageEnhancementData _currentFilter;
        private static ImageEnhancementManager _instance;
        /// <summary>
        /// çº¿ç¨‹é”
        /// </summary>
        private static readonly object _lock = new object();
        private ImageEnhancementManager(string dataFilePath = "imageEnhancements.json")
        {
            _dataFilePath = dataFilePath;
            _filters = new Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>();
            _currentFilter = null;
            LoadUsers();
        }
        public static ImageEnhancementManager Instance
        {
            get
            {
                // åŒé‡æ£€æŸ¥é”å®šç¡®ä¿çº¿ç¨‹å®‰å…¨
                if (_instance == null)
                {
                    lock (_lock)
                    {
                        if (_instance == null)
                        {
                            _instance = new ImageEnhancementManager();
                        }
                    }
                }
                return _instance;
            }
        }
        /// <summary>
        /// æ·»åŠ å›¾åƒå¢žå¼ºç®—å­
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool AddUser(RecordImageEnhancementData filter)
        {
            if (_currentFilter == null)
            {
                _currentFilter = filter;
            }
            try
            {
                RecordImageEnhancementData recordImageEnhancementData = new RecordImageEnhancementData();
                recordImageEnhancementData.MaskWidth = filter.MaskWidth;
                recordImageEnhancementData.MaskHight = filter.MaskHight;
                recordImageEnhancementData.Factor = filter.Factor;
                recordImageEnhancementData.FilterName = filter.FilterName;
                _filters.Add(recordImageEnhancementData.FilterName, recordImageEnhancementData);
            }
            catch (Exception ex)
            {
                MessageBox.Show("该算子已存在");
            }
            SaveUsers();
            return true;
        }
        /// <summary>
        /// åˆ é™¤å›¾åƒå¢žå¼ºç®—子
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public bool DeleteUser(RecordImageEnhancementData filter)
        {
            try
            {
                // 1. ä»Žå­—典中删除
                if (_filters.ContainsKey(filter.FilterName))
                {
                    _filters.Remove(filter.FilterName);
                }
                // 2. å¦‚果删除的是当前滤波,清空_currentFilter
                if (_currentFilter != null && _currentFilter.FilterName == filter.FilterName)
                {
                    _currentFilter = null;
                }
                // 3. ä¿å­˜æ›´æ”¹
                SaveUsers();
                return true;
            }
            catch (Exception ex)
            {
                // è®°å½•日志
                Console.WriteLine($"删除滤波失败: {ex.Message}");
                return false;
            }
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰ç”¨æˆ·åˆ—è¡¨
        /// </summary>
        /// <returns>List<RecordUserData></returns>
        public List<RecordImageEnhancementData> GetAllUsers()
        {
            return _filters.Select(u => u.Value.Clone()).ToList();
        }
        #region json文件保存加载
        /// <summary>
        /// ä¿å­˜ç”¨æˆ·æ•°æ®åˆ°JSON文件
        /// </summary>
        private void SaveUsers()
        {
            try
            {
                ConfigManager<Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>>.SaveConfig<Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>>(_filters, _dataFilePath);
            }
            catch (Exception ex)
            {
                MessageBox.Show($"保存图像增强算子失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// ä»ŽJSON文件加载用户数据
        /// </summary>
        private void LoadUsers()
        {
            try
            {
                if (File.Exists(_dataFilePath))
                {
                    _filters = ConfigManager<Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>>.LoadConfig<Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>>(_dataFilePath) ?? new Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"加载图像增强算子失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                _filters = new Dictionary<ImageEnhancementDataType, RecordImageEnhancementData>();
            }
        }
        #endregion
    }
}
LB_SmartVisionCommon/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVisionCommon/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb
Binary files differ
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_SmartVisionCommon")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ceaa09e4baefe84bad268b56bbf8b8f3f1d0f99")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_SmartVisionCommon")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_SmartVisionCommon")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.AssemblyInfoInputs.cache
@@ -1 +1 @@
959d6ade6d4e0366ee7cef17995f86cfc0528c7ac16079629ae4dc230ce8ff8b
9d753246b7f4ac814ba9d501657d9af8926f9753be106e3f150f86720a6fc02b
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
34ea6d38552704606141803a4c5cdc34954836eff6bf21fb8665e06b5742f4e2
8aaf5fee0a358a502d7857b6c1ee35eb5c80d448425ec87b02720ed2b6d56b4c
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVisionCommon/obj/Debug/net8.0-windows/LB_SmartVisionCommon.pdb
Binary files differ
LB_SmartVisionCommon/obj/Debug/net8.0-windows/ref/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVisionCommon/obj/Debug/net8.0-windows/refint/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionCommon.dll
Binary files differ
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionCommon.pdb
Binary files differ
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.dll
Binary files differ
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.exe
Binary files differ
LB_SmartVisionLoginUI/bin/Debug/net8.0-windows/LB_SmartVisionLoginUI.pdb
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_SmartVisionLoginUI")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ceaa09e4baefe84bad268b56bbf8b8f3f1d0f99")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_SmartVisionLoginUI")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_SmartVisionLoginUI")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.AssemblyInfoInputs.cache
@@ -1 +1 @@
8f65dabee331a7f22a146b35a197ab55bc73b8debd68827fa488f26f95df6060
9134a2d475e3b7b78da89dc0fcb292e0f2748a8ea096e5d2685dc1fec75612a4
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.csproj.AssemblyReference.cache
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.dll
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI.pdb
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.AssemblyInfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     æ­¤ä»£ç ç”±å·¥å…·ç”Ÿæˆã€‚
//     è¿è¡Œæ—¶ç‰ˆæœ¬:4.0.30319.42000
//
//     å¯¹æ­¤æ–‡ä»¶çš„æ›´æ”¹å¯èƒ½ä¼šå¯¼è‡´ä¸æ­£ç¡®çš„行为,并且如果
//     é‡æ–°ç”Ÿæˆä»£ç ï¼Œè¿™äº›æ›´æ”¹å°†ä¼šä¸¢å¤±ã€‚
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_SmartVisionLoginUI")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_SmartVisionLoginUI")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_SmartVisionLoginUI")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// ç”± MSBuild WriteCodeFragment ç±»ç”Ÿæˆã€‚
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.AssemblyInfoInputs.cache
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
9134a2d475e3b7b78da89dc0fcb292e0f2748a8ea096e5d2685dc1fec75612a4
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.GeneratedMSBuildEditorConfig.editorconfig
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net8.0-windows
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v8.0
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = LB_SmartVisionLoginUI
build_property.ProjectDir = D:\项目\轮胎外观检测\SmartVision\LB_SmartVisionLoginUI\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.GlobalUsings.g.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.Drawing;
global using System.Linq;
global using System.Threading;
global using System.Threading.Tasks;
global using System.Windows.Forms;
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.assets.cache
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/LB_SmartVisionLoginUI_d14qog2d_wpftmp.csproj.BuildWithSkipAnalyzers
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/apphost.exe
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/ref/LB_SmartVisionLoginUI.dll
Binary files differ
LB_SmartVisionLoginUI/obj/Debug/net8.0-windows/refint/LB_SmartVisionLoginUI.dll
Binary files differ
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.dll
Binary files differ
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.pdb
Binary files differ
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_VisionControls.dll
Binary files differ
LB_VisionControls/bin/Debug/net8.0-windows7.0/LB_VisionControls.pdb
Binary files differ
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_VisionControls")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ceaa09e4baefe84bad268b56bbf8b8f3f1d0f99")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_VisionControls")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_VisionControls")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.AssemblyInfoInputs.cache
@@ -1 +1 @@
89a50fdb4d4ab973e6c2e9b29c1cb73fad0b4c6a0f4512e34844ff15879cae0f
ead55f714a613a4000a0b9ca0dd6057b89bac794d50a2b202760bc2913a3c2af
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.csproj.AssemblyReference.cache
Binary files differ
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.dll
Binary files differ
LB_VisionControls/obj/Debug/net8.0-windows7.0/LB_VisionControls.pdb
Binary files differ
LB_VisionControls/obj/Debug/net8.0-windows7.0/ref/LB_VisionControls.dll
Binary files differ
LB_VisionControls/obj/Debug/net8.0-windows7.0/refint/LB_VisionControls.dll
Binary files differ
LB_VisionFlowNode/IFlowContext.cs
@@ -297,6 +297,10 @@
        [Node("Halcon2D_找线工具", "Halcon2D算法", "Basic", "Halcon2D_找线工具")]
        public void Halcon2D_找线工具(FlowNode node) { RunNodeAsync(node); }
        [Node("Halcon2D_图像增强工具", "Halcon2D算法", "Basic", "Halcon2D_图像增强工具")]
        public void Halcon2D_图像增强工具(FlowNode node) { RunNodeAsync(node); }
        #endregion
        #region åˆ†å‰²æ¨¡åž‹
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.dll
Binary files differ
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.pdb
Binary files differ
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_VisionFlowNode.dll
Binary files differ
LB_VisionFlowNode/bin/Debug/net8.0-windows7.0/LB_VisionFlowNode.pdb
Binary files differ
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_VisionFlowNode")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ceaa09e4baefe84bad268b56bbf8b8f3f1d0f99")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_VisionFlowNode")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_VisionFlowNode")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.AssemblyInfoInputs.cache
@@ -1 +1 @@
f2a1c49568c954783f75f7dba61ffbc2d35373dd288bf0e3dacff3f935221de7
8fdb696bb7a95ebe136dd8c56256b8f530d125788c5d2b81fe04f0c464672df5
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.csproj.AssemblyReference.cache
Binary files differ
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.dll
Binary files differ
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/LB_VisionFlowNode.pdb
Binary files differ
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/ref/LB_VisionFlowNode.dll
Binary files differ
LB_VisionFlowNode/obj/Debug/net8.0-windows7.0/refint/LB_VisionFlowNode.dll
Binary files differ
LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
@@ -4127,6 +4127,94 @@
        }
        /// <summary>
        /// å›¾åƒå¢žå¼ºç®—法-边缘增强
        /// </summary>
        /// <param name="ho_Image">待测图片</param>
        /// <param name="hv_ImageEnhancementType">滤波器类型(mean/gauss/median)</param>
        /// <param name="hv_Wid">掩膜宽</param>
        /// <param name="hv_High">掩膜高</param>
        /// <param name="hv_Fac">增强因子</param>
        public static void ImageEnhancement(HObject ho_Image, out HObject ho_OutImage, string hv_ImageEnhancementType, int hv_Wid, int hv_High, double hv_Fac)
        {
            HOperatorSet.GenEmptyObj(out ho_OutImage);
            try
            {
                // æ ¹æ®æ»¤æ³¢å™¨ç±»åž‹æ‰§è¡Œç›¸åº”操作
                switch (hv_ImageEnhancementType.ToLower())
                {
                    case "emphasize":
                        HOperatorSet.Emphasize(ho_Image, out ho_OutImage, hv_Wid, hv_High, hv_Fac);
                        break;
                    case "scaleimagemax":
                        HOperatorSet.ScaleImageMax(ho_Image, out ho_OutImage);
                        break;
                    case "equhisto":
                        HOperatorSet.EquHistoImage(ho_Image, out ho_OutImage);
                        break;
                    default:
                        throw new ArgumentException($"不支持的滤波器类型: {hv_ImageEnhancementType}");
                }
            }
            catch (Exception ex)
            {
                // ç¡®ä¿å¼‚常时释放资源
                ho_OutImage?.Dispose();
                throw new Exception($"图像滤波失败: {ex.Message}", ex);
            }
        }
        /// <summary>
        /// å›¾åƒæ»¤æ³¢
        /// </summary>
        /// <param name="ho_Image">待测图片</param>
        /// <param name="ho_OutImage">输出图片</param>
        /// <param name="hv_FilterType">滤波器类型(mean/gauss/median)</param>
        /// <param name="hv_Wid">掩膜宽</param>
        /// <param name="hv_High">掩膜高</param>
        /// <param name="hv_Size">高斯核尺寸</param>
        public static void Filter(HObject ho_Image, out HObject ho_OutImage, string hv_FilterType, int hv_Wid, int hv_High, int hv_Size)
        {
            // åˆå§‹åŒ–输出对象
            HOperatorSet.GenEmptyObj(out ho_OutImage);
            try
            {
                // æ ¹æ®æ»¤æ³¢å™¨ç±»åž‹æ‰§è¡Œç›¸åº”操作
                switch (hv_FilterType.ToLower())
                {
                    case "mean":
                        HOperatorSet.MeanImage(ho_Image, out ho_OutImage, hv_Wid, hv_High);
                        break;
                    case "gauss":
                    case "guass":  // å…¼å®¹æ‹¼å†™é”™è¯¯
                        HOperatorSet.GaussFilter(ho_Image, out ho_OutImage, hv_Size);
                        break;
                    case "median":
                        HOperatorSet.MedianRect(ho_Image, out ho_OutImage, hv_Wid, hv_High);
                        break;
                    default:
                        throw new ArgumentException($"不支持的滤波器类型: {hv_FilterType}");
                }
            }
            catch (Exception ex)
            {
                // ç¡®ä¿å¼‚常时释放资源
                ho_OutImage?.Dispose();
                throw new Exception($"图像滤波失败: {ex.Message}", ex);
            }
        }
        /// <summary>
        /// å¡å°ºç®—法
        /// </summary>
        /// <param name="ho_Image">待测图片</param>
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementTool.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,222 @@
using HalconDotNet;
using LB_SmartVisionCommon;
using LB_VisionControls;
using System;
using System.Collections.Generic;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace LB_VisionProcesses.Alogrithms.Halcon
{
    public enum ImageEnhancementType { Emphasize, EquHisto, ScaleMax }
    public class HImageEnhancementTool : TAlgorithm
    {
        public HImageEnhancementTool()
        {
            strProcessClass = "LB_VisionProcesses.Alogrithms.Halcon.HImageEnhancementTool";
            strProcessName = "Halcon2D_图像增强工具";
            Params.Inputs.Add("滤波器类型", "边缘增强");
            Params.Inputs.Add("掩膜宽", 1);
            Params.Inputs.Add("掩膜高", 1);
            Params.Inputs.Add("增强因子", 1.0);
            //emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )
            Params.Inputs.Add("滤波器类型", "直方图均衡化");
            //equ_histo_image(Image : ImageEquHisto : : )
            Params.Inputs.Add("滤波器类型", "比例增强");
            //scale_image_max(Image : ImageScaleMax : : )
            Params.ROI = new HSegment(0, 0, 250, 250);
        }
        List<RecordImageEnhancementData> recordImageEnhancementDatas = new List<RecordImageEnhancementData>();
        /// <summary>
        /// ç®—子逻辑
        /// </summary>
        public override void TAlgorithmMain()
        {
            #region åˆå§‹åŒ–变量
            HObject ho_Regions, ho_LineXld;
            HOperatorSet.GenEmptyObj(out ho_Regions);
            HOperatorSet.GenEmptyObj(out ho_LineXld);
            #endregion
            try
            {
                if (InputImage == null)
                {
                    Msg = "输入图片为空";
                    Result = false;
                    return;
                }
                if (InputImage is Bitmap)
                {
                    try
                    {
                        using (HImage hImage = new HImage())
                        {
                            Bitmap bitmap = (Bitmap)InputImage;
                            Rectangle rect = new Rectangle(0, 0, ((Bitmap)bitmap).Width, ((Bitmap)bitmap).Height);
                            BitmapData srcBmpData = ((Bitmap)bitmap).LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format32bppRgb);
                            hImage.GenImageInterleaved(srcBmpData.Scan0, "rgbx", ((Bitmap)bitmap).Width, ((Bitmap)bitmap).Height, 0, "byte", ((Bitmap)bitmap).Width, ((Bitmap)bitmap).Height, 0, 0, -1, 0);
                            ((Bitmap)bitmap).UnlockBits(srcBmpData);
                            bitmap.Dispose();
                            bitmap = null;
                            InputImage = null;
                            InputImage = hImage.Clone();
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
                if (!(InputImage is HObject))
                {
                    Msg = "输入图片格式不为HObject";
                    Result = false;
                    return;
                }
                #region è£å‰ªåŒºåŸŸ
                //if (!(Params.ROI is HSegment))
                //{
                //    Msg = "ROI类型错误,必须为HSegment类型";
                //    Result = false;
                //    return;
                //}
                //if (!(InputImage is HObject))
                //{
                //    Msg = "输入图片类型错误,必须为HObject类型";
                //    Result = false;
                //    return;
                //}
                //HObject DomainImage = ((HObject)InputImage)?.CopyObj(1, -1);
                object DomainImage = null;
                if (!ReduceDomainImage(InputImage, ref DomainImage))
                {
                    Msg = "裁剪区域失败";
                    Result = false;
                    return;
                }
                #endregion
                #region ç®—子逻辑
                Record = new ObjectRecord();
                HObject hoDomainImage = DomainImage as HObject;
                HTuple hv_Channels = new HTuple();
                //判断是否为灰度图
                using (HDevDisposeHelper dh = new HDevDisposeHelper())
                {
                    try
                    {
                        HOperatorSet.CountChannels(hoDomainImage, out hv_Channels);
                        if (hv_Channels.TupleInt() != 1)
                            HOperatorSet.Rgb1ToGray(hoDomainImage, out hoDomainImage);
                        //转换后再次检查是否为灰度图
                        HOperatorSet.CountChannels(hoDomainImage, out hv_Channels);
                        if (hv_Channels.TupleInt() != 1)
                        {
                            HOperatorSet.Rgb1ToGray(hoDomainImage, out hoDomainImage);
                            Msg = "输入图片不为灰度图";
                            Result = false;
                            return;
                        }
                    }
                    catch
                    {
                        Msg = "输入图片不为灰度图且转换失败";
                        Result = false;
                        return;
                    }
                }
                int hv_MaskWidth = Convert.ToInt16(Params.Inputs["掩膜宽"]);
                int hv_MaskHight = Convert.ToInt16(Params.Inputs["掩膜高"]);
                double hv_Factor = Convert.ToDouble(Params.Inputs["增强因子"]);
                recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
                string hv_ImageEnhancementType = "";
                foreach (var recordImageEnhancementData in recordImageEnhancementDatas)
                {
                    switch (recordImageEnhancementData.FilterName)
                    {
                        case ImageEnhancementDataType.边缘增强_ImageEmphasize:
                            hv_ImageEnhancementType = "emphasize";
                            hv_MaskWidth = Convert.ToInt16(recordImageEnhancementData.MaskWidth);
                            hv_MaskHight = Convert.ToInt16(recordImageEnhancementData.MaskHight);
                            hv_Factor = Convert.ToDouble(recordImageEnhancementData.Factor);
                            ImageEnhancement(hoDomainImage, out ho_Regions, hv_ImageEnhancementType, hv_MaskWidth, hv_MaskHight, hv_Factor);
                            break;
                        case ImageEnhancementDataType.直方图均衡化_EquHistoImage:
                            hv_ImageEnhancementType = "equhisto";
                            ImageEnhancement(hoDomainImage, out ho_Regions, hv_ImageEnhancementType, hv_MaskWidth, hv_MaskHight, hv_Factor);
                            break;
                        case ImageEnhancementDataType.比例增强_ScaleImageMax:
                            hv_ImageEnhancementType = "scaleimageMax";
                            ImageEnhancement(hoDomainImage, out ho_Regions, hv_ImageEnhancementType, hv_MaskWidth, hv_MaskHight, hv_Factor);
                            break;
                        default:
                            hv_ImageEnhancementType = "scaleImageMax";
                            ImageEnhancement(hoDomainImage, out ho_Regions, hv_ImageEnhancementType, hv_MaskWidth, hv_MaskHight, hv_Factor);
                            break;
                    }
                }
                #endregion
                #region ç”ŸæˆOutputImage给后续处理
                try
                {
                    OutputImage = hoDomainImage;
                }
                catch (Exception ex)
                {
                    Msg = "生成OutputImage失败,原因是:" + ex.ToString();
                    Result = false;
                    return;
                }
                #endregion
                if (Msg == "运行超时")
                {
                    Result = false;
                    return;
                }
                Msg = "运行成功";
                Result = true;
                return;
            }
            catch (Exception ex)
            {
                Msg = "运行失败,原因是:" + ex.ToString().TrimEnd();
                OutputImage = null;
                Result = false;
                return;
            }
            finally
            {
                if (!Result)
                {
                    Params.Outputs.Add("Segment", new HSegment());
                }
                bCompleted = true;
                #region å†…存释放
                ho_Regions.Dispose();
                #endregion
            }
        }
    }
}
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,610 @@
using LB_VisionProcesses.Alogrithms;
namespace LB_VisionProcesses.Alogrithms.Halcon
{
    partial class HImageEnhancementToolEdit
    {
        /// <summary>
        /// å¿…需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// æ¸…理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region ç»„件设计器生成的代码
        /// <summary>
        /// è®¾è®¡å™¨æ”¯æŒæ‰€éœ€çš„æ–¹æ³• - ä¸è¦ä¿®æ”¹
        /// ä½¿ç”¨ä»£ç ç¼–辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            pnlInputImage = new Panel();
            TopToolStrip = new ToolStrip();
            btnRun = new ToolStripButton();
            btnLoadImage = new ToolStripButton();
            btnSaveParas = new ToolStripButton();
            btnLoadParas = new ToolStripButton();
            BtmStatusStrip = new StatusStrip();
            lblResult = new ToolStripStatusLabel();
            lblMsg = new ToolStripStatusLabel();
            lblRunTime = new ToolStripStatusLabel();
            MainTableLayoutPanel = new TableLayoutPanel();
            parasTabControl = new TabControl();
            tabPage1 = new TabPage();
            tableLayoutPanel1 = new TableLayoutPanel();
            dataGridViewIE = new DataGridView();
            tableLayoutPanel4 = new TableLayoutPanel();
            tableLayoutPanel3 = new TableLayoutPanel();
            cmbImageEnhancement = new ComboBox();
            btnAdd = new Button();
            labelImageEnhancement = new Label();
            btnDel = new Button();
            tableLayoutPanel5 = new TableLayoutPanel();
            labelMaskWidth = new Label();
            labelMaskHeight = new Label();
            labelFactor = new Label();
            txtMaskWidth = new TextBox();
            txtMaskHeight = new TextBox();
            txtFactor = new TextBox();
            tabPage5 = new TabPage();
            tableLayoutPanel2 = new TableLayoutPanel();
            cmbTypeRoi = new ComboBox();
            label21 = new Label();
            label22 = new Label();
            cmbFixture = new ComboBox();
            ckbDrawRoi = new CheckBox();
            imgTabControl = new TabControl();
            tabPageInputImage = new TabPage();
            tabPageRecordImage = new TabPage();
            pnlRecordImage = new Panel();
            TopToolStrip.SuspendLayout();
            BtmStatusStrip.SuspendLayout();
            MainTableLayoutPanel.SuspendLayout();
            parasTabControl.SuspendLayout();
            tabPage1.SuspendLayout();
            tableLayoutPanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)dataGridViewIE).BeginInit();
            tableLayoutPanel4.SuspendLayout();
            tableLayoutPanel3.SuspendLayout();
            tableLayoutPanel5.SuspendLayout();
            tabPage5.SuspendLayout();
            tableLayoutPanel2.SuspendLayout();
            imgTabControl.SuspendLayout();
            tabPageInputImage.SuspendLayout();
            tabPageRecordImage.SuspendLayout();
            SuspendLayout();
            //
            // pnlInputImage
            //
            pnlInputImage.Dock = DockStyle.Fill;
            pnlInputImage.Location = new Point(3, 3);
            pnlInputImage.Margin = new Padding(4);
            pnlInputImage.Name = "pnlInputImage";
            pnlInputImage.Size = new Size(596, 510);
            pnlInputImage.TabIndex = 44;
            //
            // TopToolStrip
            //
            TopToolStrip.BackColor = Color.FromArgb(32, 41, 50);
            TopToolStrip.ImageScalingSize = new Size(20, 20);
            TopToolStrip.Items.AddRange(new ToolStripItem[] { btnRun, btnLoadImage, btnSaveParas, btnLoadParas });
            TopToolStrip.Location = new Point(0, 0);
            TopToolStrip.Name = "TopToolStrip";
            TopToolStrip.Size = new Size(1044, 25);
            TopToolStrip.TabIndex = 45;
            TopToolStrip.Text = "toolStrip1";
            //
            // btnRun
            //
            btnRun.BackgroundImageLayout = ImageLayout.Zoom;
            btnRun.ForeColor = Color.White;
            btnRun.ImageTransparentColor = Color.Magenta;
            btnRun.Name = "btnRun";
            btnRun.Size = new Size(36, 22);
            btnRun.Text = "运行";
            btnRun.Click += btnRun_Click;
            //
            // btnLoadImage
            //
            btnLoadImage.ForeColor = Color.White;
            btnLoadImage.ImageTransparentColor = Color.Magenta;
            btnLoadImage.Name = "btnLoadImage";
            btnLoadImage.Size = new Size(36, 22);
            btnLoadImage.Text = "导图";
            btnLoadImage.Click += btnLoadImage_Click;
            //
            // btnSaveParas
            //
            btnSaveParas.ForeColor = Color.White;
            btnSaveParas.ImageTransparentColor = Color.Magenta;
            btnSaveParas.Name = "btnSaveParas";
            btnSaveParas.Size = new Size(36, 22);
            btnSaveParas.Text = "保存";
            btnSaveParas.Click += btnSaveParas_Click;
            //
            // btnLoadParas
            //
            btnLoadParas.ForeColor = Color.White;
            btnLoadParas.ImageTransparentColor = Color.Magenta;
            btnLoadParas.Name = "btnLoadParas";
            btnLoadParas.Size = new Size(36, 22);
            btnLoadParas.Text = "加载";
            //
            // BtmStatusStrip
            //
            BtmStatusStrip.ImageScalingSize = new Size(20, 20);
            BtmStatusStrip.Items.AddRange(new ToolStripItem[] { lblResult, lblMsg, lblRunTime });
            BtmStatusStrip.Location = new Point(0, 577);
            BtmStatusStrip.Name = "BtmStatusStrip";
            BtmStatusStrip.Size = new Size(1044, 22);
            BtmStatusStrip.TabIndex = 46;
            BtmStatusStrip.Text = "statusStrip1";
            //
            // lblResult
            //
            lblResult.Name = "lblResult";
            lblResult.Size = new Size(34, 17);
            lblResult.Text = "True";
            //
            // lblMsg
            //
            lblMsg.Name = "lblMsg";
            lblMsg.Size = new Size(56, 17);
            lblMsg.Text = "运行成功";
            //
            // lblRunTime
            //
            lblRunTime.Name = "lblRunTime";
            lblRunTime.Size = new Size(32, 17);
            lblRunTime.Text = "0ms";
            //
            // MainTableLayoutPanel
            //
            MainTableLayoutPanel.BackColor = Color.FromArgb(32, 41, 50);
            MainTableLayoutPanel.ColumnCount = 2;
            MainTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 41F));
            MainTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 59F));
            MainTableLayoutPanel.Controls.Add(parasTabControl, 0, 0);
            MainTableLayoutPanel.Controls.Add(imgTabControl, 1, 0);
            MainTableLayoutPanel.Dock = DockStyle.Fill;
            MainTableLayoutPanel.Location = new Point(0, 25);
            MainTableLayoutPanel.Name = "MainTableLayoutPanel";
            MainTableLayoutPanel.RowCount = 1;
            MainTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            MainTableLayoutPanel.Size = new Size(1044, 552);
            MainTableLayoutPanel.TabIndex = 47;
            //
            // parasTabControl
            //
            parasTabControl.Controls.Add(tabPage1);
            parasTabControl.Controls.Add(tabPage5);
            parasTabControl.Dock = DockStyle.Fill;
            parasTabControl.Location = new Point(3, 3);
            parasTabControl.Name = "parasTabControl";
            parasTabControl.SelectedIndex = 0;
            parasTabControl.Size = new Size(422, 546);
            parasTabControl.TabIndex = 48;
            //
            // tabPage1
            //
            tabPage1.Controls.Add(tableLayoutPanel1);
            tabPage1.Location = new Point(4, 26);
            tabPage1.Name = "tabPage1";
            tabPage1.Padding = new Padding(3);
            tabPage1.Size = new Size(414, 516);
            tabPage1.TabIndex = 0;
            tabPage1.Text = "输入参数";
            tabPage1.UseVisualStyleBackColor = true;
            //
            // tableLayoutPanel1
            //
            tableLayoutPanel1.ColumnCount = 1;
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.Controls.Add(dataGridViewIE, 0, 1);
            tableLayoutPanel1.Controls.Add(tableLayoutPanel4, 0, 0);
            tableLayoutPanel1.Dock = DockStyle.Fill;
            tableLayoutPanel1.Location = new Point(3, 3);
            tableLayoutPanel1.Margin = new Padding(2, 3, 2, 3);
            tableLayoutPanel1.Name = "tableLayoutPanel1";
            tableLayoutPanel1.RowCount = 2;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 115F));
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.Size = new Size(408, 510);
            tableLayoutPanel1.TabIndex = 1;
            //
            // dataGridViewIE
            //
            dataGridViewIE.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            dataGridViewIE.Dock = DockStyle.Fill;
            dataGridViewIE.Location = new Point(2, 118);
            dataGridViewIE.Margin = new Padding(2, 3, 2, 3);
            dataGridViewIE.Name = "dataGridViewIE";
            dataGridViewIE.RowHeadersWidth = 51;
            dataGridViewIE.Size = new Size(404, 389);
            dataGridViewIE.TabIndex = 2;
            //
            // tableLayoutPanel4
            //
            tableLayoutPanel4.BackColor = Color.FromArgb(32, 41, 50);
            tableLayoutPanel4.ColumnCount = 1;
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel4.Controls.Add(tableLayoutPanel3, 0, 0);
            tableLayoutPanel4.Controls.Add(tableLayoutPanel5, 0, 1);
            tableLayoutPanel4.Dock = DockStyle.Fill;
            tableLayoutPanel4.ForeColor = Color.White;
            tableLayoutPanel4.Location = new Point(2, 3);
            tableLayoutPanel4.Margin = new Padding(2, 3, 2, 3);
            tableLayoutPanel4.Name = "tableLayoutPanel4";
            tableLayoutPanel4.RowCount = 2;
            tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 38F));
            tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel4.Size = new Size(404, 109);
            tableLayoutPanel4.TabIndex = 3;
            //
            // tableLayoutPanel3
            //
            tableLayoutPanel3.ColumnCount = 4;
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 66F));
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 134F));
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
            tableLayoutPanel3.Controls.Add(cmbImageEnhancement, 1, 0);
            tableLayoutPanel3.Controls.Add(btnAdd, 2, 0);
            tableLayoutPanel3.Controls.Add(labelImageEnhancement, 0, 0);
            tableLayoutPanel3.Controls.Add(btnDel, 3, 0);
            tableLayoutPanel3.Location = new Point(2, 3);
            tableLayoutPanel3.Margin = new Padding(2, 3, 2, 3);
            tableLayoutPanel3.Name = "tableLayoutPanel3";
            tableLayoutPanel3.RowCount = 1;
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel3.Size = new Size(400, 32);
            tableLayoutPanel3.TabIndex = 0;
            //
            // cmbImageEnhancement
            //
            cmbImageEnhancement.DropDownStyle = ComboBoxStyle.DropDownList;
            cmbImageEnhancement.FormattingEnabled = true;
            cmbImageEnhancement.ImeMode = ImeMode.Off;
            cmbImageEnhancement.Location = new Point(69, 3);
            cmbImageEnhancement.Name = "cmbImageEnhancement";
            cmbImageEnhancement.Size = new Size(128, 25);
            cmbImageEnhancement.TabIndex = 14;
            cmbImageEnhancement.SelectedIndexChanged += cmbImageEnhancement_SelectedIndexChanged;
            //
            // btnAdd
            //
            btnAdd.Location = new Point(202, 3);
            btnAdd.Margin = new Padding(2, 3, 2, 3);
            btnAdd.Name = "btnAdd";
            btnAdd.Size = new Size(95, 26);
            btnAdd.TabIndex = 15;
            btnAdd.Text = "添加";
            btnAdd.UseVisualStyleBackColor = true;
            btnAdd.Click += btnAdd_Click;
            //
            // labelImageEnhancement
            //
            labelImageEnhancement.AutoSize = true;
            labelImageEnhancement.Location = new Point(2, 0);
            labelImageEnhancement.Margin = new Padding(2, 0, 2, 0);
            labelImageEnhancement.MaximumSize = new Size(0, 28);
            labelImageEnhancement.MinimumSize = new Size(0, 28);
            labelImageEnhancement.Name = "labelImageEnhancement";
            labelImageEnhancement.Size = new Size(56, 28);
            labelImageEnhancement.TabIndex = 1;
            labelImageEnhancement.Text = "滤波类型";
            labelImageEnhancement.TextAlign = ContentAlignment.MiddleCenter;
            //
            // btnDel
            //
            btnDel.Location = new Point(302, 3);
            btnDel.Margin = new Padding(2, 3, 2, 3);
            btnDel.Name = "btnDel";
            btnDel.Size = new Size(96, 26);
            btnDel.TabIndex = 16;
            btnDel.Text = "删除";
            btnDel.UseVisualStyleBackColor = true;
            btnDel.Click += btnDel_Click;
            //
            // tableLayoutPanel5
            //
            tableLayoutPanel5.ColumnCount = 4;
            tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 66F));
            tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 134F));
            tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 66F));
            tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 134F));
            tableLayoutPanel5.Controls.Add(labelMaskWidth, 0, 0);
            tableLayoutPanel5.Controls.Add(labelMaskHeight, 2, 0);
            tableLayoutPanel5.Controls.Add(labelFactor, 0, 1);
            tableLayoutPanel5.Controls.Add(txtMaskWidth, 1, 0);
            tableLayoutPanel5.Controls.Add(txtMaskHeight, 3, 0);
            tableLayoutPanel5.Controls.Add(txtFactor, 1, 1);
            tableLayoutPanel5.Location = new Point(2, 41);
            tableLayoutPanel5.Margin = new Padding(2, 3, 2, 3);
            tableLayoutPanel5.Name = "tableLayoutPanel5";
            tableLayoutPanel5.RowCount = 2;
            tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
            tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
            tableLayoutPanel5.Size = new Size(400, 63);
            tableLayoutPanel5.TabIndex = 1;
            //
            // labelMaskWidth
            //
            labelMaskWidth.AutoSize = true;
            labelMaskWidth.Location = new Point(2, 0);
            labelMaskWidth.Margin = new Padding(2, 0, 2, 0);
            labelMaskWidth.Name = "labelMaskWidth";
            labelMaskWidth.Size = new Size(44, 17);
            labelMaskWidth.TabIndex = 0;
            labelMaskWidth.Text = "掩膜宽";
            //
            // labelMaskHeight
            //
            labelMaskHeight.AutoSize = true;
            labelMaskHeight.Location = new Point(202, 0);
            labelMaskHeight.Margin = new Padding(2, 0, 2, 0);
            labelMaskHeight.Name = "labelMaskHeight";
            labelMaskHeight.Size = new Size(44, 17);
            labelMaskHeight.TabIndex = 1;
            labelMaskHeight.Text = "掩膜高";
            //
            // labelFactor
            //
            labelFactor.AutoSize = true;
            labelFactor.Location = new Point(2, 31);
            labelFactor.Margin = new Padding(2, 0, 2, 0);
            labelFactor.Name = "labelFactor";
            labelFactor.Size = new Size(56, 17);
            labelFactor.TabIndex = 2;
            labelFactor.Text = "增强因子";
            //
            // txtMaskWidth
            //
            txtMaskWidth.Location = new Point(68, 3);
            txtMaskWidth.Margin = new Padding(2, 3, 2, 3);
            txtMaskWidth.Name = "txtMaskWidth";
            txtMaskWidth.Size = new Size(130, 23);
            txtMaskWidth.TabIndex = 3;
            //
            // txtMaskHeight
            //
            txtMaskHeight.Location = new Point(268, 3);
            txtMaskHeight.Margin = new Padding(2, 3, 2, 3);
            txtMaskHeight.Name = "txtMaskHeight";
            txtMaskHeight.Size = new Size(130, 23);
            txtMaskHeight.TabIndex = 4;
            //
            // txtFactor
            //
            txtFactor.Location = new Point(68, 34);
            txtFactor.Margin = new Padding(2, 3, 2, 3);
            txtFactor.Name = "txtFactor";
            txtFactor.Size = new Size(130, 23);
            txtFactor.TabIndex = 5;
            //
            // tabPage5
            //
            tabPage5.BackColor = Color.FromArgb(32, 41, 50);
            tabPage5.Controls.Add(tableLayoutPanel2);
            tabPage5.ForeColor = Color.White;
            tabPage5.Location = new Point(4, 26);
            tabPage5.Name = "tabPage5";
            tabPage5.Size = new Size(414, 516);
            tabPage5.TabIndex = 2;
            tabPage5.Text = "运行参数";
            //
            // tableLayoutPanel2
            //
            tableLayoutPanel2.BackColor = Color.FromArgb(32, 41, 50);
            tableLayoutPanel2.ColumnCount = 4;
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 60F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 150F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel2.Controls.Add(cmbTypeRoi, 1, 0);
            tableLayoutPanel2.Controls.Add(label21, 0, 0);
            tableLayoutPanel2.Controls.Add(label22, 0, 1);
            tableLayoutPanel2.Controls.Add(cmbFixture, 1, 1);
            tableLayoutPanel2.Controls.Add(ckbDrawRoi, 2, 0);
            tableLayoutPanel2.ForeColor = Color.White;
            tableLayoutPanel2.Location = new Point(3, 3);
            tableLayoutPanel2.Name = "tableLayoutPanel2";
            tableLayoutPanel2.RowCount = 8;
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel2.Size = new Size(323, 309);
            tableLayoutPanel2.TabIndex = 4;
            //
            // cmbTypeRoi
            //
            cmbTypeRoi.FormattingEnabled = true;
            cmbTypeRoi.Location = new Point(63, 3);
            cmbTypeRoi.Name = "cmbTypeRoi";
            cmbTypeRoi.Size = new Size(121, 25);
            cmbTypeRoi.TabIndex = 1;
            cmbTypeRoi.SelectedIndexChanged += cmbTypeRoi_SelectedIndexChanged;
            //
            // label21
            //
            label21.AutoSize = true;
            label21.Dock = DockStyle.Fill;
            label21.Location = new Point(3, 0);
            label21.Name = "label21";
            label21.Size = new Size(54, 30);
            label21.TabIndex = 3;
            label21.Text = "ROI";
            label21.TextAlign = ContentAlignment.MiddleCenter;
            //
            // label22
            //
            label22.AutoSize = true;
            label22.Dock = DockStyle.Fill;
            label22.Location = new Point(3, 30);
            label22.Name = "label22";
            label22.Size = new Size(54, 30);
            label22.TabIndex = 4;
            label22.Text = "Fixture";
            label22.TextAlign = ContentAlignment.MiddleCenter;
            //
            // cmbFixture
            //
            cmbFixture.FormattingEnabled = true;
            cmbFixture.Location = new Point(63, 33);
            cmbFixture.Name = "cmbFixture";
            cmbFixture.Size = new Size(121, 25);
            cmbFixture.TabIndex = 5;
            //
            // ckbDrawRoi
            //
            ckbDrawRoi.AutoSize = true;
            ckbDrawRoi.CheckAlign = ContentAlignment.MiddleCenter;
            ckbDrawRoi.Location = new Point(213, 3);
            ckbDrawRoi.Name = "ckbDrawRoi";
            ckbDrawRoi.Size = new Size(14, 14);
            ckbDrawRoi.TabIndex = 2;
            ckbDrawRoi.UseVisualStyleBackColor = true;
            ckbDrawRoi.CheckedChanged += ckbDrawRoi_CheckedChanged;
            //
            // imgTabControl
            //
            imgTabControl.Controls.Add(tabPageInputImage);
            imgTabControl.Controls.Add(tabPageRecordImage);
            imgTabControl.Dock = DockStyle.Fill;
            imgTabControl.Location = new Point(431, 3);
            imgTabControl.Name = "imgTabControl";
            imgTabControl.SelectedIndex = 0;
            imgTabControl.Size = new Size(610, 546);
            imgTabControl.TabIndex = 49;
            //
            // tabPageInputImage
            //
            tabPageInputImage.BackColor = Color.FromArgb(32, 41, 50);
            tabPageInputImage.Controls.Add(pnlInputImage);
            tabPageInputImage.ForeColor = Color.White;
            tabPageInputImage.Location = new Point(4, 26);
            tabPageInputImage.Name = "tabPageInputImage";
            tabPageInputImage.Padding = new Padding(3);
            tabPageInputImage.Size = new Size(602, 516);
            tabPageInputImage.TabIndex = 0;
            tabPageInputImage.Text = "输入图像";
            //
            // tabPageRecordImage
            //
            tabPageRecordImage.BackColor = Color.FromArgb(32, 41, 50);
            tabPageRecordImage.Controls.Add(pnlRecordImage);
            tabPageRecordImage.ForeColor = Color.White;
            tabPageRecordImage.Location = new Point(4, 26);
            tabPageRecordImage.Name = "tabPageRecordImage";
            tabPageRecordImage.Padding = new Padding(3);
            tabPageRecordImage.Size = new Size(602, 516);
            tabPageRecordImage.TabIndex = 1;
            tabPageRecordImage.Text = "结果图像";
            //
            // pnlRecordImage
            //
            pnlRecordImage.BackColor = Color.FromArgb(32, 41, 50);
            pnlRecordImage.Dock = DockStyle.Fill;
            pnlRecordImage.ForeColor = Color.White;
            pnlRecordImage.Location = new Point(3, 3);
            pnlRecordImage.Margin = new Padding(4);
            pnlRecordImage.Name = "pnlRecordImage";
            pnlRecordImage.Size = new Size(596, 510);
            pnlRecordImage.TabIndex = 45;
            //
            // HImageEnhancementToolEdit
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(MainTableLayoutPanel);
            Controls.Add(BtmStatusStrip);
            Controls.Add(TopToolStrip);
            ForeColor = Color.White;
            Margin = new Padding(2, 3, 2, 3);
            Name = "HImageEnhancementToolEdit";
            Size = new Size(1044, 599);
            Load += HImageEnhancementToolEdit_Load;
            TopToolStrip.ResumeLayout(false);
            TopToolStrip.PerformLayout();
            BtmStatusStrip.ResumeLayout(false);
            BtmStatusStrip.PerformLayout();
            MainTableLayoutPanel.ResumeLayout(false);
            parasTabControl.ResumeLayout(false);
            tabPage1.ResumeLayout(false);
            tableLayoutPanel1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)dataGridViewIE).EndInit();
            tableLayoutPanel4.ResumeLayout(false);
            tableLayoutPanel3.ResumeLayout(false);
            tableLayoutPanel3.PerformLayout();
            tableLayoutPanel5.ResumeLayout(false);
            tableLayoutPanel5.PerformLayout();
            tabPage5.ResumeLayout(false);
            tableLayoutPanel2.ResumeLayout(false);
            tableLayoutPanel2.PerformLayout();
            imgTabControl.ResumeLayout(false);
            tabPageInputImage.ResumeLayout(false);
            tabPageRecordImage.ResumeLayout(false);
            ResumeLayout(false);
            PerformLayout();
        }
        #endregion
        private System.Windows.Forms.Panel pnlInputImage;
        private ToolStrip TopToolStrip;
        private ToolStripButton btnRun;
        private StatusStrip BtmStatusStrip;
        private ToolStripStatusLabel lblResult;
        private ToolStripStatusLabel lblMsg;
        private TableLayoutPanel MainTableLayoutPanel;
        private ToolStripButton btnLoadImage;
        private TabControl parasTabControl;
        private TabPage tabPage1;
        private TabPage tabPage5;
        private TabControl imgTabControl;
        private TabPage tabPageInputImage;
        private TabPage tabPageRecordImage;
        private ToolStripButton btnSaveParas;
        private ToolStripButton btnLoadParas;
        private Panel pnlRecordImage;
        private ToolStripStatusLabel lblRunTime;
        private TableLayoutPanel tableLayoutPanel2;
        public ComboBox cmbTypeRoi;
        private Label label21;
        private Label label22;
        private ComboBox cmbFixture;
        private CheckBox ckbDrawRoi;
        private TableLayoutPanel tableLayoutPanel1;
        private TableLayoutPanel tableLayoutPanel3;
        private Label labelImageEnhancement;
        private ComboBox cmbImageEnhancement;
        private DataGridView dataGridViewIE;
        private TableLayoutPanel tableLayoutPanel4;
        private Button btnAdd;
        private TableLayoutPanel tableLayoutPanel5;
        private Label labelMaskWidth;
        private Label labelMaskHeight;
        private TextBox txtMaskWidth;
        private TextBox txtMaskHeight;
        private Label labelFactor;
        private TextBox txtFactor;
        private Button btnDel;
    }
}
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,574 @@
using HalconDotNet;
using LB_SmartVisionCommon;
using LB_VisionControls;
using LB_VisionProcesses.Alogrithms.Halcon;
using Microsoft.VisualBasic.ApplicationServices;
using OpenCvSharp;
using Sunny.UI.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace LB_VisionProcesses.Alogrithms.Halcon
{
    public partial class HImageEnhancementToolEdit : TAlgorithmEdit
    {
        List<RecordImageEnhancementData> recordImageEnhancementDatas = new List<RecordImageEnhancementData>();
        private int rowriginalHeight;
        public HImageEnhancementToolEdit(HImageEnhancementTool subject = null)
        {
            if (subject != null && subject is HImageEnhancementTool)
                Subject = subject;
            else
                Subject = new HImageEnhancementTool();
            //if (!(Subject.Params.ROI is HSegment))
            //    Subject.Params.ROI = new HSegment(0, 0, 250, 250);
            this.Dock = DockStyle.Fill;
            InitializeComponent();
            // ä¿å­˜åŽŸå§‹è¡Œé«˜åº¦
            rowriginalHeight = (int)tableLayoutPanel4.RowStyles[1].Height;
            InitializeComboBox();
            InitializeDataGridView();
            recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
            this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
            this.dataGridViewIE.AutoGenerateColumns = true;
        }
        private void InitializeComboBox()
        {
            // æ·»åŠ æƒé™é€‰é¡¹
            foreach (var item in Enum.GetValues(typeof(ImageEnhancementDataType)))
            {
                cmbImageEnhancement.Items.Add(item.ToString());
            }
            // è®¾ç½®é»˜è®¤é€‰æ‹©é¡¹
            cmbImageEnhancement.SelectedIndex = 2;
        }
        #region ç®—法选择下拉框
        private void cmbImageEnhancement_SelectedIndexChanged(object sender, EventArgs e)
        {
            System.Windows.Forms.ComboBox cb = sender as System.Windows.Forms.ComboBox;
            if (cb.SelectedIndex == 0)
            {
                ShowRow();
            }
            else if (cb.SelectedIndex == 1)
            {
                HideRow();
            }
            else
            {
                HideRow();
            }
        }
        private void ShowRow()
        {
            // æ˜¾ç¤ºRow2(恢复高度)
            tableLayoutPanel4.RowStyles[1].SizeType = SizeType.Absolute;
            tableLayoutPanel4.RowStyles[1].Height = rowriginalHeight;
            // æ˜¾ç¤ºRow2中的控件
            foreach (Control ctrl in tableLayoutPanel4.Controls)
            {
                int row = tableLayoutPanel4.GetRow(ctrl);
                if (row == 1)
                    ctrl.Visible = true;
            }
        }
        private void HideRow()
        {
            // æ˜¾ç¤ºRow2(恢复高度)
            tableLayoutPanel4.RowStyles[1].SizeType = SizeType.Absolute;
            tableLayoutPanel4.RowStyles[1].Height = 0;
            // æ˜¾ç¤ºRow2中的控件
            foreach (Control ctrl in tableLayoutPanel4.Controls)
            {
                int row = tableLayoutPanel4.GetRow(ctrl);
                if (row == 1)
                    ctrl.Visible = false;
            }
        }
        #endregion
        private void InitializeDataGridView()
        {
            this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
            // è®¾ç½®DataGridView列宽
            dataGridViewIE.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
        }
        /// <summary>
        /// æŽ§ä»¶åŠ è½½äº‹ä»¶
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void HImageEnhancementToolEdit_Load(object sender, EventArgs e)
        {
            pnlInputImage.Controls.Add(inputImageHSmartWindowControl);
            inputImageHSmartWindowControl.Dock = DockStyle.Fill;
            pnlRecordImage.Controls.Add(recordImageHSmartWindowControl);
            recordImageHSmartWindowControl.Dock = DockStyle.Fill;
            //遍历可以选择的Roi类型枚举
            foreach (var value in Enum.GetValues(typeof(RoiType)))
                cmbTypeRoi.Items.Add(value.ToString());
            //遍历可以选择的图像增强类型枚举
            //foreach (var value in Enum.GetValues(typeof(ImageEnhancementType)))
            //    cmbImageEnhancement.Items.Add(value.ToString());
            //遍历可以选择的Fixture枚举
            cmbFixture.Items.Add("");
            foreach (string value in IProcess.dicFixtures.Keys)
                cmbFixture.Items.Add(value.ToString());
            ckbDrawRoi.Checked = true;
            cmbTypeRoi.Text = RoiType.Segment.ToString();
            cmbImageEnhancement.Text = ImageEnhancementType.ScaleMax.ToString();
            LoadParas();
            if (Subject.Result)
            {
                lblResult.BackColor = Color.Green;
                lblResult.Text = "True";
            }
            else
            {
                lblResult.BackColor = Color.Red;
                lblResult.Text = "False";
            }
            lblMsg.Text = Msg.Length > 50 ? Msg.Substring(0, 50) : Msg;
            lblMsgToolTip.SetToolTip(BtmStatusStrip, Msg);
            lblRunTime.Text = $"{Subject.RunTime}ms";
        }
        private void ClearInputFields()
        {
            txtMaskWidth.Clear();
            txtMaskHeight.Clear();
            txtFactor.Clear();
            cmbImageEnhancement.SelectedIndex = 0;
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            // éªŒè¯è¾“å…¥
            if (cmbImageEnhancement.SelectedIndex == 0)
            {
                if (string.IsNullOrWhiteSpace(txtMaskWidth.Text) || string.IsNullOrWhiteSpace(txtMaskHeight.Text) || string.IsNullOrWhiteSpace(txtFactor.Text))
                {
                    MessageBox.Show("请填写所有必填字段!", "提示",
                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
            }
            RecordImageEnhancementData filter = new RecordImageEnhancementData();
            filter.MaskWidth = this.txtMaskWidth.Text;
            filter.MaskHight = this.txtMaskHeight.Text;
            filter.Factor = this.txtFactor.Text;
            filter.FilterName = (ImageEnhancementDataType)this.cmbImageEnhancement.SelectedIndex;
            // æ·»åŠ åˆ° UserManager
            bool success = ImageEnhancementManager.Instance.AddUser(filter);
            if (success)
            {
                recordImageEnhancementDatas.Add(filter);
                //MessageBox.Show("用户添加成功!", "提示",
                //    MessageBoxButtons.OK, MessageBoxIcon.Information);
                // æ¸…空输入框
                ClearInputFields();
            }
            else
            {
                MessageBox.Show("添加用户失败!", "错误",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
            this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
            this.dataGridViewIE.AutoGenerateColumns = true;
        }
        private void btnDel_Click(object sender, EventArgs e)
        {
            // æ£€æŸ¥æ˜¯å¦æœ‰é€‰ä¸­çš„æ»¤æ³¢ç±»åž‹
            if (cmbImageEnhancement.SelectedIndex < 0)
            {
                MessageBox.Show("请选择要删除的滤波类型!", "提示",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            try
            {
                DataGridViewRow selectedRow = dataGridViewIE.SelectedRows[0];
                string filterToDel = selectedRow.Cells[0].Value?.ToString();
                ImageEnhancementDataType filterToDelete = (ImageEnhancementDataType)cmbImageEnhancement.SelectedIndex;
                // æŸ¥æ‰¾å¯¹åº”的记录
                RecordImageEnhancementData filterToRemove = null;
                // ä»Žæœ¬åœ°åˆ—表中查找
                foreach (var filter in recordImageEnhancementDatas)
                {
                    if (filter.FilterName.ToString() == filterToDel)
                    {
                        filterToRemove = filter;
                        break;
                    }
                }
                if (filterToRemove == null)
                {
                    MessageBox.Show("未找到对应的记录!", "提示",
                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                // ç¡®è®¤åˆ é™¤
                DialogResult result = MessageBox.Show(
                    $"确定要删除 '{filterToDel}' è®°å½•吗?",
                    "确认删除",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question,
                    MessageBoxDefaultButton.Button2); // é»˜è®¤é€‰æ‹©"否"
                if (result == DialogResult.No)
                    return;
                // ä»Žç®¡ç†å™¨ä¸­åˆ é™¤
                bool success = ImageEnhancementManager.Instance.DeleteUser(filterToRemove);
                if (success)
                {
                    // ä»Žæœ¬åœ°åˆ—表中删除
                    recordImageEnhancementDatas.Remove(filterToRemove);
                    MessageBox.Show("删除成功!", "提示",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("删除失败!", "错误",
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                recordImageEnhancementDatas = ImageEnhancementManager.Instance.GetAllUsers();
                this.dataGridViewIE.DataSource = recordImageEnhancementDatas;
                this.dataGridViewIE.AutoGenerateColumns = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("请选择要删除的算子");
            }
        }
        /// <summary>
        /// æ›´æ–°è¿è¡Œå‚æ•°
        /// </summary>
        public override void UpdataInputs()
        {
            //设置运行参数
            double dResult = 0;
            int iResult = 0;
            if (cmbFixture.Text == "")
                Subject.Params.Fixture = new Fixture();
            else if (IProcess.dicFixtures.ContainsKey(cmbFixture.Text))
                Subject.Params.Fixture = IProcess.dicFixtures[cmbFixture.Text];
            Type type = inputImageHSmartWindowControl.oRoi?.GetType();
            switch (type)
            {
                case Type t when t == typeof(HRectangle2):
                    HRectangle2 hRectangle2 = (HRectangle2)inputImageHSmartWindowControl.oRoi;
                    Subject.Params.ROI
                        = new HRectangle2(hRectangle2.X - Subject.Params.Fixture.X, hRectangle2.Y - Subject.Params.Fixture.Y
                        , hRectangle2.Phi - Subject.Params.Fixture.Phi, hRectangle2.Width, hRectangle2.Height);
                    break;
                case Type t when t == typeof(HCircle):
                    HCircle hCircle = (HCircle)inputImageHSmartWindowControl.oRoi;
                    Subject.Params.ROI
                        = new HCircle(hCircle.X - Subject.Params.Fixture.X, hCircle.Y - Subject.Params.Fixture.Y, hCircle.Radius);
                    break;
                case Type t when t == typeof(HSegment):
                    HSegment hSegment = (HSegment)inputImageHSmartWindowControl.oRoi;
                    Subject.Params.ROI
                        = new HSegment(hSegment.StartX - Subject.Params.Fixture.X, hSegment.StartY - Subject.Params.Fixture.Y
                        , hSegment.EndX - Subject.Params.Fixture.X, hSegment.EndY - Subject.Params.Fixture.Y);
                    break;
                default:
                    Subject.Params.ROI = new ROI();
                    break;
            }
        }
        /// <summary>
        /// åŠ è½½è¿è¡Œå‚æ•°
        /// </summary>
        public override void LoadParas()
        {
            this.BeginInvoke(new Action(() =>
            {
                if (Subject.InputImage != null && Subject.InputImage is HObject)
                    inputImageHSmartWindowControl.ShowHoImage((HObject)Subject.InputImage);
                Type type = Subject.Params.ROI?.GetType();
                if (Subject.Params.ROI != null)
                {
                    switch (type)
                    {
                        case Type t when t == typeof(HRectangle2):
                            cmbTypeRoi.Text = RoiType.Rectangle2.ToString();
                            break;
                        case Type t when t == typeof(HCircle):
                            cmbTypeRoi.Text = RoiType.Circle.ToString();
                            break;
                        case Type t when t == typeof(HSegment):
                            cmbTypeRoi.Text = RoiType.Segment.ToString();
                            break;
                        default:
                            cmbTypeRoi.Text = RoiType.None.ToString();
                            break;
                    }
                    if (cmbTypeRoi.Text.ToString() != "None")
                        ckbDrawRoi.Checked = true;
                    else
                        ckbDrawRoi.Checked = false;
                    inputImageHSmartWindowControl.oRoi = Subject.Params.ROI;
                }
                if (Subject.Params.Fixture != null)
                    cmbFixture.Text = Subject.Params.Fixture.strName;
                else
                    cmbFixture.Text = "";
                switch (type)
                {
                    case Type t when t == typeof(HRectangle2):
                        inputImageHSmartWindowControl.oRoi
                             = new HRectangle2(Subject.Params.ROI.X + Subject.Params.Fixture.X, Subject.Params.ROI.Y + Subject.Params.Fixture.Y
                             , Subject.Params.ROI.Phi + Subject.Params.Fixture.Phi, ((HRectangle2)Subject.Params.ROI).Width, ((HRectangle2)Subject.Params.ROI).Height);
                        break;
                    case Type t when t == typeof(HCircle):
                        inputImageHSmartWindowControl.oRoi
                        = new HCircle(Subject.Params.ROI.X + Subject.Params.Fixture.X, Subject.Params.ROI.Y + Subject.Params.Fixture.Y
                        , ((HCircle)Subject.Params.ROI).Radius);
                        break;
                    case Type t when t == typeof(HSegment):
                        inputImageHSmartWindowControl.oRoi
                        = new HSegment(((HSegment)Subject.Params.ROI).StartX + Subject.Params.Fixture.X, ((HSegment)Subject.Params.ROI).StartY + Subject.Params.Fixture.Y
                        , ((HSegment)Subject.Params.ROI).EndX + Subject.Params.Fixture.X, ((HSegment)Subject.Params.ROI).EndY + Subject.Params.Fixture.Y);
                        break;
                    default:
                        inputImageHSmartWindowControl.oRoi = null;
                        break;
                }
            }));
        }
        #region å·¥å…·æ æŒ‰é’®äº‹ä»¶
        /// <summary>
        /// ç‚¹å‡»è¿è¡Œ
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void btnRun_Click(object sender, EventArgs e)
        {
            if (Subject.InputImage != null)
                InputImage = Subject.InputImage;
            DateTime StartTime = DateTime.Now;
            Run();
            //更新日志与结果
            this.BeginInvoke(new Action(() =>
            {
                if (Subject.Result)
                {
                    lblResult.BackColor = Color.Green;
                    lblResult.Text = "True";
                    recordImageHSmartWindowControl.SetColor("green");
                }
                else
                {
                    lblResult.BackColor = Color.Red;
                    lblResult.Text = "False";
                    recordImageHSmartWindowControl.SetColor("red");
                }
                lblMsg.Text = Msg.Length > 50 ? Msg.Substring(0, 50) : Msg;
                lblMsgToolTip.SetToolTip(BtmStatusStrip, Msg);
                lblRunTime.Text = $"{(DateTime.Now - StartTime).TotalMilliseconds}ms";
                UpdataOutputs();
                imgTabControl.SelectedTab = tabPageRecordImage;
                if (Subject.InputImage != null && Subject.InputImage is HObject)
                {
                    HOperatorSet.GetImageSize((HObject)Subject.InputImage, out HTuple ho_ImageWidth, out HTuple ho_ImageHeight);
                    recordImageHSmartWindowControl.ShowHoImage((HObject)Subject.InputImage);
                }
                //先判断子类再判断父类
                if (Subject.Record != null && Subject.Record is MsgRecord msgRecord)
                {
                    recordImageHSmartWindowControl.DispObj(msgRecord.RecordObject_OK, true);
                    recordImageHSmartWindowControl.DispObj(msgRecord.RecordObject_NG, false);
                    for (int i = 0; i < msgRecord.Msg.Length; i++)
                        recordImageHSmartWindowControl.ShowMsg(msgRecord.Msg[i]
                            , 1 == msgRecord.Result[i] ? true : false, msgRecord.Column[i], msgRecord.Row[i]);
                }
                else if (Subject.Record != null && Subject.Record is ObjectRecord objRecord)
                {
                    recordImageHSmartWindowControl.DispObj(objRecord.RecordObject_OK, true);
                    recordImageHSmartWindowControl.DispObj(objRecord.RecordObject_NG, false);
                }
                GC.Collect();
            }));
        }
        /// <summary>
        /// å·¥å…·æ â€œå¯¼å›¾â€
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void btnLoadImage_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            // è®¾ç½®æ–‡ä»¶å¯¹è¯æ¡†çš„属性
            openFileDialog.Multiselect = false; // ä¸å…è®¸å¤šé€‰
            // è®¾ç½®æ–‡ä»¶è¿‡æ»¤å™¨ï¼Œæ”¯æŒå¤šç§æ–‡ä»¶ç±»åž‹
            openFileDialog.Filter = "Image Files (*.png;*.jpg;*.jpeg;*.bmp)|*.png;*.jpg;*.jpeg;*.bmp|All Files (*.*)|*.*";
            // æ˜¾ç¤ºæ–‡ä»¶å¯¹è¯æ¡†
            DialogResult result = openFileDialog.ShowDialog();
            // å¤„理对话框返回结果
            if (result == DialogResult.OK)
            {
                // èŽ·å–ç”¨æˆ·é€‰æ‹©çš„æ–‡ä»¶å
                string[] selectedFiles = openFileDialog.FileNames;
                if (selectedFiles.Length > 0)
                {
                    HOperatorSet.ReadImage(out HObject ho_Image, selectedFiles[0]);
                    //判断是否为灰度图
                    using (HDevDisposeHelper dh = new HDevDisposeHelper())
                    {
                        HOperatorSet.CountChannels(ho_Image, out HTuple hv_Channels);
                        if (hv_Channels.TupleInt() != 1)
                        {
                            HOperatorSet.Rgb1ToGray(ho_Image, out ho_Image);
                            //更新日志与结果
                            this.BeginInvoke(new Action(() =>
                            {
                                lblMsg.Text = "导入图片非灰度图,自动转换为灰度图";
                            }));
                        }
                        InputImage = ho_Image;
                        imgTabControl.SelectedTab = tabPageInputImage;
                        inputImageHSmartWindowControl.oRoi = inputImageHSmartWindowControl.oRoi;
                    }
                }
            }
        }
        /// <summary>
        /// å·¥å…·æ â€œä¿å­˜â€
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void btnSaveParas_Click(object sender, EventArgs e) { base.btnSaveParas_Click(sender, e); }
        #endregion
        #region ROI功能
        /// <summary>
        /// æ˜¯å¦å¯ç”¨ROI
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void ckbDrawRoi_CheckedChanged(object sender, EventArgs e)
        {
            if (ckbDrawRoi.Checked)
            {
                inputImageHSmartWindowControl.bAollowDraw = true;
                imgTabControl.SelectedTab = tabPageInputImage;
            }
            else
            {
                inputImageHSmartWindowControl.bAollowDraw = false;
                Subject.Params.ROI = new ROI();
            }
        }
        /// <summary>
        /// ROI下拉框改变事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void cmbTypeRoi_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (Enum.TryParse(cmbTypeRoi.Text.ToString(), out RoiType type))
                {
                    HTuple hv_imageWidth = 0;
                    HTuple hv_imageHeight = 0;
                    if (InputImage != null && InputImage is HObject)
                        HOperatorSet.GetImageSize((HObject)InputImage, out hv_imageWidth, out hv_imageHeight);
                    switch (type)
                    {
                        case RoiType.Rectangle2:
                            inputImageHSmartWindowControl.oRoi
                                = new HRectangle2(hv_imageWidth.TupleReal() / 2, hv_imageHeight.TupleReal() / 2, 0
                                , hv_imageWidth.TupleReal() / 4, hv_imageHeight.TupleReal() / 4);
                            break;
                        case RoiType.Circle:
                            inputImageHSmartWindowControl.oRoi
                                = new HCircle(hv_imageWidth.TupleReal() / 2, hv_imageHeight.TupleReal() / 2, hv_imageWidth.TupleReal() / 4);
                            break;
                        case RoiType.Segment:
                            inputImageHSmartWindowControl.oRoi
                                = new HSegment(0, 0, hv_imageWidth.TupleReal() / 4, hv_imageHeight.TupleReal() / 4);
                            break;
                        case RoiType.None:
                        default:
                            inputImageHSmartWindowControl.oRoi = null;
                            break;
                    }
                }
            }
            catch { }
        }
        public override void cmbFixture_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (IProcess.dicFixtures.ContainsKey(cmbFixture.Text))
                    Subject.Params.Fixture = IProcess.dicFixtures[cmbFixture.Text];
                else
                    Subject.Params.Fixture = new Fixture();
            }
            catch { }
        }
        #endregion
    }
}
LB_VisionProcesses/Alogrithms/Halcon/2D/HImageEnhancementTool/HImageEnhancementToolEdit.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    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
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <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
    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
    mimetype set.
    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
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    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
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <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>287, 17</value>
  </metadata>
</root>
LB_VisionProcesses/BarcodeReaders/BarcodeReaderBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
namespace LB_VisionProcesses.BarcodeReaders
{
    /// <summary>
    /// è¯»ç å™¨æŠ½è±¡åŸºç±»
    /// </summary>
    public abstract class BarcodeReaderBase : IBarcodeReader
    {
        public virtual event EventHandler<BarcodeEventArgs> BarcodeRead;
        public virtual string SN { get; set; } = string.Empty;
        public virtual bool IsConnected { get; set; } = false;
        public virtual bool IsGrabbing { get; set; } = false;
        public abstract BarcodeReaderBrand Brand { get; }
        protected BarcodeReaderBase() { }
        /// <summary>
        /// è§¦å‘读码成功事件
        /// </summary>
        protected virtual void OnBarcodeRead(BarcodeEventArgs e)
        {
            BarcodeRead?.Invoke(this, e);
        }
        public abstract List<string> GetDeviceList();
        public abstract bool Open(string sn);
        public abstract bool Close();
        public abstract bool StartGrabbing();
        public abstract bool StopGrabbing();
        public abstract bool SoftTrigger();
        public abstract bool SetTriggerMode(bool isSoftware);
        public virtual void Dispose()
        {
            try
            {
                if (IsConnected)
                {
                    Close();
                }
                IsConnected = false;
                IsGrabbing = false;
            }
            catch { }
        }
    }
}
LB_VisionProcesses/BarcodeReaders/BarcodeReaderFactory.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
using System;
using LB_VisionProcesses.BarcodeReaders.Huayray;
namespace LB_VisionProcesses.BarcodeReaders
{
    /// <summary>
    /// è¯»ç å™¨å·¥åŽ‚ç±»
    /// </summary>
    public static class BarcodeReaderFactory
    {
        /// <summary>
        /// æ ¹æ®å“ç‰Œåˆ›å»ºè¯»ç å™¨å®žä¾‹
        /// </summary>
        /// <param name="brand">读码器品牌</param>
        /// <returns>读码器实例</returns>
        public static IBarcodeReader CreateReader(BarcodeReaderBrand brand)
        {
            switch (brand)
            {
                case BarcodeReaderBrand.Huayray:
                    return new HRBarcodeReader();
                default:
                    throw new NotSupportedException($"不支持的读码器品牌: {brand}");
            }
        }
    }
}
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,373 @@
namespace LB_VisionProcesses.BarcodeReaders
{
    partial class BarcodeReaderForm
    {
        private System.ComponentModel.IContainer components = null;
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BarcodeReaderForm));
            themeForm = new ReaLTaiizor.Forms.ThemeForm();
            controlBox1 = new ReaLTaiizor.Controls.ControlBox();
            pnlMain = new ReaLTaiizor.Controls.Panel();
            pnlImage = new Panel();
            picPreview = new PictureBox();
            grpResult = new GroupBox();
            lstBarcodes = new ListBox();
            grpParams = new GroupBox();
            txtTimeout = new TextBox();
            lblTimeout = new Label();
            radHardTrigger = new RadioButton();
            radSoftTrigger = new RadioButton();
            grpControl = new GroupBox();
            btnRefresh = new Button();
            btnSoftTrigger = new Button();
            btnStop = new Button();
            btnStart = new Button();
            btnClose = new Button();
            btnOpen = new Button();
            cmbSN = new ComboBox();
            lblSN = new Label();
            cmbBrand = new ComboBox();
            lblBrand = new Label();
            statusStrip = new StatusStrip();
            lblStatus = new ToolStripStatusLabel();
            themeForm.SuspendLayout();
            pnlMain.SuspendLayout();
            pnlImage.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)picPreview).BeginInit();
            grpResult.SuspendLayout();
            grpParams.SuspendLayout();
            grpControl.SuspendLayout();
            statusStrip.SuspendLayout();
            SuspendLayout();
            //
            // themeForm
            //
            themeForm.BackColor = Color.FromArgb(32, 41, 50);
            themeForm.Controls.Add(controlBox1);
            themeForm.Controls.Add(pnlMain);
            themeForm.Dock = DockStyle.Fill;
            themeForm.Font = new Font("Segoe UI", 9F);
            themeForm.ForeColor = Color.FromArgb(142, 142, 142);
            themeForm.Image = (Image)resources.GetObject("themeForm.Image");
            themeForm.Location = new Point(0, 0);
            themeForm.Name = "themeForm";
            themeForm.Padding = new Padding(10, 70, 10, 9);
            themeForm.RoundCorners = true;
            themeForm.Sizable = true;
            themeForm.Size = new Size(820, 600);
            themeForm.SmartBounds = true;
            themeForm.StartPosition = FormStartPosition.CenterScreen;
            themeForm.TabIndex = 0;
            themeForm.Text = "读码器配置";
            //
            // controlBox1
            //
            controlBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            controlBox1.BackColor = Color.FromArgb(32, 41, 50);
            controlBox1.CloseHoverColor = Color.FromArgb(230, 17, 35);
            controlBox1.DefaultLocation = true;
            controlBox1.EnableHoverHighlight = true;
            controlBox1.EnableMaximizeButton = true;
            controlBox1.EnableMinimizeButton = true;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(720, 18);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
            controlBox1.Size = new Size(90, 25);
            controlBox1.TabIndex = 0;
            //
            // pnlMain
            //
            pnlMain.BackColor = Color.FromArgb(32, 41, 50);
            pnlMain.Controls.Add(pnlImage);
            pnlMain.Controls.Add(grpResult);
            pnlMain.Controls.Add(grpParams);
            pnlMain.Controls.Add(grpControl);
            pnlMain.Controls.Add(statusStrip);
            pnlMain.Dock = DockStyle.Fill;
            pnlMain.EdgeColor = Color.FromArgb(32, 41, 50);
            pnlMain.Location = new Point(10, 70);
            pnlMain.Name = "pnlMain";
            pnlMain.Padding = new Padding(5);
            pnlMain.Size = new Size(800, 521);
            pnlMain.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            pnlMain.TabIndex = 1;
            //
            // pnlImage
            //
            pnlImage.BorderStyle = BorderStyle.FixedSingle;
            pnlImage.Controls.Add(picPreview);
            pnlImage.Location = new Point(285, 23);
            pnlImage.Name = "pnlImage";
            pnlImage.Size = new Size(500, 472);
            pnlImage.TabIndex = 0;
            //
            // picPreview
            //
            picPreview.Dock = DockStyle.Fill;
            picPreview.Location = new Point(0, 0);
            picPreview.Name = "picPreview";
            picPreview.Size = new Size(498, 470);
            picPreview.SizeMode = PictureBoxSizeMode.Zoom;
            picPreview.TabIndex = 0;
            picPreview.TabStop = false;
            //
            // grpResult
            //
            grpResult.Controls.Add(lstBarcodes);
            grpResult.ForeColor = Color.White;
            grpResult.Location = new Point(15, 380);
            grpResult.Name = "grpResult";
            grpResult.Size = new Size(260, 115);
            grpResult.TabIndex = 1;
            grpResult.TabStop = false;
            grpResult.Text = "读取结果";
            //
            // lstBarcodes
            //
            lstBarcodes.BackColor = Color.FromArgb(42, 51, 60);
            lstBarcodes.Dock = DockStyle.Fill;
            lstBarcodes.ForeColor = Color.White;
            lstBarcodes.ItemHeight = 15;
            lstBarcodes.Location = new Point(3, 19);
            lstBarcodes.Name = "lstBarcodes";
            lstBarcodes.Size = new Size(254, 93);
            lstBarcodes.TabIndex = 0;
            //
            // grpParams
            //
            grpParams.Controls.Add(txtTimeout);
            grpParams.Controls.Add(lblTimeout);
            grpParams.Controls.Add(radHardTrigger);
            grpParams.Controls.Add(radSoftTrigger);
            grpParams.ForeColor = Color.White;
            grpParams.Location = new Point(15, 260);
            grpParams.Name = "grpParams";
            grpParams.Size = new Size(260, 110);
            grpParams.TabIndex = 2;
            grpParams.TabStop = false;
            grpParams.Text = "参数设置";
            //
            // txtTimeout
            //
            txtTimeout.Location = new Point(100, 62);
            txtTimeout.Name = "txtTimeout";
            txtTimeout.Size = new Size(140, 23);
            txtTimeout.TabIndex = 0;
            txtTimeout.Text = "2000";
            //
            // lblTimeout
            //
            lblTimeout.Location = new Point(15, 65);
            lblTimeout.Name = "lblTimeout";
            lblTimeout.Size = new Size(100, 23);
            lblTimeout.TabIndex = 1;
            lblTimeout.Text = "超时(ms):";
            //
            // radHardTrigger
            //
            radHardTrigger.Location = new Point(130, 25);
            radHardTrigger.Name = "radHardTrigger";
            radHardTrigger.Size = new Size(104, 24);
            radHardTrigger.TabIndex = 2;
            radHardTrigger.Text = "自动/硬触发";
            //
            // radSoftTrigger
            //
            radSoftTrigger.Checked = true;
            radSoftTrigger.Location = new Point(15, 25);
            radSoftTrigger.Name = "radSoftTrigger";
            radSoftTrigger.Size = new Size(104, 24);
            radSoftTrigger.TabIndex = 3;
            radSoftTrigger.TabStop = true;
            radSoftTrigger.Text = "软触发";
            radSoftTrigger.CheckedChanged += radTrigger_CheckedChanged;
            //
            // grpControl
            //
            grpControl.Controls.Add(btnRefresh);
            grpControl.Controls.Add(btnSoftTrigger);
            grpControl.Controls.Add(btnStop);
            grpControl.Controls.Add(btnStart);
            grpControl.Controls.Add(btnClose);
            grpControl.Controls.Add(btnOpen);
            grpControl.Controls.Add(cmbSN);
            grpControl.Controls.Add(lblSN);
            grpControl.Controls.Add(cmbBrand);
            grpControl.Controls.Add(lblBrand);
            grpControl.ForeColor = Color.White;
            grpControl.Location = new Point(15, 15);
            grpControl.Name = "grpControl";
            grpControl.Size = new Size(260, 240);
            grpControl.TabIndex = 3;
            grpControl.TabStop = false;
            grpControl.Text = "设备控制";
            //
            // btnRefresh
            //
            btnRefresh.Location = new Point(205, 56);
            btnRefresh.Name = "btnRefresh";
            btnRefresh.Size = new Size(35, 25);
            btnRefresh.TabIndex = 0;
            btnRefresh.Text = "R";
            btnRefresh.Click += btnRefresh_Click;
            //
            // btnSoftTrigger
            //
            btnSoftTrigger.Location = new Point(13, 190);
            btnSoftTrigger.Name = "btnSoftTrigger";
            btnSoftTrigger.Size = new Size(227, 35);
            btnSoftTrigger.TabIndex = 1;
            btnSoftTrigger.Text = "软触发一次";
            btnSoftTrigger.Click += btnSoftTrigger_Click;
            //
            // btnStop
            //
            btnStop.Location = new Point(130, 145);
            btnStop.Name = "btnStop";
            btnStop.Size = new Size(110, 35);
            btnStop.TabIndex = 2;
            btnStop.Text = "停止采集";
            btnStop.Click += btnStop_Click;
            //
            // btnStart
            //
            btnStart.Location = new Point(13, 145);
            btnStart.Name = "btnStart";
            btnStart.Size = new Size(110, 35);
            btnStart.TabIndex = 3;
            btnStart.Text = "开始采集";
            btnStart.Click += btnStart_Click;
            //
            // btnClose
            //
            btnClose.Location = new Point(130, 100);
            btnClose.Name = "btnClose";
            btnClose.Size = new Size(110, 35);
            btnClose.TabIndex = 4;
            btnClose.Text = "关闭设备";
            btnClose.Click += btnClose_Click;
            //
            // btnOpen
            //
            btnOpen.Location = new Point(13, 100);
            btnOpen.Name = "btnOpen";
            btnOpen.Size = new Size(110, 35);
            btnOpen.TabIndex = 5;
            btnOpen.Text = "打开设备";
            btnOpen.Click += btnOpen_Click;
            //
            // cmbSN
            //
            cmbSN.Location = new Point(70, 57);
            cmbSN.Name = "cmbSN";
            cmbSN.Size = new Size(130, 23);
            cmbSN.TabIndex = 6;
            //
            // lblSN
            //
            lblSN.Location = new Point(10, 60);
            lblSN.Name = "lblSN";
            lblSN.Size = new Size(100, 23);
            lblSN.TabIndex = 7;
            lblSN.Text = "序列号:";
            //
            // cmbBrand
            //
            cmbBrand.DropDownStyle = ComboBoxStyle.DropDownList;
            cmbBrand.Location = new Point(70, 22);
            cmbBrand.Name = "cmbBrand";
            cmbBrand.Size = new Size(170, 23);
            cmbBrand.TabIndex = 8;
            //
            // lblBrand
            //
            lblBrand.Location = new Point(10, 25);
            lblBrand.Name = "lblBrand";
            lblBrand.Size = new Size(100, 23);
            lblBrand.TabIndex = 9;
            lblBrand.Text = "品牌:";
            //
            // statusStrip
            //
            statusStrip.BackColor = Color.FromArgb(32, 41, 50);
            statusStrip.Items.AddRange(new ToolStripItem[] { lblStatus });
            statusStrip.Location = new Point(5, 494);
            statusStrip.Name = "statusStrip";
            statusStrip.Size = new Size(790, 22);
            statusStrip.TabIndex = 4;
            //
            // lblStatus
            //
            lblStatus.ForeColor = Color.White;
            lblStatus.Name = "lblStatus";
            lblStatus.Size = new Size(56, 17);
            lblStatus.Text = "准备就绪";
            //
            // BarcodeReaderForm
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(820, 600);
            Controls.Add(themeForm);
            FormBorderStyle = FormBorderStyle.None;
            MinimumSize = new Size(261, 61);
            Name = "BarcodeReaderForm";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "读码器配置";
            TransparencyKey = Color.Fuchsia;
            FormClosing += BarcodeReaderForm_FormClosing;
            Load += BarcodeReaderForm_Load;
            themeForm.ResumeLayout(false);
            pnlMain.ResumeLayout(false);
            pnlMain.PerformLayout();
            pnlImage.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)picPreview).EndInit();
            grpResult.ResumeLayout(false);
            grpParams.ResumeLayout(false);
            grpParams.PerformLayout();
            grpControl.ResumeLayout(false);
            statusStrip.ResumeLayout(false);
            statusStrip.PerformLayout();
            ResumeLayout(false);
        }
        private ReaLTaiizor.Forms.ThemeForm themeForm;
        private ReaLTaiizor.Controls.Panel pnlMain;
        private ReaLTaiizor.Controls.ControlBox controlBox1;
        private System.Windows.Forms.GroupBox grpControl;
        private System.Windows.Forms.Label lblBrand;
        private System.Windows.Forms.ComboBox cmbBrand;
        private System.Windows.Forms.Label lblSN;
        private System.Windows.Forms.ComboBox cmbSN;
        private System.Windows.Forms.Button btnRefresh;
        private System.Windows.Forms.Button btnOpen;
        private System.Windows.Forms.Button btnClose;
        private System.Windows.Forms.Button btnStart;
        private System.Windows.Forms.Button btnStop;
        private System.Windows.Forms.Button btnSoftTrigger;
        private System.Windows.Forms.GroupBox grpParams;
        private System.Windows.Forms.RadioButton radHardTrigger;
        private System.Windows.Forms.RadioButton radSoftTrigger;
        private System.Windows.Forms.Label lblTimeout;
        private System.Windows.Forms.TextBox txtTimeout;
        private System.Windows.Forms.GroupBox grpResult;
        private System.Windows.Forms.ListBox lstBarcodes;
        private System.Windows.Forms.StatusStrip statusStrip;
        private System.Windows.Forms.ToolStripStatusLabel lblStatus;
        private System.Windows.Forms.Panel pnlImage;
        private System.Windows.Forms.PictureBox picPreview;
    }
}
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,305 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using LB_VisionProcesses.BarcodeReaders;
namespace LB_VisionProcesses.BarcodeReaders
{
    /// <summary>
    /// è¯»ç å™¨é…ç½®ä¸Žæµ‹è¯•窗体
    /// </summary>
    public partial class BarcodeReaderForm : Form
    {
        private IBarcodeReader _reader;
        private string _currentSN;
        private LB_VisionProcesses.Processes.BarcodeReaderProcess _process;
        private string _processPath;
        public BarcodeReaderForm()
        {
            InitializeComponent();
        }
        public BarcodeReaderForm(IBarcodeReader reader)
        {
            InitializeComponent();
            _reader = reader;
            _reader.BarcodeRead += Reader_BarcodeRead;
            _currentSN = _reader.IsConnected ? "设备已在线" : "";
            // åŒæ­¥ UI çŠ¶æ€
            cmbBrand.Text = _reader.Brand.ToString();
            cmbSN.Text = _reader.IsConnected ? "在线设备" : "";
        }
        public BarcodeReaderForm(LB_VisionProcesses.Processes.BarcodeReaderProcess process, string processPath)
        {
            InitializeComponent();
            _process = process;
            _processPath = processPath;
            // åŠ è½½æµç¨‹å‚æ•°åˆ° UI
            if (_process.Params.Inputs.ContainsKey("设备品牌"))
                cmbBrand.Text = _process.Params.Inputs["设备品牌"].ToString();
            if (_process.Params.Inputs.ContainsKey("设备SN"))
                cmbSN.Text = _process.Params.Inputs["设备SN"].ToString();
            if (_process.Params.Inputs.ContainsKey("触发模式"))
                radSoftTrigger.Checked = _process.Params.Inputs["触发模式"].ToString() == "软触发";
            if (_process.Params.Inputs.ContainsKey("超时时间"))
                txtTimeout.Text = _process.Params.Inputs["超时时间"].ToString();
        }
        private void BarcodeReaderForm_Load(object sender, EventArgs e)
        {
            // åˆå§‹åŒ–品牌列表
            cmbBrand.Items.Clear();
            foreach (var brand in Enum.GetValues(typeof(BarcodeReaderBrand)))
            {
                if ((BarcodeReaderBrand)brand != BarcodeReaderBrand.Unsupported)
                {
                    cmbBrand.Items.Add(brand);
                }
            }
            if (cmbBrand.Items.Count > 0)
                cmbBrand.SelectedIndex = 0;
            UpdateUIStatus();
        }
        private void btnRefresh_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbBrand.SelectedItem == null) return;
                var brand = (BarcodeReaderBrand)cmbBrand.SelectedItem;
                using (var tempReader = BarcodeReaderFactory.CreateReader(brand))
                {
                    var devices = tempReader.GetDeviceList();
                    cmbSN.Items.Clear();
                    if (devices != null && devices.Count > 0)
                    {
                        cmbSN.Items.AddRange(devices.ToArray());
                        cmbSN.SelectedIndex = 0;
                    }
                }
                lblStatus.Text = $"设备列表已刷新,找到 {cmbSN.Items.Count} ä¸ªè®¾å¤‡";
            }
            catch (Exception ex)
            {
                MessageBox.Show($"刷新设备列表失败: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnOpen_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbSN.SelectedItem == null && string.IsNullOrEmpty(cmbSN.Text))
                {
                    MessageBox.Show("请选择或输入设备序列号");
                    return;
                }
                _currentSN = cmbSN.Text;
                var brand = (BarcodeReaderBrand)cmbBrand.SelectedItem;
                if (_reader != null)
                {
                    _reader.BarcodeRead -= Reader_BarcodeRead;
                    _reader.Dispose();
                }
                _reader = BarcodeReaderFactory.CreateReader(brand);
                _reader.BarcodeRead += Reader_BarcodeRead;
                if (_reader.Open(_currentSN))
                {
                    lblStatus.Text = $"设备 {_currentSN} å·²æ‰“å¼€";
                    UpdateUIStatus();
                }
                else
                {
                    MessageBox.Show("设备打开失败,请检查连接或占用状态");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"打开设备异常: {ex.Message}");
            }
        }
        private void btnClose_Click(object sender, EventArgs e)
        {
            if (_reader != null)
            {
                _reader.Close();
                lblStatus.Text = "设备已关闭";
                UpdateUIStatus();
            }
        }
        private void btnStart_Click(object sender, EventArgs e)
        {
            if (_reader != null && _reader.IsConnected)
            {
                // è®¾ç½®è§¦å‘模式(根据 UI é€‰æ‹©ï¼‰
                _reader.SetTriggerMode(radSoftTrigger.Checked);
                if (_reader.StartGrabbing())
                {
                    lblStatus.Text = "采集已开始";
                    UpdateUIStatus();
                }
            }
        }
        private void btnStop_Click(object sender, EventArgs e)
        {
            if (_reader != null && _reader.IsGrabbing)
            {
                if (_reader.StopGrabbing())
                {
                    lblStatus.Text = "采集已停止";
                    UpdateUIStatus();
                }
            }
        }
        private void btnSoftTrigger_Click(object sender, EventArgs e)
        {
            if (_reader != null && _reader.IsGrabbing)
            {
                _reader.SoftTrigger();
                lblStatus.Text = "已执行软触发";
            }
            else
            {
                lblStatus.Text = "请先开始采集再执行触发";
            }
        }
        private void radTrigger_CheckedChanged(object sender, EventArgs e)
        {
            if (_reader != null && _reader.IsConnected)
            {
                _reader.SetTriggerMode(radSoftTrigger.Checked);
                lblStatus.Text = radSoftTrigger.Checked ? "已切换至软触发模式" : "已切换至硬触发/自动模式";
            }
        }
        private void Reader_BarcodeRead(object sender, BarcodeEventArgs e)
        {
            // å¼‚步更新 UI
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new Action<object, BarcodeEventArgs>(Reader_BarcodeRead), sender, e);
                return;
            }
            try
            {
                // æ›´æ–°ç»“果列表
                lstBarcodes.Items.Clear();
                if (e.BarcodeInfos != null && e.BarcodeInfos.Count > 0)
                {
                    foreach (var info in e.BarcodeInfos)
                    {
                        lstBarcodes.Items.Add($"{DateTime.Now:HH:mm:ss} - {info.Text}");
                    }
                }
                else
                {
                    lstBarcodes.Items.Add($"{DateTime.Now:HH:mm:ss} - æœªè¯»åˆ°æ¡ç ");
                }
                // æ›´æ–°é¢„览图像并绘制标注
                if (e.Image != null)
                {
                    // åˆ›å»ºæ–°ä½å›¾ç”¨äºŽç»˜å›¾ï¼Œä¸ç›´æŽ¥ä¿®æ”¹ SDK ä¼ å…¥çš„原图
                    Bitmap drawImg = new Bitmap(e.Image);
                    using (Graphics g = Graphics.FromImage(drawImg))
                    {
                        // è®¾ç½®ç»˜å›¾è´¨é‡
                        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                        using (Pen pen = new Pen(Color.LimeGreen, 3))
                        using (SolidBrush brush = new SolidBrush(Color.LimeGreen))
                        using (Font font = new Font("Arial", 16, FontStyle.Bold))
                        {
                            foreach (var info in e.BarcodeInfos)
                            {
                                if (info.Points != null && info.Points.Length >= 4)
                                {
                                    // ç»˜åˆ¶å››è¾¹å½¢æ¡†
                                    g.DrawPolygon(pen, info.Points);
                                    // åœ¨ç¬¬ä¸€ä¸ªç‚¹ä¸Šæ–¹ç»˜åˆ¶æ¡ç å†…容
                                    // è®¡ç®—绘制文本的位置(稍微偏移一点防止覆盖边框)
                                    Point textPos = info.Points[0];
                                    textPos.Y -= 25;
                                    g.DrawString(info.Text, font, brush, textPos);
                                }
                            }
                        }
                    }
                    // é‡Šæ”¾æ—§å›¾åƒï¼Œé˜²æ­¢å†…存泄漏
                    var oldImg = picPreview.Image;
                    picPreview.Image = drawImg;
                    oldImg?.Dispose();
                }
            }
            catch (Exception ex)
            {
                // é™é»˜å¤„理 UI æ›´æ–°å¼‚常
                Console.WriteLine($"UI更新异常: {ex.Message}");
            }
        }
        private void UpdateUIStatus()
        {
            bool isConnected = _reader?.IsConnected ?? false;
            bool isGrabbing = _reader?.IsGrabbing ?? false;
            btnOpen.Enabled = !isConnected;
            btnClose.Enabled = isConnected;
            cmbBrand.Enabled = !isConnected;
            cmbSN.Enabled = !isConnected;
            btnRefresh.Enabled = !isConnected;
            btnStart.Enabled = isConnected && !isGrabbing;
            btnStop.Enabled = isGrabbing;
            btnSoftTrigger.Enabled = isGrabbing && radSoftTrigger.Checked;
            grpParams.Enabled = isConnected;
        }
        private void BarcodeReaderForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            // å…³é—­å‰ä¿å­˜å‚数到流程
            if (_process != null)
            {
                _process.Params.Inputs["设备品牌"] = cmbBrand.Text;
                _process.Params.Inputs["设备SN"] = cmbSN.Text;
                _process.Params.Inputs["触发模式"] = radSoftTrigger.Checked ? "软触发" : "硬触发";
                if (int.TryParse(txtTimeout.Text, out int timeout))
                    _process.Params.Inputs["超时时间"] = timeout;
                _process.Save(_processPath);
            }
            if (_reader != null)
            {
                if (_reader.IsGrabbing) _reader.StopGrabbing();
                _reader.Close();
                _reader.BarcodeRead -= Reader_BarcodeRead;
                _reader.Dispose();
                _reader = null;
            }
        }
    }
}
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    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
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <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
    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
    mimetype set.
    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
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    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
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <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>
        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
</value>
  </data>
</root>
LB_VisionProcesses/BarcodeReaders/Huayray/HRBarcodeReader.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,278 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using EasyIDSDK_Net;
namespace LB_VisionProcesses.BarcodeReaders.Huayray
{
    /// <summary>
    /// åŽç¿è¯»ç å™¨å®žçŽ°ç±»
    /// </summary>
    public class HRBarcodeReader : BarcodeReaderBase
    {
        private EidCamera _camera;
        private EidCamera.EidFrameCallback _frameCallback;
        private GCHandle _callbackHandle;
        public override BarcodeReaderBrand Brand => BarcodeReaderBrand.Huayray;
        public HRBarcodeReader()
        {
            _camera = new EidCamera();
            _frameCallback = OnFrameReceived;
        }
        /// <summary>
        /// èŽ·å–åœ¨çº¿çš„åŽç¿è¯»ç å™¨åˆ—è¡¨
        /// </summary>
        public override List<string> GetDeviceList()
        {
            List<string> snList = new List<string>();
            try
            {
                EidCamera.EidDeviceList devList = new EidCamera.EidDeviceList();
                int nRet = EidCamera.eidEnumDevices_Net(ref devList, 0);
                if (nRet == EidCamera.eidErrorOK && devList.num > 0)
                {
                    for (int i = 0; i < devList.num; i++)
                    {
                        EidCamera.EidDeviceInfo deviceInfo = (EidCamera.EidDeviceInfo)Marshal.PtrToStructure(
                            devList.infos + Marshal.SizeOf(typeof(EidCamera.EidDeviceInfo)) * i,
                            typeof(EidCamera.EidDeviceInfo));
                        snList.Add(deviceInfo.serialNumber);
                    }
                }
            }
            catch (Exception ex)
            {
                // TODO: Log error
            }
            return snList;
        }
        public override bool Open(string sn)
        {
            if (IsConnected) Close();
            try
            {
                // å…ˆè¿›è¡Œä¸€æ¬¡æžšä¸¾ï¼Œç¡®ä¿ SDK èƒ½å¤Ÿå‘现设备(部分 SDK è¦æ±‚在打开前必须执行枚举)
                GetDeviceList();
                // å¦‚果之前失败过,重新创建相机对象确保干净状态
                if (_camera == null)
                {
                    _camera = new EidCamera();
                }
                // ç¡®ä¿ä¹‹å‰çš„句柄已释放
                try { _camera.eidReleaseHandle_Net(); } catch { }
                // åˆ›å»ºå¥æŸ„
                int nRet = _camera.eidCreateDevice_Net(sn, EidCamera.EidDeviceDataType.eidDeviceDataTypeSN);
                if (nRet != EidCamera.eidErrorOK) return false;
                if (nRet != EidCamera.eidErrorOK)
                {
                    _camera = null;
                    return false;
                }
                // åˆ†é…å›ºå®šå¥æŸ„给委托,防止被 GC å›žæ”¶
                if (!_callbackHandle.IsAllocated)
                {
                    _callbackHandle = GCHandle.Alloc(_frameCallback);
                }
                // æ‰“开设备
                nRet = _camera.eidOpenDevice_Net();
                if (nRet != EidCamera.eidErrorOK)
                {
                    _camera.eidReleaseHandle_Net();
                    if (_callbackHandle.IsAllocated) _callbackHandle.Free();
                    _camera = null;
                    return false;
                }
                // æ³¨å†Œå›žè°ƒ
                nRet = _camera.eidRegisterFrameCallback_Net(_frameCallback, IntPtr.Zero);
                if (nRet != EidCamera.eidErrorOK)
                {
                    _camera.eidCloseDevice_Net();
                    _camera.eidReleaseHandle_Net();
                    if (_callbackHandle.IsAllocated) _callbackHandle.Free();
                    _camera = null;
                    return false;
                }
                this.SN = sn;
                this.IsConnected = true;
                return true;
            }
            catch
            {
                // å‘生异常时确保释放资源
                try { _camera?.eidCloseDevice_Net(); } catch { }
                try { _camera?.eidReleaseHandle_Net(); } catch { }
                if (_callbackHandle.IsAllocated) _callbackHandle.Free();
                // å‘生异常时释放相机对象,确保下次创建新实例
                _camera = null;
                return false;
            }
        }
        public override bool Close()
        {
            if (!IsConnected) return true;
            try
            {
                if (IsConnected)
                {
                    StopGrabbing();
                _camera.eidCloseDevice_Net();
                _camera.eidReleaseHandle_Net();
                    _camera?.eidCloseDevice_Net();
                }
                // æ— è®ºæ˜¯å¦è¿žæŽ¥ï¼Œéƒ½å°è¯•释放句柄
                _camera?.eidReleaseHandle_Net();
                // é‡Šæ”¾å›žè°ƒå¥æŸ„
                if (_callbackHandle.IsAllocated)
                {
                    _callbackHandle.Free();
                }
                // é‡Šæ”¾ç›¸æœºå¯¹è±¡å¼•用,确保SDK资源完全释放
                _camera = null;
                this.IsConnected = false;
                this.SN = string.Empty;
                this.IsGrabbing = false;
                return true;
            }
            catch
            {
                return false;
            }
        }
        public override bool StartGrabbing()
        {
            if (!IsConnected) return false;
            if (IsGrabbing) return true;
            int nRet = _camera.eidStartGrabbing_Net(0);
            if (nRet == EidCamera.eidErrorOK)
            {
                this.IsGrabbing = true;
                return true;
            }
            return false;
        }
        public override bool StopGrabbing()
        {
            if (!IsGrabbing) return true;
            int nRet = _camera.eidStopGrabbing_Net();
            this.IsGrabbing = false;
            return nRet == EidCamera.eidErrorOK;
        }
        public override bool SoftTrigger()
        {
            if (!IsConnected || !IsGrabbing) return false;
            int nRet = _camera.eidExecCommandFeature_Net("TriggerSoftware");
            return nRet == EidCamera.eidErrorOK;
        }
        public override bool SetTriggerMode(bool isSoftware)
        {
            if (!IsConnected) return false;
            int nRet;
            if (isSoftware)
            {
                // è½¯è§¦å‘模式
                nRet = _camera.eidSetEnumFeatureSymbol_Net("TriggerType", "SingleFrame");
                if (nRet != EidCamera.eidErrorOK) return false;
                nRet = _camera.eidSetEnumFeatureSymbol_Net("TriggerSource", "Software");
            }
            else
            {
                // è‡ªç”±è¿è¡Œæˆ–硬触发 (此处默认设为自由运行,可根据需要扩展)
                nRet = _camera.eidSetEnumFeatureSymbol_Net("TriggerType", "FreeRun");
            }
            return nRet == EidCamera.eidErrorOK;
        }
        /// <summary>
        /// SDK帧回调处理
        /// </summary>
        private void OnFrameReceived(ref EidCamera.EidFrameInfo frameInfo, IntPtr userData)
        {
            try
            {
                List<BarcodeInfo> barcodeInfos = new List<BarcodeInfo>();
                // è§£æžæ¡ç 
                for (int i = 0; i < frameInfo.codeNum; i++)
                {
                    EidCamera.EidCodeInfo codeInfo = (EidCamera.EidCodeInfo)Marshal.PtrToStructure(
                        frameInfo.codeList + Marshal.SizeOf(typeof(EidCamera.EidCodeInfo)) * i,
                        typeof(EidCamera.EidCodeInfo));
                    string data = Marshal.PtrToStringAnsi(codeInfo.data);
                    if (!string.IsNullOrEmpty(data))
                    {
                        BarcodeInfo info = new BarcodeInfo
                        {
                            Text = data,
                            Points = new Point[]
                            {
                                new Point((int)codeInfo.position[0].x, (int)codeInfo.position[0].y),
                                new Point((int)codeInfo.position[1].x, (int)codeInfo.position[1].y),
                                new Point((int)codeInfo.position[2].x, (int)codeInfo.position[2].y),
                                new Point((int)codeInfo.position[3].x, (int)codeInfo.position[3].y)
                            }
                        };
                        barcodeInfos.Add(info);
                    }
                }
                // è½¬æ¢å›¾åƒ (如果需要)
                // è½¬æ¢å›¾åƒ
                Bitmap bitmap = null;
                if (frameInfo.imageDataLen > 0 && frameInfo.imageData != IntPtr.Zero)
                {
                    // è¿™é‡Œç®€åŒ–处理,如果是Jpeg则直接从内存加载,如果是Raw则需转换
                    // å®žé™…项目中可根据 frameInfo.format è¿›è¡Œå¤„理
                    if (frameInfo.isJpeg)
                    {
                        byte[] managedArray = new byte[frameInfo.imageDataLen];
                        Marshal.Copy(frameInfo.imageData, managedArray, 0, (int)frameInfo.imageDataLen);
                        using (var ms = new System.IO.MemoryStream(managedArray))
                        {
                            bitmap = new Bitmap(ms);
                        }
                    }
                }
                // è§¦å‘事件
                OnBarcodeRead(new BarcodeEventArgs(this.SN, barcodeInfos, bitmap));
            }
            catch (Exception ex)
            {
                // TODO: Log error
            }
        }
        public override void Dispose()
        {
            Close();
            base.Dispose();
        }
    }
}
LB_VisionProcesses/BarcodeReaders/IBarcodeReader.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,136 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
namespace LB_VisionProcesses.BarcodeReaders
{
    /// <summary>
    /// è¯»ç å™¨å“ç‰Œæžšä¸¾
    /// </summary>
    public enum BarcodeReaderBrand
    {
        Huayray,    // åŽç¿
        Unsupported
    }
    /// <summary>
    /// æ¡ç è¯¦ç»†ä¿¡æ¯
    /// </summary>
    public class BarcodeInfo
    {
        public string Text { get; set; }
        /// <summary>
        /// æ¡ç çš„四个顶点坐标
        /// </summary>
        public Point[] Points { get; set; }
    }
    /// <summary>
    /// è¯»ç ç»“果参数类
    /// </summary>
    public class BarcodeEventArgs : EventArgs
    {
        /// <summary>
        /// è®¾å¤‡åºåˆ—号
        /// </summary>
        public string SN { get; set; }
        /// <summary>
        /// æ¡ç è¯¦ç»†ä¿¡æ¯åˆ—表
        /// </summary>
        public List<BarcodeInfo> BarcodeInfos { get; set; } = new List<BarcodeInfo>();
        /// <summary>
        /// ä»…获取条码文本列表 (保持兼容性)
        /// </summary>
        public List<string> Barcodes => BarcodeInfos.Select(x => x.Text).ToList();
        /// <summary>
        /// å…³è”图像 (可选)
        /// </summary>
        public Bitmap Image { get; set; }
        /// <summary>
        /// æ˜¯å¦è¯»å–成功
        /// </summary>
        public bool IsSuccess => BarcodeInfos.Count > 0;
        public BarcodeEventArgs(string sn, List<BarcodeInfo> barcodeInfos, Bitmap image = null)
        {
            SN = sn;
            BarcodeInfos = barcodeInfos;
            Image = image;
        }
    }
    /// <summary>
    /// è¯»ç å™¨æŠ½è±¡æŽ¥å£
    /// </summary>
    public interface IBarcodeReader : IDisposable
    {
        /// <summary>
        /// è¯»ç ç»“果回调事件
        /// </summary>
        event EventHandler<BarcodeEventArgs> BarcodeRead;
        /// <summary>
        /// èŽ·å–è®¾å¤‡åˆ—è¡¨æžšä¸¾
        /// </summary>
        /// <returns>SN列表</returns>
        List<string> GetDeviceList();
        /// <summary>
        /// åˆå§‹åŒ–并打开读码器
        /// </summary>
        /// <param name="sn">序列号</param>
        /// <returns>是否成功</returns>
        bool Open(string sn);
        /// <summary>
        /// å…³é—­è¯»ç å™¨
        /// </summary>
        /// <returns>是否成功</returns>
        bool Close();
        /// <summary>
        /// å¼€å§‹é‡‡é›†/监听
        /// </summary>
        /// <returns>是否成功</returns>
        bool StartGrabbing();
        /// <summary>
        /// åœæ­¢é‡‡é›†/监听
        /// </summary>
        /// <returns>是否成功</returns>
        bool StopGrabbing();
        /// <summary>
        /// æ‰§è¡Œè½¯è§¦å‘一次
        /// </summary>
        /// <returns>是否成功</returns>
        bool SoftTrigger();
        /// <summary>
        /// è®¾ç½®è§¦å‘模式
        /// </summary>
        /// <param name="isSoftware">true为软触发, false为硬触发或自动监听</param>
        /// <returns>是否成功</returns>
        bool SetTriggerMode(bool isSoftware);
        /// <summary>
        /// è®¾å¤‡æ˜¯å¦åœ¨çº¿
        /// </summary>
        bool IsConnected { get; }
        /// <summary>
        /// è®¾å¤‡æ˜¯å¦æ­£åœ¨é‡‡é›†
        /// </summary>
        bool IsGrabbing { get; }
        /// <summary>
        /// è®¾å¤‡å“ç‰Œ
        /// </summary>
        BarcodeReaderBrand Brand { get; }
    }
}
LB_VisionProcesses/IProcess.cs
@@ -18,6 +18,8 @@
        {
            //相机
            { "相机取图", "LB_VisionProcesses.Cameras.CameraConfig" },
            ////读码器
            //{ "读码器", "LB_VisionProcesses.Cameras.CameraConfig" },
            //通讯
            { "通讯测试", "LB_VisionProcesses.Communicators.CommunicatorConfig" },
            //{ "T306通讯", "LB_VisionProcesses.Communicators.T306CommandTool" },
@@ -32,6 +34,7 @@
            { "Halcon2D_读码工具", "LB_VisionProcesses.Alogrithms.Halcon.HFindCode2dTool" },
            { "Halcon2D_找线工具", "LB_VisionProcesses.Alogrithms.Halcon.HFindLineTool" },
            { "Halcon2D_找弧工具", "LB_VisionProcesses.Alogrithms.Halcon.HFindEllipseTool" },
            { "Halcon2D_图像增强工具", "LB_VisionProcesses.Alogrithms.Halcon.HImageEnhancementTool" },
            
            //思谋深度学习算法
            { "语义分割工具", "LB_VisionProcesses.Alogrithms.BigModel.Segment.SegmentTool" },
LB_VisionProcesses/LB_VisionProcesses.csproj
@@ -52,6 +52,9 @@
    </ItemGroup>
    <ItemGroup>
        <Reference Include="EasyIDSDK_Net">
          <HintPath>ref\EasyIDSDK_Net.dll</HintPath>
        </Reference>
        <Reference Include="halcondotnetxl">
          <HintPath>ref\halcondotnetxl.dll</HintPath>
        </Reference>
@@ -132,6 +135,7 @@
    <ItemGroup>
        <Folder Include="Alogrithms\Halcon\3D\" />
        <Folder Include="BarcodeReaders\" />
    </ItemGroup>
    <ItemGroup>
LB_VisionProcesses/LB_VisionProcesses.csproj.user
@@ -22,6 +22,12 @@
    <Compile Update="Alogrithms\Halcon\2D\HFindMultiModelTool\HFindMultiModelToolEdit.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="Alogrithms\Halcon\2D\HImageEnhancementTool\HImageEnhancementToolEdit.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="BarcodeReaders\BarcodeReaderForm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Communicators\UserCommunicator\T306CommandTool\T306CommandToolEdit.cs">
      <SubType>UserControl</SubType>
    </Compile>
LB_VisionProcesses/Processes/BarcodeReaderProcess.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using LB_VisionProcesses.BarcodeReaders;
namespace LB_VisionProcesses.Processes
{
    public class BarcodeReaderProcess : IProcess
    {
        /// <summary>
        /// è¯»ç å™¨å®žä¾‹é›†åˆ (由主程序管理并传入)
        /// </summary>
        [JsonIgnore]
        public ConcurrentDictionary<string, BarcodeReaderBase> dicBarcodeReaders { get; set; }
        /// <summary>
        /// å½“前关联的读码器
        /// </summary>
        [JsonIgnore]
        public BarcodeReaderBase Reader { get; set; }
        public BarcodeReaderProcess()
        {
            strProcessName = "读码工具";
            strProcessClass = "LB_VisionProcesses.Processes.BarcodeReaderProcess";
            Params.Inputs.Add("设备品牌", "Huayray");
            Params.Inputs.Add("设备SN", "");
            Params.Inputs.Add("触发模式", "软触发");
            Params.Inputs.Add("超时时间", 2000);
            Params.Outputs.Add("条码结果", "");
            Params.Outputs.Add("码数量", 0);
        }
        public override void InitRunParams()
        {
            Result = true;
            Msg = "准备运行";
            bCompleted = false;
        }
        public override bool Run()
        {
            DateTime StartTime = DateTime.Now;
            try
            {
                InitRunParams();
                string sn = Params.Inputs["设备SN"]?.ToString();
                if (string.IsNullOrEmpty(sn))
                {
                    Msg = "设备SN未配置";
                    Result = false;
                    return false;
                }
                // ä»Žå…¨å±€å˜é‡æˆ–传入字典获取
                if (dicBarcodeReaders == null)
                {
                    // å°è¯•从全局 dicGlobalVars èŽ·å– (假设主程序已放入)
                    if (dicGlobalVars.ContainsKey("dicBarcodeReaders"))
                    {
                        dicBarcodeReaders = dicGlobalVars["dicBarcodeReaders"] as ConcurrentDictionary<string, BarcodeReaderBase>;
                    }
                }
                if (dicBarcodeReaders != null && dicBarcodeReaders.ContainsKey(sn))
                {
                    Reader = dicBarcodeReaders[sn];
                }
                if (Reader == null)
                {
                    Msg = $"读码器[{sn}]未初始化";
                    Result = false;
                    return false;
                }
                string triggerMode = Params.Inputs["触发模式"]?.ToString();
                if (triggerMode == "软触发")
                {
                    bool success = Reader.SoftTrigger();
                    Msg = success ? "触发成功" : "触发失败";
                    Result = success;
                }
            }
            catch (Exception ex)
            {
                Msg = "运行异常: " + ex.Message;
                Result = false;
            }
            finally
            {
                RunTime = (DateTime.Now - StartTime).TotalMilliseconds;
                bCompleted = true;
            }
            return Result;
        }
        public override bool Load(string fullPath)
        {
            try
            {
                if (string.IsNullOrEmpty(fullPath) || !File.Exists(fullPath)) return false;
                string json = File.ReadAllText(fullPath, Encoding.UTF8);
                Params = JsonConvert.DeserializeObject<ProcessParams>(json);
                Params?.FixDeserializedData();
                return true;
            }
            catch { return false; }
        }
        public override bool Save(string filePath)
        {
            try
            {
                if (string.IsNullOrEmpty(filePath)) return false;
                if (!Directory.Exists(filePath)) Directory.CreateDirectory(filePath);
                string fullPath = Path.Combine(filePath, strProcessName + ".json");
                string json = JsonConvert.SerializeObject(Params, Formatting.Indented);
                File.WriteAllText(fullPath, json, Encoding.UTF8);
                return true;
            }
            catch { return false; }
        }
        public override object Clone()
        {
            try
            {
                var obj = (BarcodeReaderProcess)MemberwiseClone();
                string json = JsonConvert.SerializeObject(this.Params);
                obj.Params = JsonConvert.DeserializeObject<ProcessParams>(json);
                return obj;
            }
            catch { return (BarcodeReaderProcess)MemberwiseClone(); }
        }
        public override void Dispose() { }
    }
}
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/EasyIDSDK_Net.dll
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/EasyIDSDK_Net.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1812 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>EasyIDSDK_Net</name>
    </assembly>
    <members>
        <member name="T:EasyIDSDK_Net.EidCamera">
            <summary>
            <para><ch>EidCamera</ch></para>
            <para><en>EidCamera</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorOK">
            <summary>
            <para><ch>成功</ch></para>
            <para><en>OK</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorUnknown">
            <summary>
            <para><ch>未知错误</ch></para>
            <para><en>Unknown error</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInternalError">
            <summary>
            <para><ch>内部错误</ch></para>
            <para><en>Internal error</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInvalidParameter">
            <summary>
            <para><ch>无效参数</ch></para>
            <para><en>Invalid parameter</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotConnected">
            <summary>
            <para><ch>相机未连接</ch></para>
            <para><en>Camera not connected</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotFound">
            <summary>
            <para><ch>未找到</ch></para>
            <para><en>Not found</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorTimeout">
            <summary>
            <para><ch>超时</ch></para>
            <para><en>Timeout</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotImplemented">
            <summary>
            <para><ch>未实现</ch></para>
            <para><en>Not implemented</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorRepeatOperation">
            <summary>
            <para><ch>重复操作</ch></para>
            <para><en>Repeat operation</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNullPtr">
            <summary>
            <para><ch>空指针</ch></para>
            <para><en>Null pointer</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorReadDataFail">
            <summary>
            <para><ch>读取数据失败</ch></para>
            <para><en>Failed to read data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorWriteDataFail">
            <summary>
            <para><ch>写入数据失败</ch></para>
            <para><en>Failed to write data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorDataCheckFail">
            <summary>
            <para><ch>数据校验失败</ch></para>
            <para><en>Data verification failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageSizeError">
            <summary>
            <para><ch>图像大小错误</ch></para>
            <para><en>Wrong image size</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageTypeError">
            <summary>
            <para><ch>图像类型错误</ch></para>
            <para><en>Wrong image type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageDataTypeError">
            <summary>
            <para><ch>图像数据类型错误</ch></para>
            <para><en>Wrong image data type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorSerializeFail">
            <summary>
            <para><ch>序列化失败</ch></para>
            <para><en>Serialization failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorDeserializeFail">
            <summary>
            <para><ch>反序列化失败</ch></para>
            <para><en>Deserialization failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorOpenFileFail">
            <summary>
            <para><ch>打开文件失败</ch></para>
            <para><en>Failed to open file</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorWriteFileFail">
            <summary>
            <para><ch>文件写入失败</ch></para>
            <para><en>File writing failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInvalidHandle">
            <summary>
            <para><ch>无效句柄</ch></para>
            <para><en>Invalid handle</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInsufficientBuffer">
            <summary>
            <para><ch>缓冲区过小</ch></para>
            <para><en>Insufficient buffers</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.#ctor">
            <summary>
            <para><ch>构造函数</ch></para>
            <para><en>Constructor</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetVersion_Net">
            <summary>
            <para><ch>获取版本信息</ch></para>
            <para><en>Get version information</en></para>
            </summary>
            <returns><para><ch>版本信息</ch></para><para><en>Version infomation</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidEnumDevices_Net(EasyIDSDK_Net.EidCamera.EidDeviceList@,System.UInt32)">
            <summary>
            <para><ch>根据接口类型枚举相机, åŒæ—¶è¾“出所有相机信息到 deviceList</ch></para>
            <para><en>Enumerate devices according to the interface type, and outputting all devices information to the deviceList</en></para>
            </summary>
            <param name="deviceList"><para><ch>[out] è®¾å¤‡ä¿¡æ¯åˆ—表</ch></para><para><en>[out] Device information list</en></para></param>
            <param name="type"><para><ch>[in] æŽ¥å£ç±»åž‹, å¯ä»¥æ˜¯å¤šä¸ªæŽ¥å£ç±»åž‹çš„组合. è‹¥ä¼ å…¥å€¼ä¸º0表示所有类型, ä¸Ž eidInterfaceTypeAll å«ä¹‰ç›¸åŒ, å…¶ä½™å–值参考 #EidInterfaceType</ch></para>
            <para><en>[in] Interface type, which can be a combination of multiple interface types.If the value of the parameter is 0, it means all types, which is the same as eidInterfaceTypeAll. other value see #EidInterfaceType</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidCreateDevice_Net(System.String,EasyIDSDK_Net.EidCamera.EidDeviceDataType)">
            <summary>
            <para><ch>根据设备数据信息创建相应的设备对象, å¦‚可以通过设备序列号创建。</ch></para>
            <para><en>Create a device handle according to the device data, for example, you can create a device object through the serial number.
            This interface will not enumerate devices and needs to be called after #eidEnumDevices.</en></para>
            </summary>
            <param name="data"><para><ch>[in] è®¾å¤‡æ•°æ®, æ•°æ®å†…容的含义由 type å‚数决定</ch></para><para><en>[in] Device data, the meaning of the data content is determined by the type parameter</en></para></param>
            <param name="type"><para><ch>[in] æ•°æ®ç±»åž‹, é»˜è®¤å€¼æ˜¯è®¾å¤‡åºåˆ—号</ch></para><para><en>[in] Data type</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
            <remarks><para><ch>注意需要调用 #eidReleaseHandle_Net é‡Šæ”¾èµ„源。</ch></para><para><en>Note that need to call #eidReleaseHandle_Net to release resources.</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidReleaseHandle_Net">
            <summary>
            <para><ch>释放相机句柄资源</ch></para>
            <para><en>Release device handle resources</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetDeviceInfo_Net(EasyIDSDK_Net.EidCamera.EidDeviceInfo@)">
            <summary>
            <para><ch>获取设备信息</ch></para>
            <para><en>Get device infomation</en></para>
            </summary>
            <param name="info"><para><ch>[out] è®¾å¤‡ä¿¡æ¯</ch></para><para><en>[out] Pointer to a EidDeviceInfo structure to receive the device information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidOpenDevice_Net">
            <summary>
            <para><ch>打开设备</ch></para>
            <para><en>Open a device</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidCloseDevice_Net">
            <summary>
            <para><ch>关闭设备</ch></para>
            <para><en>Close a device</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsDeviceOpen_Net">
            <summary>
            <para><ch>设备是否已经打开</ch></para>
            <para><en>Gets a value indicating whether the media source is currently open. .</en></para>
            </summary>
            <returns><para><ch>如果设备处于打开状态,返回 true,否则,false</ch></para><para><en>True if the device is open; otherwise, false</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidForceIpAddress_Net(System.String,System.String,System.String)">
            <summary>
            <para><ch>修改相机IP. è¯¥æŽ¥å£åªé’ˆå¯¹é€šè¿‡ç½‘卡接入的设备,对于其余设备,调用此接口无意义</ch></para>
            <para><en>Modify the device IP. This interface is only for devices connected through a network card.
            For other devices, it is meaningless to call this interface.</en></para>
            </summary>
            <param name="ipAddr"><para><ch>[in] è®¾å¤‡IP地址</ch></para><para><en>[in] New IP address</en></para></param>
            <param name="subnetMask"><para><ch>[in] å­ç½‘掩码</ch></para><para><en>[in] New subnet mask</en></para></param>
            <param name="gateway"><para><ch>[in] é»˜è®¤ç½‘å…³</ch></para><para><en>[in] New default gateway</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidDownloadGenICamXML_Net(System.String)">
            <summary>
            <para><ch>下载设备描述XML文件,并保存到指定路径</ch></para>
            <para><en>Download device description XML file, and save the file to specified path</en></para>
            </summary>
            <param name="path"><para><ch>[in] æ–‡ä»¶ä¿å­˜è·¯å¾„</ch></para><para><en>[in] The file path where the downloaded XMl file would be saved to</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSaveDeviceConfig_Net(System.String)">
            <summary>
            <para><ch>保存设备配置到指定的路径</ch></para>
            <para><en>Save the configuration of the device to specified path</en></para>
            </summary>
            <param name="path"><para><ch>[in] æ–‡ä»¶ä¿å­˜è·¯å¾„</ch></para><para><en>[in] The file path where the downloaded XMl file would be saved to</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidLoadDeviceConfig_Net(System.String,EasyIDSDK_Net.EidCamera.EidErrorList@)">
            <summary>
            <para><ch>从文件加载设备配置</ch></para>
            <para><en>Load the device configuration from a file</en></para>
            </summary>
            <param name="path"><para><ch>[in] é…ç½®æ–‡ä»¶è·¯å¾„</ch></para><para><en>[in] Configuration file path</en></para></param>
            <param name="errorList"><para><ch>[out] é”™è¯¯åˆ—表指针, å†™å…¥å¤±è´¥çš„设备属性名称将通过该参数返回</ch></para><para><en>[out] Pointor to error list. The device feature names that failed to write will be returned with this parameter</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFeatureType_Net(System.String)">
            <summary>
            <para><ch>获取设备属性类型</ch></para>
            <para><en>Get device feature type</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>设备属性类型, è§ #EidFeatureType</ch></para><para><en>Device feature type, see enum #EidFeatureType</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureValid_Net(System.String)">
            <summary>
            <para><ch>设备属性是否有效</ch></para>
            <para><en>Is the device feature valid</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true æœ‰æ•ˆ,false æ— æ•ˆ</ch></para><para><en>true Valid,false Not valid</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureAvailable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可用</ch></para>
            <para><en>Is the device feature available</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯ç”¨,false ä¸å¯ç”¨</ch></para><para><en>true Available,false Not available</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureReadable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可读</ch></para>
            <para><en>Is the device feature readable</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯è¯»,false ä¸å¯è¯»</ch></para><para><en>true Readable,false Not readable</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureWriteable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可写</ch></para>
            <para><en>Is the device feature writeable</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯å†™,false ä¸å¯å†™</ch></para><para><en>true Writeable,false Not writeable</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetIntFeatureValue_Net(System.String,System.Int64@)">
            <summary>
            <para><ch>获取整型属性值</ch></para>
            <para><en>Get integer feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetIntFeatureValue_Net(System.String,System.Int64)">
            <summary>
            <para><ch>设置整型属性值</ch></para>
            <para><en>Set integer feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetIntFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidIntFeatureInfo@)">
            <summary>
            <para><ch>获取整型属性信息</ch></para>
            <para><en>Gets integer feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFloatFeatureValue_Net(System.String,System.Double@)">
            <summary>
            <para><ch>获取浮点型属性值</ch></para>
            <para><en>Get float feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetFloatFeatureValue_Net(System.String,System.Double)">
            <summary>
            <para><ch>设置浮点型属性值</ch></para>
            <para><en>Set float feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFloatFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo@)">
            <summary>
            <para><ch>获取浮点型属性信息</ch></para>
            <para><en>Gets float feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetBoolFeatureValue_Net(System.String,System.Boolean@)">
            <summary>
            <para><ch>获取布尔型属性值</ch></para>
            <para><en>Get bool feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetBoolFeatureValue_Net(System.String,System.Boolean)">
            <summary>
            <para><ch>设置布尔型属性值</ch></para>
            <para><en>Set bool feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetStringFeatureValue_Net(System.String,System.Byte@,System.UInt32@)">
            <summary>
            <para><ch>获取字符串型属性值</ch></para>
            <para><en>Get string feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼å­—符串缓冲区, ç”¨æˆ·åˆ†é…å†…存空间</ch></para><para><en>[out] Pointer to string feature value buffer that is allocated memory space by the user</en></para></param>
            <param name="size"><para><ch>[in,out] å±žæ€§å€¼å­—符串缓冲区长度.</ch></para><para><en>[in,out] The length of the string buffer.</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
            <remarks><para><ch>当函数返回时, å¦‚果缓冲区足够大, æ‰€æœ‰çš„æ•°æ®éƒ½ä¼šæ‹·è´åˆ° value ç¼“冲区, å¹¶ä¸”此参数的值是实际字符串的长度(不包含null结束符);
            å¦‚果缓冲区不够大, ç¼“冲区的数据是截断后的字符串内容, å¹¶ä¸”此参数包含字符串的实际长度(不包含null结束符)</ch></para><para><en>When the function returns, if the buffer is large enough,
            all data is copied to the value buffer, and the value of this parameter is the length of the actual string (without the null terminator);
            If the buffer is not large enough, the buffer's data is the truncated string content,
            and this parameter contains the actual length of the string (without the null terminator)</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetStringFeatureValue_Net(System.String,System.Byte@)">
            <summary>
            <para><ch>设置字符串型属性值</ch></para>
            <para><en>Set string feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetStringFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidStringFeatureInfo@)">
            <summary>
            <para><ch>获取字符串型属性信息</ch></para>
            <para><en>Gets string feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureValue_Net(System.String,System.UInt64@)">
            <summary>
            <para><ch>获取枚举型属性值</ch></para>
            <para><en>Get enum feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetEnumFeatureValue_Net(System.String,System.UInt64)">
            <summary>
            <para><ch>设置枚举型属性值</ch></para>
            <para><en>Set enum feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureSymbol_Net(System.String,System.Byte@,System.UInt32)">
            <summary>
            <para><ch>获取枚举型属性符号</ch></para>
            <para><en>Get enum feature symbol</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§ç¬¦å·</ch></para><para><en>[out] Pointer to enum feature symbol buffer</en></para></param>
            <param name="size"><para><ch>[in] å±žæ€§ç¬¦å·ç¼“冲长度</ch></para><para><en>[in] The length of symbol buffer</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetEnumFeatureSymbol_Net(System.String,System.String)">
            <summary>
            <para><ch>设置枚举型属性符号</ch></para>
            <para><en>Set enum feature symbol</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§ç¬¦å·</ch></para><para><en>[in] Feature symbol</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureEntryList_Net(System.String,EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList@)">
            <summary>
            <para><ch>获取枚举型属性条目列表</ch></para>
            <para><en>Get enum feature entry list</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="entryList"><para><ch>[out] æžšä¸¾æ¡ç›®åˆ—表</ch></para><para><en>[out] Pointer to a EidEnumFeatureEntryList structure to receive the enum entry list</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidExecCommandFeature_Net(System.String)">
            <summary>
            <para><ch>执行命令行属性</ch></para>
            <para><en>Execute command feature</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidEnumFeatureChildren_Net(System.String,EasyIDSDK_Net.EidCamera.EidEnumFeatureChildrenCallback,System.IntPtr)">
            <summary>
            <para><ch>枚举子属性</ch></para>
            <para><en>Enum Feature Children</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="fn"><para><ch>[in] å›žè°ƒå‡½æ•°, æ¯ä¸ªå­å±žæ€§éƒ½å°†ä¼šè§¦å‘一次该函数的调用</ch></para><para><en>[in] callback function, each child feature will invoke this method</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] user data for callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidStartGrabbing_Net(System.Int32)">
            <summary>
            <para><ch>开始取流</ch></para>
            <para><en>Start grabbing, then you can get the camera frame through #eidGetFrame</en></para>
            </summary>
            <param name="bufferCount"><para><ch>[in] å¸§ç¼“存数量, 0表示使用默认缓存数, >0使用设置的缓存数</ch></para><para><en>[in] The number of frame buffers, 0 means to use the default number of buffers, >0 to use the set number of buffers</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidStopGrabbing_Net">
            <summary>
            <para><ch>停止取流</ch></para>
            <para><en>Stop grabbing</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsGrabbing_Net">
            <summary>
            <para><ch>是否正在取流</ch></para>
            <para><en>Check whether it is grabbing or not</en></para>
            </summary>
            <returns><para><ch>如果正在取流, è¿”回true; å¦åˆ™è¿”回false</ch></para><para><en>Returns true if it is grabbing; otherwise returns false</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidClearFrameBuffer_Net">
            <summary>
            <para><ch>清除帧数据缓存</ch></para>
            <para><en>clear frame buffer cache</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFrame_Net(System.UInt32)">
            <summary>
            <para><ch>获取一帧图像, è‹¥ç›¸æœºå¼€å¯äº†è¯»ç åŠŸèƒ½, å¸§æ•°æ®ä¸­åŒæ—¶æºå¸¦æ¡ç ä¿¡æ¯.</ch></para>
            <para><en>Get a frame. If the code reading function is enabled, the frame data also carries the barcode information.</en></para>
            </summary>
            <param name="timeout"><para><ch>[in] è¶…æ—¶æ—¶é—´, å•位: æ¯«ç§’. å½“值为-1时表示无限等待</ch></para><para><en>[in] Timeout, in ms, when the value is -1, it means infinite wait</en></para></param>
            <returns><para><ch>帧数据句柄, å¤±è´¥è¿”回 nullptr</ch></para><para><en>Frame handle, failure returns nullptr</en></para></returns>
            <remarks><para><ch>该接口将导致线程阻塞, ç›´åˆ°æ”¶åˆ°å›¾åƒæˆ–者到达超时时间. è¿”回的句柄需要通过 #eidReleaseFrame_Net è¿›è¡Œé‡Šæ”¾</ch></para><para><en>This method will block the thread until the timeout is reached.
             The returned handle needs to be released through #eidReleaseFrame_Net</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidReleaseFrame_Net(System.IntPtr@)">
            <summary>
            <para><ch>释放一帧图像</ch></para>
            <para><en>Release a frame</en></para>
            </summary>
            <param name="frame"><para><ch>帧数据句柄</ch></para><para><en>Frame handle</en></para></param>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFrameValid_Net(System.IntPtr)">
            <summary>
            <para><ch>帧句柄是否有效</ch></para>
            <para><en>Is the frame handle valid</en></para>
            </summary>
            <param name="frame"><para><ch>[in] å¸§å¥æŸ„</ch></para><para><en>[in] Frame handle</en></para></param>
            <returns><para><ch>true æœ‰æ•ˆ,false æ— æ•ˆ</ch></para><para><en>true Valid,false Not valid</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFrameInfo_Net(System.IntPtr,EasyIDSDK_Net.EidCamera.EidFrameInfo@)">
            <summary>
            <para><ch>获取帧信息. å¸§ä¿¡æ¯é‡ŒåŒæ—¶åŒ…含图像数据和条码数据</ch></para>
            <para><en>Get frame information. The frame information contains both image data and barcode data</en></para>
            </summary>
            <param name="frame"><para><ch>[in] å¸§å¥æŸ„</ch></para><para><en>[in] Frame handle</en></para></param>
            <param name="info"><para><ch>[out] å¸§ä¿¡æ¯</ch></para><para><en>[out] Frame information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterFrameCallback_Net(EasyIDSDK_Net.EidCamera.EidFrameCallback,System.IntPtr)">
            <summary>
            <para><ch>注册帧数据回调</ch></para>
            <para><en>Register frame data callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] å¸§æ•°æ®å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to frame data callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterConnectionCallback_Net(EasyIDSDK_Net.EidCamera.EidConnectionCallback,System.IntPtr)">
            <summary>
            <para><ch>注册设备连接信息回调</ch></para>
            <para><en>Register device connection information callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] è¿žæŽ¥ä¿¡æ¯å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to device connection information callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterFeatureUpdateCallback_Net(EasyIDSDK_Net.EidCamera.EidFeatureUpdateCallback,System.IntPtr)">
            <summary>
            <para><ch>注册设备属性更新回调</ch></para>
            <para><en>Register device feature update callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] å±žæ€§æ›´æ–°å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to device feature update callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFeatureType">
            <summary>
            <para><ch>属性类型</ch></para>
            <para><en>Feature type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeUnknown">
            <summary>
            <para><ch>未定义</ch></para>
            <para><en>Undefined</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeInt">
            <summary>
            <para><ch>整型数</ch></para>
            <para><en>Integer</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeFloat">
            <summary>
            <para><ch>浮点数</ch></para>
            <para><en>Float</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeEnum">
            <summary>
            <para><ch>枚举</ch></para>
            <para><en>Enumeration</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeBool">
            <summary>
            <para><ch>布尔</ch></para>
            <para><en>Bool</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeString">
            <summary>
            <para><ch>字符串</ch></para>
            <para><en>String</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeCommand">
            <summary>
            <para><ch>命令</ch></para>
            <para><en>Command</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeGroup">
            <summary>
            <para><ch>分组</ch></para>
            <para><en>Group</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidInterfaceType">
            <summary>
            <para><ch>接口类型</ch></para>
            <para><en>Interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeUnknown">
            <summary>
            <para><ch>未知接口类型</ch></para>
            <para><en>Unknown interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeGige">
            <summary>
            <para><ch>网卡接口类型</ch></para>
            <para><en>NIC type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeUsb">
            <summary>
            <para><ch>USB接口类型</ch></para>
            <para><en>USB interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeAll">
            <summary>
            <para><ch>所有接口类型</ch></para>
            <para><en>All interface type</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceType">
            <summary>
            <para><ch>设备类型</ch></para>
            <para><en>Device type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeUnknown">
            <summary>
            <para><ch>未知类型</ch></para>
            <para><en>Unknown type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeGige">
            <summary>
            <para><ch>GIGE相机</ch></para>
            <para><en>GigE Camera</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeUSB">
            <summary>
            <para><ch>USB相机</ch></para>
            <para><en>USB Camera</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceDataType">
            <summary>
            <para><ch>设备数据类型, ç”¨äºŽ #eidCreateDevice å‡½æ•°</ch></para>
            <para><en>Device data type, used in the #eidCreateDevice function</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeID">
            <summary>
            <para><ch>设备ID</ch></para>
            <para><en>Device ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeSN">
            <summary>
            <para><ch>序列号</ch></para>
            <para><en>Serial number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeIP">
            <summary>
            <para><ch>IP地址</ch></para>
            <para><en>IP address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeMAC">
            <summary>
            <para><ch>MAC地址</ch></para>
            <para><en>MAC address</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidPixelFormat">
            <summary>
            <para><ch>图像像素格式</ch></para>
            <para><en>Image pixel format</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelUnknwon">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono1p">
            <summary>
            <para><ch>Mono1p</ch></para>
            <para><en>Mono1p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono2p">
            <summary>
            <para><ch>Mono2p</ch></para>
            <para><en>Mono2p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono4p">
            <summary>
            <para><ch>Mono4p</ch></para>
            <para><en>Mono4p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono8">
            <summary>
            <para><ch>Mono8</ch></para>
            <para><en>Mono8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono8S">
            <summary>
            <para><ch>Mono8S</ch></para>
            <para><en>Mono8S</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono10">
            <summary>
            <para><ch>Mono10</ch></para>
            <para><en>Mono10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono10Packed">
            <summary>
            <para><ch>Mono10Packed</ch></para>
            <para><en>Mono10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono12">
            <summary>
            <para><ch>Mono12</ch></para>
            <para><en>Mono12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono12Packed">
            <summary>
            <para><ch>Mono12Packed</ch></para>
            <para><en>Mono12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono14">
            <summary>
            <para><ch>Mono14</ch></para>
            <para><en>Mono14</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono16">
            <summary>
            <para><ch>Mono16</ch></para>
            <para><en>Mono16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR8">
            <summary>
            <para><ch>BayGR8</ch></para>
            <para><en>BayGR8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG8">
            <summary>
            <para><ch>BayRG8</ch></para>
            <para><en>BayRG8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB8">
            <summary>
            <para><ch>BayGB8</ch></para>
            <para><en>BayGB8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG8">
            <summary>
            <para><ch>BayBG8</ch></para>
            <para><en>BayBG8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR10">
            <summary>
            <para><ch>BayGR10</ch></para>
            <para><en>BayGR10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG10">
            <summary>
            <para><ch>BayRG10</ch></para>
            <para><en>BayRG10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB10">
            <summary>
            <para><ch>BayGB10</ch></para>
            <para><en>BayGB10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG10">
            <summary>
            <para><ch>BayBG10</ch></para>
            <para><en>BayBG10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR12">
            <summary>
            <para><ch>BayGR12</ch></para>
            <para><en>BayGR12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG12">
            <summary>
            <para><ch>BayRG12</ch></para>
            <para><en>BayRG12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB12">
            <summary>
            <para><ch>BayGB12</ch></para>
            <para><en>BayGB12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG12">
            <summary>
            <para><ch>BayBG12</ch></para>
            <para><en>BayBG12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR10Packed">
            <summary>
            <para><ch>BayGR10Packed</ch></para>
            <para><en>BayGR10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG10Packed">
            <summary>
            <para><ch>BayRG10Packed</ch></para>
            <para><en>BayRG10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB10Packed">
            <summary>
            <para><ch>BayGB10Packed</ch></para>
            <para><en>BayGB10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG10Packed">
            <summary>
            <para><ch>BayBG10Packed</ch></para>
            <para><en>BayBG10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR12Packed">
            <summary>
            <para><ch>BayGR12Packed</ch></para>
            <para><en>BayGR12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG12Packed">
            <summary>
            <para><ch>BayRG12Packed</ch></para>
            <para><en>BayRG12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB12Packed">
            <summary>
            <para><ch>BayGB12Packed</ch></para>
            <para><en>BayGB12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG12Packed">
            <summary>
            <para><ch>BayBG12Packed</ch></para>
            <para><en>BayBG12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR16">
            <summary>
            <para><ch>BayGR16</ch></para>
            <para><en>BayGR16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG16">
            <summary>
            <para><ch>BayRG16</ch></para>
            <para><en>BayRG16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB16">
            <summary>
            <para><ch>BayGB16</ch></para>
            <para><en>BayGB16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG16">
            <summary>
            <para><ch>BayBG16</ch></para>
            <para><en>BayBG16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB8">
            <summary>
            <para><ch>RGB8</ch></para>
            <para><en>RGB8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR8">
            <summary>
            <para><ch>BGR8</ch></para>
            <para><en>BGR8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGBA8">
            <summary>
            <para><ch>RGBA8</ch></para>
            <para><en>RGBA8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGRA8">
            <summary>
            <para><ch>BGRA8</ch></para>
            <para><en>BGRA8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10">
            <summary>
            <para><ch>RGB10</ch></para>
            <para><en>RGB10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR10">
            <summary>
            <para><ch>BGR10</ch></para>
            <para><en>BGR10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12">
            <summary>
            <para><ch>RGB12</ch></para>
            <para><en>RGB12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR12">
            <summary>
            <para><ch>BGR12</ch></para>
            <para><en>BGR12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB16">
            <summary>
            <para><ch>RGB16</ch></para>
            <para><en>RGB16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10V1Packed">
            <summary>
            <para><ch>RGB10V1Packed</ch></para>
            <para><en>RGB10V1Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10P32">
            <summary>
            <para><ch>RGB10P32</ch></para>
            <para><en>RGB10P32</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12V1Packed">
            <summary>
            <para><ch>RGB12V1Packed</ch></para>
            <para><en>RGB12V1Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB565P">
            <summary>
            <para><ch>RGB565P</ch></para>
            <para><en>RGB565P</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR565P">
            <summary>
            <para><ch>BGR565P</ch></para>
            <para><en>BGR565P</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV411_8_UYYVYY">
            <summary>
            <para><ch>YUV411_8_UYYVYY</ch></para>
            <para><en>YUV411_8_UYYVYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV422_8_UYVY">
            <summary>
            <para><ch>YUV422_8_UYVY</ch></para>
            <para><en>YUV422_8_UYVY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV422_8">
            <summary>
            <para><ch>YUV422_8 </ch></para>
            <para><en>YUV422_8 </en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV8_UYV">
            <summary>
            <para><ch>YUV8_UYV</ch></para>
            <para><en>YUV8_UYV</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr8CbYCr">
            <summary>
            <para><ch>YCbCr8CbYCr</ch></para>
            <para><en>YCbCr8CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr422_8">
            <summary>
            <para><ch>YCbCr422_8</ch></para>
            <para><en>YCbCr422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr422_8_CbYCrY</ch></para>
            <para><en>YCbCr422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_8_CbYCr">
            <summary>
            <para><ch>YCbCr601_8_CbYCr</ch></para>
            <para><en>YCbCr601_8_CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_422_8">
            <summary>
            <para><ch>YCbCr601_422_8</ch></para>
            <para><en>YCbCr601_422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr601_422_8_CbYCrY</ch></para>
            <para><en>YCbCr601_422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr601_411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr601_411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_8_CbYCr">
            <summary>
            <para><ch>YCbCr709_8_CbYCr</ch></para>
            <para><en>YCbCr709_8_CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_422_8">
            <summary>
            <para><ch>YCbCr709_422_8</ch></para>
            <para><en>YCbCr709_422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr709_422_8_CbYCrY</ch></para>
            <para><en>YCbCr709_422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr709_411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr709_411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB8Planar">
            <summary>
            <para><ch>RGB8Planar</ch></para>
            <para><en>RGB8Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10Planar">
            <summary>
            <para><ch>RGB10Planar</ch></para>
            <para><en>RGB10Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12Planar">
            <summary>
            <para><ch>RGB12Planar</ch></para>
            <para><en>RGB12Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB16Planar">
            <summary>
            <para><ch>RGB16Planar</ch></para>
            <para><en>RGB16Planar</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidReadState">
            <summary>
            <para><ch>读码状态</ch></para>
            <para><en>Code reading state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateUnknown">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateNA">
            <summary>
            <para><ch>无效</ch></para>
            <para><en>Not available</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateComplete">
            <summary>
            <para><ch>全部</ch></para>
            <para><en>Complete</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateNoRead">
            <summary>
            <para><ch>无条码</ch></para>
            <para><en>No code was read</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePartial">
            <summary>
            <para><ch>部分</ch></para>
            <para><en>Partial</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateFail">
            <summary>
            <para><ch>失败</ch></para>
            <para><en>Fail</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseNA">
            <summary>
            <para><ch>无效(Phase模式)</ch></para>
            <para><en>Not available(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseComplete">
            <summary>
            <para><ch>全部(Phase模式)</ch></para>
            <para><en>Complete(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseNoRead">
            <summary>
            <para><ch>无条码(Phase模式)</ch></para>
            <para><en>No code was read(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhasePartial">
            <summary>
            <para><ch>部分(Phase模式)</ch></para>
            <para><en>Partial(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseFail">
            <summary>
            <para><ch>失败(Phase模式)</ch></para>
            <para><en>Fail(Phase mode)</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidBarcodeType">
            <summary>
            <para><ch>码类型</ch></para>
            <para><en>Barcode type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUnknown">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeEAN8">
            <summary>
            <para><ch>EAN8</ch></para>
            <para><en>EAN8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeEAN13">
            <summary>
            <para><ch>EAN13</ch></para>
            <para><en>EAN13 type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode39">
            <summary>
            <para><ch>Code39</ch></para>
            <para><en>Code39</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode93">
            <summary>
            <para><ch>Code93</ch></para>
            <para><en>Code93</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode128">
            <summary>
            <para><ch>Code128</ch></para>
            <para><en>Code128</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUPCA">
            <summary>
            <para><ch>UPCA</ch></para>
            <para><en>UPCA</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUPCE">
            <summary>
            <para><ch>UPCE</ch></para>
            <para><en>UPCE</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeITF25">
            <summary>
            <para><ch>ITF25</ch></para>
            <para><en>ITF25</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODABAR">
            <summary>
            <para><ch>CODABAR</ch></para>
            <para><en>CODABAR</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128A">
            <summary>
            <para><ch>CODE128A</ch></para>
            <para><en>CODE128A</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128B">
            <summary>
            <para><ch>CODE128B</ch></para>
            <para><en>CODE128B</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128C">
            <summary>
            <para><ch>CODE128C</ch></para>
            <para><en>CODE128C</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeQR">
            <summary>
            <para><ch>QR</ch></para>
            <para><en>QR</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeDM">
            <summary>
            <para><ch>DM</ch></para>
            <para><en>DM</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypePDF417">
            <summary>
            <para><ch>PDF417</ch></para>
            <para><en>PDF417</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeVERICODE">
            <summary>
            <para><ch>VERICODE</ch></para>
            <para><en>VERICODE</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionState">
            <summary>
            <para><ch>连接事件类型</ch></para>
            <para><en>Connect event type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionState.eidConnStateOffline">
            <summary>
            <para><ch>离线</ch></para>
            <para><en>Offline</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionState.eidConnStateOnline">
            <summary>
            <para><ch>在线</ch></para>
            <para><en>Online</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo">
            <summary>
            <para><ch>GigE设备信息</ch></para>
            <para><en>GigE device info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.macAddress">
            <summary>
            <para><ch>设备Mac地址</ch></para>
            <para><en>Device MAC Address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.ipAddress">
            <summary>
            <para><ch>设备Ip地址</ch></para>
            <para><en>Device ip Address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.subnetMask">
            <summary>
            <para><ch>子网掩码</ch></para>
            <para><en>SubnetMask</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.defaultGateWay">
            <summary>
            <para><ch>默认网关</ch></para>
            <para><en>Default GateWay</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.isIpValid">
            <summary>
            <para><ch>Ip是否有效</ch></para>
            <para><en>Ip valid</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.chReserved">
            <summary>
            <para><ch>保留</ch></para>
            <para><en>Reserved field</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceInfo">
            <summary>
            <para><ch>设备信息</ch></para>
            <para><en>Device info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceType">
            <summary>
            <para><ch>设备类别</ch></para>
            <para><en>Device type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.interfaceType">
            <summary>
            <para><ch>接口类别</ch></para>
            <para><en>Interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceID">
            <summary>
            <para><ch>设备ID</ch></para>
            <para><en>Device ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.cameraName">
            <summary>
            <para><ch>用户自定义名</ch></para>
            <para><en>User defined name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.serialNumber">
            <summary>
            <para><ch>设备序列号</ch></para>
            <para><en>Device serial number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.vendorName">
            <summary>
            <para><ch>厂商</ch></para>
            <para><en>Device vendor</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.modelName">
            <summary>
            <para><ch>设备型号</ch></para>
            <para><en>Device model</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.manufactureInfo">
            <summary>
            <para><ch>设备制造信息</ch></para>
            <para><en>Device manufacture</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceVersion">
            <summary>
            <para><ch>设备版本</ch></para>
            <para><en>Device version</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.interfaceName">
            <summary>
            <para><ch>接口名</ch></para>
            <para><en>Interface name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reseved</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.stSpecialInfo">
            <summary>
            <para><ch>具体设备信息</ch></para>
            <para><en>special device Info</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceInfo.SPECIAL_INFO">
            <summary>
            <para><ch>具体设备信息</ch></para>
            <para><en>special device Info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.SPECIAL_INFO.gigeDeviceInfo">
            <summary>
            <para><ch>Gige设备信息</ch></para>
            <para><en>Gige device info</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceList">
            <summary>
            <para><ch>设备信息列表</ch></para>
            <para><en>Device information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.num">
            <summary>
            <para><ch>设备数量</ch></para>
            <para><en>Device Number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.infos">
            <summary>
            <para><ch>设备信息列表</ch></para>
            <para><en>Device information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidErrorList">
            <summary>
            <para><ch>错误列表</ch></para>
            <para><en>Error list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.num">
            <summary>
            <para><ch>失败的属性数量</ch></para>
            <para><en>Number of failed features</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.names">
            <summary>
            <para><ch>失败属性名列表</ch></para>
            <para><en>Error feature name list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo">
            <summary>
            <para><ch>整型属性信息</ch></para>
            <para><en>int feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.current">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.min">
            <summary>
            <para><ch>最小值</ch></para>
            <para><en>Minimum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.max">
            <summary>
            <para><ch>最大值</ch></para>
            <para><en>Maximum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.inc">
            <summary>
            <para><ch>增量</ch></para>
            <para><en>Increment</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo">
            <summary>
            <para><ch>浮点型属性信息</ch></para>
            <para><en>float feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.current">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.min">
            <summary>
            <para><ch>最小值</ch></para>
            <para><en>Minimum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.max">
            <summary>
            <para><ch>最大值</ch></para>
            <para><en>Maximum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.unit">
            <summary>
            <para><ch>单位</ch></para>
            <para><en>Unit</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo">
            <summary>
            <para><ch>字符串型属性信息</ch></para>
            <para><en>String feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.maxLen">
            <summary>
            <para><ch>最大长度</ch></para>
            <para><en>The maximum length of the String</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.value">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry">
            <summary>
            <para><ch>枚举型属性条目</ch></para>
            <para><en>enum feature entry</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry.value">
            <summary>
            <para><ch>值</ch></para>
            <para><en>Value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry.name">
            <summary>
            <para><ch>名称</ch></para>
            <para><en>Current Name</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList">
            <summary>
            <para><ch>枚举型属性信息</ch></para>
            <para><en>enum feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList.num">
            <summary>
            <para><ch>数量</ch></para>
            <para><en>count</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList.entryList">
            <summary>
            <para><ch>条目列表</ch></para>
            <para><en>Entry list</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidPoint">
            <summary>
            <para><ch>二维坐标点</ch></para>
            <para><en>2D coordinate point</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPoint.x">
            <summary>
            <para><ch>x坐标</ch></para>
            <para><en>x-coordinate</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPoint.y">
            <summary>
            <para><ch>y坐标</ch></para>
            <para><en>y-coordinate</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidCodeInfo">
            <summary>
            <para><ch>条码信息</ch></para>
            <para><en>Barcode information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.type">
            <summary>
            <para><ch>类型</ch></para>
            <para><en>Code type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.ppm">
            <summary>
            <para><ch>PPM</ch></para>
            <para><en>PPM</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.position">
            <summary>
            <para><ch>位置, 4个点</ch></para>
            <para><en>Position, 4 points</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.data">
            <summary>
            <para><ch>内容</ch></para>
            <para><en>Code content</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.typeName">
            <summary>
            <para><ch>类型名称</ch></para>
            <para><en>Code type name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFrameInfo">
            <summary>
            <para><ch>帧信息</ch></para>
            <para><en>Frame information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.id">
            <summary>
            <para><ch>帧ID</ch></para>
            <para><en>Frame block ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.timestamp">
            <summary>
            <para><ch>时间戳</ch></para>
            <para><en>Timestamp</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.width">
            <summary>
            <para><ch>图像宽度</ch></para>
            <para><en>Image width</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.height">
            <summary>
            <para><ch>图像高度</ch></para>
            <para><en>Image height</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.format">
            <summary>
            <para><ch>像素格式</ch></para>
            <para><en>Pixel format</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.readState">
            <summary>
            <para><ch>读码状态</ch></para>
            <para><en>Code reading state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.codeNum">
            <summary>
            <para><ch>条码数量</ch></para>
            <para><en>Number of barcodes</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.imageDataLen">
            <summary>
            <para><ch>图像数据长度</ch></para>
            <para><en>Length of image data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.imageData">
            <summary>
            <para><ch>图像数据</ch></para>
            <para><en>Image data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.codeList">
            <summary>
            <para><ch>条码信息列</ch></para>
            <para><en>Barcode information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.isJpeg">
            <summary>
            <para><ch>是否jpeg图</ch></para>
            <para><en>Is jpeg image</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionInfo">
            <summary>
            <para><ch>连接信息</ch></para>
            <para><en>Connetion information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionInfo.state">
            <summary>
            <para><ch>连接状态</ch></para>
            <para><en>Connetion state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFrameCallback">
            <summary>
            <para><ch>帧数据回调函数</ch></para>
            <para><en>Frame data callback function</en></para>
            </summary>
            <param name="frameInfo"><para><ch>帧信息</ch></para><para><en>frameInfo Frame info</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionCallback">
            <summary>
            <para><ch>设备连接信息回调函数</ch></para>
            <para><en>Device connection information callback function</en></para>
            </summary>
            <param name="frameInfo"><para><ch>连接信息</ch></para><para><en>info Connection infomation</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFeatureUpdateCallback">
            <summary>
            <para><ch>设备属性更新回调函数</ch></para>
            <para><en>Device feature update callback function</en></para>
            </summary>
            <param name="name"><para><ch>属性名称</ch></para><para><en>name Device feature name</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureChildrenCallback">
            <summary>
            <para><ch>枚举子属性的回调函数, åœ¨ eidEnumFeatureChildren å‡½æ•°ä¸­ä½¿ç”¨, æ¯æ¬¡æŽ¥æ”¶ä¸€ä¸ªå­å±žæ€§çš„名称</ch></para>
            <para><en>Callback function used with the eidEnumFeatureChildren function. It receives children feature names</en></para>
            </summary>
            <param name="name"><para><ch>子属性名称</ch></para><para><en>name child feature name</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
    </members>
</doc>
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCameraDevice.dll
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCameraDevice.pdb
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.dll
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_SmartVisionCommon.pdb
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionControls.dll
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionControls.pdb
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionProcesses.deps.json
@@ -32,6 +32,7 @@
          "SmartMore.ViMo.Inference": "3.19.1.2",
          "ZXing.Net": "0.16.11",
          "ZXing.Net.Bindings.Windows.Compatibility": "0.16.14",
          "EasyIDSDK_Net": "1.3.0.9252",
          "halcondotnetxl": "25.11.0.0",
          "MvCameraControl.Net": "4.7.0.2",
          "MvCodeReaderSDK.Net": "1.5.3.2",
@@ -1698,6 +1699,14 @@
          }
        }
      },
      "EasyIDSDK_Net/1.3.0.9252": {
        "runtime": {
          "EasyIDSDK_Net.dll": {
            "assemblyVersion": "1.3.0.9252",
            "fileVersion": "1.0.0.42745"
          }
        }
      },
      "halcondotnetxl/25.11.0.0": {
        "runtime": {
          "halcondotnetxl.dll": {
@@ -2494,6 +2503,11 @@
      "serviceable": false,
      "sha512": ""
    },
    "EasyIDSDK_Net/1.3.0.9252": {
      "type": "reference",
      "serviceable": false,
      "sha512": ""
    },
    "halcondotnetxl/25.11.0.0": {
      "type": "reference",
      "serviceable": false,
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionProcesses.dll
Binary files differ
LB_VisionProcesses/bin/Debug/net8.0-windows7.0/LB_VisionProcesses.pdb
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.Alogrithms.Halcon.HImageEnhancementToolEdit.resources
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.AssemblyInfo.cs
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("LB_VisionProcesses")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+63394fccfd4a07428d93f106a46a9393d8a9dd54")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ed2cb324d534291a221bb5a8cabe8ff48b3a46f3")]
[assembly: System.Reflection.AssemblyProductAttribute("LB_VisionProcesses")]
[assembly: System.Reflection.AssemblyTitleAttribute("LB_VisionProcesses")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.AssemblyInfoInputs.cache
@@ -1 +1 @@
3aca6031f02c33cf5c3d1245d1ae1b893b2c968fd647885c68a58820d02861d2
86a8903ae083e72521127bb3a4058139f85126680ced1d6602dac224b3a6b622
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.BarcodeReaders.BarcodeReaderForm.resources
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.AssemblyReference.cache
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
d8ebdbfaf4a5314d496a1e59a20cc3460a40af18833e9a895b66eed298926b23
91692407bf6141721c5c72b9ae75d5357ea412ced8005babd4f9adaa84b654c8
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.FileListAbsolute.txt
@@ -195,3 +195,7 @@
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\obj\Debug\net8.0-windows7.0\refint\LB_VisionProcesses.dll
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\obj\Debug\net8.0-windows7.0\LB_VisionProcesses.pdb
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\obj\Debug\net8.0-windows7.0\ref\LB_VisionProcesses.dll
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\bin\Debug\net8.0-windows7.0\EasyIDSDK_Net.dll
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\bin\Debug\net8.0-windows7.0\EasyIDSDK_Net.xml
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\obj\Debug\net8.0-windows7.0\LB_VisionProcesses.Alogrithms.Halcon.HImageEnhancementToolEdit.resources
D:\项目\轮胎外观检测\SmartVision\LB_VisionProcesses\obj\Debug\net8.0-windows7.0\LB_VisionProcesses.BarcodeReaders.BarcodeReaderForm.resources
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.csproj.GenerateResource.cache
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.designer.deps.json
@@ -328,42 +328,42 @@
          }
        }
      },
      "OpenCvSharp4.runtime.win/4.11.0.20250507": {
      "OpenCvSharp4.runtime.win/4.5.5.20211231": {
        "runtimeTargets": {
          "runtimes/win-x64/native/OpenCvSharpExtern.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          },
          "runtimes/win-x64/native/opencv_videoio_ffmpeg4110_64.dll": {
          "runtimes/win-x64/native/opencv_videoio_ffmpeg455_64.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2024.12.0.0"
            "fileVersion": "2021.12.0.0"
          },
          "runtimes/win-x86/native/OpenCvSharpExtern.dll": {
            "rid": "win-x86",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          },
          "runtimes/win-x86/native/opencv_videoio_ffmpeg4110.dll": {
          "runtimes/win-x86/native/opencv_videoio_ffmpeg455.dll": {
            "rid": "win-x86",
            "assetType": "native",
            "fileVersion": "2024.12.0.0"
            "fileVersion": "2021.12.0.0"
          }
        }
      },
      "OpenVINO.CSharp.API/2025.4.0": {
      "OpenVINO.CSharp.API/2025.3.0": {
        "runtime": {
          "lib/net8.0/OpenVINO_CSharp_API.dll": {
            "assemblyVersion": "2025.4.0.0",
            "fileVersion": "2025.4.0.0"
            "assemblyVersion": "2025.3.0.0",
            "fileVersion": "2025.3.0.0"
          }
        }
      },
      "OpenVINO.CSharp.API.Extensions/1.0.7": {
        "dependencies": {
          "OpenVINO.CSharp.API": "2025.4.0",
          "SharpCompress": "0.40.0"
          "OpenVINO.CSharp.API": "2025.3.0",
          "SharpCompress": "0.47.3"
        },
        "runtime": {
          "lib/net8.0/OpenVINO_CSharp_API_Extensions.dll": {
@@ -376,112 +376,13 @@
        "dependencies": {
          "OpenCvSharp4": "4.11.0.20250507",
          "OpenCvSharp4.Extensions": "4.11.0.20250507",
          "OpenVINO.CSharp.API": "2025.4.0",
          "OpenVINO.CSharp.API": "2025.3.0",
          "OpenVINO.CSharp.API.Extensions": "1.0.7"
        },
        "runtime": {
          "lib/net8.0/OpenVINO_CSharp_API_Extensions_OpenCvSharp.dll": {
            "assemblyVersion": "1.0.7.0",
            "fileVersion": "1.0.7.0"
          }
        }
      },
      "OpenVINO.runtime.win/2025.4.0": {
        "runtimeTargets": {
          "runtimes/win-x64/native/cache.json": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          },
          "runtimes/win-x64/native/openvino.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_auto_batch_plugin.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_auto_plugin.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_c.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_hetero_plugin.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_intel_cpu_plugin.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_intel_gpu_plugin.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_intel_npu_plugin.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_ir_frontend.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_onnx_frontend.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_paddle_frontend.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_pytorch_frontend.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_tensorflow_frontend.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/openvino_tensorflow_lite_frontend.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2025.4.0.20398"
          },
          "runtimes/win-x64/native/tbb12.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2021.2.6.0"
          },
          "runtimes/win-x64/native/tbbbind_2_5.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2021.2.6.0"
          },
          "runtimes/win-x64/native/tbbmalloc.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2021.2.6.0"
          },
          "runtimes/win-x64/native/tbbmalloc_proxy.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "2021.2.6.0"
          }
        }
      },
@@ -887,21 +788,18 @@
          }
        }
      },
      "SharpCompress/0.40.0": {
        "dependencies": {
          "ZstdSharp.Port": "0.8.5"
        },
      "SharpCompress/0.47.3": {
        "runtime": {
          "lib/net8.0/SharpCompress.dll": {
            "assemblyVersion": "0.40.0.0",
            "fileVersion": "0.40.0.0"
            "assemblyVersion": "0.47.3.0",
            "fileVersion": "0.47.3.0"
          }
        }
      },
      "SmartMore.ViMo.Inference/3.19.1.2": {
        "dependencies": {
          "OpenCvSharp4": "4.11.0.20250507",
          "OpenCvSharp4.runtime.win": "4.11.0.20250507"
          "OpenCvSharp4.runtime.win": "4.5.5.20211231"
        },
        "runtime": {
          "lib/netstandard2.0/SmartMore.ViMo.Inference.dll": {
@@ -1730,14 +1628,6 @@
          }
        }
      },
      "ZstdSharp.Port/0.8.5": {
        "runtime": {
          "lib/net8.0/ZstdSharp.dll": {
            "assemblyVersion": "0.8.5.0",
            "fileVersion": "0.8.5.0"
          }
        }
      },
      "ZXing.Net/0.16.11": {
        "runtime": {
          "lib/net8.0/zxing.dll": {
@@ -1901,19 +1791,19 @@
      "path": "opencvsharp4.extensions/4.11.0.20250507",
      "hashPath": "opencvsharp4.extensions.4.11.0.20250507.nupkg.sha512"
    },
    "OpenCvSharp4.runtime.win/4.11.0.20250507": {
    "OpenCvSharp4.runtime.win/4.5.5.20211231": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-3PxMXyzR+pkL9UOx2PiBjZm+/iyCIu5D6OlA1sq9MH7oWrfvVnCXJlUYhIJv67F7SLUwUuGwXDIQBfdsL/54lg==",
      "path": "opencvsharp4.runtime.win/4.11.0.20250507",
      "hashPath": "opencvsharp4.runtime.win.4.11.0.20250507.nupkg.sha512"
      "sha512": "sha512-hywJLVuHQTHxroPTYWPhj59VIpoPTGoKJYyvHWWs0hnqPLPemnPCWZLJtdehdpf00U6l1QgvARJMFqc3RtSXGQ==",
      "path": "opencvsharp4.runtime.win/4.5.5.20211231",
      "hashPath": "opencvsharp4.runtime.win.4.5.5.20211231.nupkg.sha512"
    },
    "OpenVINO.CSharp.API/2025.4.0": {
    "OpenVINO.CSharp.API/2025.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-DQlkLc1Ypcuw7BELRwRMaFMu2owZjUCdJxRYLKIxqcD86E9/ypRzC5vZIq/25g2a874m/yi+CE4tjw/c8RDpgQ==",
      "path": "openvino.csharp.api/2025.4.0",
      "hashPath": "openvino.csharp.api.2025.4.0.nupkg.sha512"
      "sha512": "sha512-LzEz2CYrHpIQ8TExmA3vq5luuc6aqqUBgSmLMFZ08R/lMsBVcmRG1jgjj6n7prficFZhOEPqk7JGp2O39ZhWqw==",
      "path": "openvino.csharp.api/2025.3.0",
      "hashPath": "openvino.csharp.api.2025.3.0.nupkg.sha512"
    },
    "OpenVINO.CSharp.API.Extensions/1.0.7": {
      "type": "package",
@@ -1928,13 +1818,6 @@
      "sha512": "sha512-OsooAor56s0aA49FqVhxr8KGUkUUSrvHs28dFFpGe7nTeIKz3aEF06YCG8buk80IskiNyXu/uWaVV/+uKGvE8Q==",
      "path": "openvino.csharp.api.extensions.opencvsharp/1.0.7",
      "hashPath": "openvino.csharp.api.extensions.opencvsharp.1.0.7.nupkg.sha512"
    },
    "OpenVINO.runtime.win/2025.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-otr7T+jUrFmX1NCtdea0OcnWuFMRZ6zf3RQ9bkjwxf5xi0jgHYxsvHW/8SdzgxA7KY7d+BrvqUYHL+vkwWsYgA==",
      "path": "openvino.runtime.win/2025.4.0",
      "hashPath": "openvino.runtime.win.2025.4.0.nupkg.sha512"
    },
    "ReaLTaiizor/3.8.1.5": {
      "type": "package",
@@ -2195,12 +2078,12 @@
      "path": "sdcb.paddleocr.models.shared/2.7.0.1",
      "hashPath": "sdcb.paddleocr.models.shared.2.7.0.1.nupkg.sha512"
    },
    "SharpCompress/0.40.0": {
    "SharpCompress/0.47.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-yP/aFX1jqGikVF7u2f05VEaWN4aCaKNLxSas82UgA2GGVECxq/BcqZx3STHCJ78qilo1azEOk1XpBglIuGMb7w==",
      "path": "sharpcompress/0.40.0",
      "hashPath": "sharpcompress.0.40.0.nupkg.sha512"
      "sha512": "sha512-KPODbBWz4zRs413KAHgy7N43bXCsAJyrCJMTajRan3Gl4epukJQKQxZeK1FVq/VvRZ4Y1MLz4Jc5UYSokwEojQ==",
      "path": "sharpcompress/0.47.3",
      "hashPath": "sharpcompress.0.47.3.nupkg.sha512"
    },
    "SmartMore.ViMo.Inference/3.19.1.2": {
      "type": "package",
@@ -2495,13 +2378,6 @@
      "sha512": "sha512-SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==",
      "path": "yamldotnet/16.3.0",
      "hashPath": "yamldotnet.16.3.0.nupkg.sha512"
    },
    "ZstdSharp.Port/0.8.5": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-TR4j17WeVSEb3ncgL2NqlXEqcy04I+Kk9CaebNDplUeL8XOgjkZ7fP4Wg4grBdPLIqsV86p2QaXTkZoRMVOsew==",
      "path": "zstdsharp.port/0.8.5",
      "hashPath": "zstdsharp.port.0.8.5.nupkg.sha512"
    },
    "ZXing.Net/0.16.11": {
      "type": "package",
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.dll
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/LB_VisionProcesses.pdb
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/ref/LB_VisionProcesses.dll
Binary files differ
LB_VisionProcesses/obj/Debug/net8.0-windows7.0/refint/LB_VisionProcesses.dll
Binary files differ
LB_VisionProcesses/ref/CLAllSerial_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/CLProtocol_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/CLSerCOM.dll
Binary files differ
LB_VisionProcesses/ref/EasyID.dll
Binary files differ
LB_VisionProcesses/ref/EasyIDSDK_Net.XML
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1812 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>EasyIDSDK_Net</name>
    </assembly>
    <members>
        <member name="T:EasyIDSDK_Net.EidCamera">
            <summary>
            <para><ch>EidCamera</ch></para>
            <para><en>EidCamera</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorOK">
            <summary>
            <para><ch>成功</ch></para>
            <para><en>OK</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorUnknown">
            <summary>
            <para><ch>未知错误</ch></para>
            <para><en>Unknown error</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInternalError">
            <summary>
            <para><ch>内部错误</ch></para>
            <para><en>Internal error</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInvalidParameter">
            <summary>
            <para><ch>无效参数</ch></para>
            <para><en>Invalid parameter</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotConnected">
            <summary>
            <para><ch>相机未连接</ch></para>
            <para><en>Camera not connected</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotFound">
            <summary>
            <para><ch>未找到</ch></para>
            <para><en>Not found</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorTimeout">
            <summary>
            <para><ch>超时</ch></para>
            <para><en>Timeout</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNotImplemented">
            <summary>
            <para><ch>未实现</ch></para>
            <para><en>Not implemented</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorRepeatOperation">
            <summary>
            <para><ch>重复操作</ch></para>
            <para><en>Repeat operation</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorNullPtr">
            <summary>
            <para><ch>空指针</ch></para>
            <para><en>Null pointer</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorReadDataFail">
            <summary>
            <para><ch>读取数据失败</ch></para>
            <para><en>Failed to read data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorWriteDataFail">
            <summary>
            <para><ch>写入数据失败</ch></para>
            <para><en>Failed to write data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorDataCheckFail">
            <summary>
            <para><ch>数据校验失败</ch></para>
            <para><en>Data verification failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageSizeError">
            <summary>
            <para><ch>图像大小错误</ch></para>
            <para><en>Wrong image size</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageTypeError">
            <summary>
            <para><ch>图像类型错误</ch></para>
            <para><en>Wrong image type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorImageDataTypeError">
            <summary>
            <para><ch>图像数据类型错误</ch></para>
            <para><en>Wrong image data type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorSerializeFail">
            <summary>
            <para><ch>序列化失败</ch></para>
            <para><en>Serialization failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorDeserializeFail">
            <summary>
            <para><ch>反序列化失败</ch></para>
            <para><en>Deserialization failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorOpenFileFail">
            <summary>
            <para><ch>打开文件失败</ch></para>
            <para><en>Failed to open file</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorWriteFileFail">
            <summary>
            <para><ch>文件写入失败</ch></para>
            <para><en>File writing failed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInvalidHandle">
            <summary>
            <para><ch>无效句柄</ch></para>
            <para><en>Invalid handle</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.eidErrorInsufficientBuffer">
            <summary>
            <para><ch>缓冲区过小</ch></para>
            <para><en>Insufficient buffers</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.#ctor">
            <summary>
            <para><ch>构造函数</ch></para>
            <para><en>Constructor</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetVersion_Net">
            <summary>
            <para><ch>获取版本信息</ch></para>
            <para><en>Get version information</en></para>
            </summary>
            <returns><para><ch>版本信息</ch></para><para><en>Version infomation</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidEnumDevices_Net(EasyIDSDK_Net.EidCamera.EidDeviceList@,System.UInt32)">
            <summary>
            <para><ch>根据接口类型枚举相机, åŒæ—¶è¾“出所有相机信息到 deviceList</ch></para>
            <para><en>Enumerate devices according to the interface type, and outputting all devices information to the deviceList</en></para>
            </summary>
            <param name="deviceList"><para><ch>[out] è®¾å¤‡ä¿¡æ¯åˆ—表</ch></para><para><en>[out] Device information list</en></para></param>
            <param name="type"><para><ch>[in] æŽ¥å£ç±»åž‹, å¯ä»¥æ˜¯å¤šä¸ªæŽ¥å£ç±»åž‹çš„组合. è‹¥ä¼ å…¥å€¼ä¸º0表示所有类型, ä¸Ž eidInterfaceTypeAll å«ä¹‰ç›¸åŒ, å…¶ä½™å–值参考 #EidInterfaceType</ch></para>
            <para><en>[in] Interface type, which can be a combination of multiple interface types.If the value of the parameter is 0, it means all types, which is the same as eidInterfaceTypeAll. other value see #EidInterfaceType</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidCreateDevice_Net(System.String,EasyIDSDK_Net.EidCamera.EidDeviceDataType)">
            <summary>
            <para><ch>根据设备数据信息创建相应的设备对象, å¦‚可以通过设备序列号创建。</ch></para>
            <para><en>Create a device handle according to the device data, for example, you can create a device object through the serial number.
            This interface will not enumerate devices and needs to be called after #eidEnumDevices.</en></para>
            </summary>
            <param name="data"><para><ch>[in] è®¾å¤‡æ•°æ®, æ•°æ®å†…容的含义由 type å‚数决定</ch></para><para><en>[in] Device data, the meaning of the data content is determined by the type parameter</en></para></param>
            <param name="type"><para><ch>[in] æ•°æ®ç±»åž‹, é»˜è®¤å€¼æ˜¯è®¾å¤‡åºåˆ—号</ch></para><para><en>[in] Data type</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
            <remarks><para><ch>注意需要调用 #eidReleaseHandle_Net é‡Šæ”¾èµ„源。</ch></para><para><en>Note that need to call #eidReleaseHandle_Net to release resources.</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidReleaseHandle_Net">
            <summary>
            <para><ch>释放相机句柄资源</ch></para>
            <para><en>Release device handle resources</en></para>
            </summary>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetDeviceInfo_Net(EasyIDSDK_Net.EidCamera.EidDeviceInfo@)">
            <summary>
            <para><ch>获取设备信息</ch></para>
            <para><en>Get device infomation</en></para>
            </summary>
            <param name="info"><para><ch>[out] è®¾å¤‡ä¿¡æ¯</ch></para><para><en>[out] Pointer to a EidDeviceInfo structure to receive the device information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidOpenDevice_Net">
            <summary>
            <para><ch>打开设备</ch></para>
            <para><en>Open a device</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidCloseDevice_Net">
            <summary>
            <para><ch>关闭设备</ch></para>
            <para><en>Close a device</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsDeviceOpen_Net">
            <summary>
            <para><ch>设备是否已经打开</ch></para>
            <para><en>Gets a value indicating whether the media source is currently open. .</en></para>
            </summary>
            <returns><para><ch>如果设备处于打开状态,返回 true,否则,false</ch></para><para><en>True if the device is open; otherwise, false</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidForceIpAddress_Net(System.String,System.String,System.String)">
            <summary>
            <para><ch>修改相机IP. è¯¥æŽ¥å£åªé’ˆå¯¹é€šè¿‡ç½‘卡接入的设备,对于其余设备,调用此接口无意义</ch></para>
            <para><en>Modify the device IP. This interface is only for devices connected through a network card.
            For other devices, it is meaningless to call this interface.</en></para>
            </summary>
            <param name="ipAddr"><para><ch>[in] è®¾å¤‡IP地址</ch></para><para><en>[in] New IP address</en></para></param>
            <param name="subnetMask"><para><ch>[in] å­ç½‘掩码</ch></para><para><en>[in] New subnet mask</en></para></param>
            <param name="gateway"><para><ch>[in] é»˜è®¤ç½‘å…³</ch></para><para><en>[in] New default gateway</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidDownloadGenICamXML_Net(System.String)">
            <summary>
            <para><ch>下载设备描述XML文件,并保存到指定路径</ch></para>
            <para><en>Download device description XML file, and save the file to specified path</en></para>
            </summary>
            <param name="path"><para><ch>[in] æ–‡ä»¶ä¿å­˜è·¯å¾„</ch></para><para><en>[in] The file path where the downloaded XMl file would be saved to</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSaveDeviceConfig_Net(System.String)">
            <summary>
            <para><ch>保存设备配置到指定的路径</ch></para>
            <para><en>Save the configuration of the device to specified path</en></para>
            </summary>
            <param name="path"><para><ch>[in] æ–‡ä»¶ä¿å­˜è·¯å¾„</ch></para><para><en>[in] The file path where the downloaded XMl file would be saved to</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidLoadDeviceConfig_Net(System.String,EasyIDSDK_Net.EidCamera.EidErrorList@)">
            <summary>
            <para><ch>从文件加载设备配置</ch></para>
            <para><en>Load the device configuration from a file</en></para>
            </summary>
            <param name="path"><para><ch>[in] é…ç½®æ–‡ä»¶è·¯å¾„</ch></para><para><en>[in] Configuration file path</en></para></param>
            <param name="errorList"><para><ch>[out] é”™è¯¯åˆ—表指针, å†™å…¥å¤±è´¥çš„设备属性名称将通过该参数返回</ch></para><para><en>[out] Pointor to error list. The device feature names that failed to write will be returned with this parameter</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFeatureType_Net(System.String)">
            <summary>
            <para><ch>获取设备属性类型</ch></para>
            <para><en>Get device feature type</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>设备属性类型, è§ #EidFeatureType</ch></para><para><en>Device feature type, see enum #EidFeatureType</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureValid_Net(System.String)">
            <summary>
            <para><ch>设备属性是否有效</ch></para>
            <para><en>Is the device feature valid</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true æœ‰æ•ˆ,false æ— æ•ˆ</ch></para><para><en>true Valid,false Not valid</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureAvailable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可用</ch></para>
            <para><en>Is the device feature available</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯ç”¨,false ä¸å¯ç”¨</ch></para><para><en>true Available,false Not available</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureReadable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可读</ch></para>
            <para><en>Is the device feature readable</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯è¯»,false ä¸å¯è¯»</ch></para><para><en>true Readable,false Not readable</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFeatureWriteable_Net(System.String)">
            <summary>
            <para><ch>设备属性是否可写</ch></para>
            <para><en>Is the device feature writeable</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>true å¯å†™,false ä¸å¯å†™</ch></para><para><en>true Writeable,false Not writeable</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetIntFeatureValue_Net(System.String,System.Int64@)">
            <summary>
            <para><ch>获取整型属性值</ch></para>
            <para><en>Get integer feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetIntFeatureValue_Net(System.String,System.Int64)">
            <summary>
            <para><ch>设置整型属性值</ch></para>
            <para><en>Set integer feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetIntFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidIntFeatureInfo@)">
            <summary>
            <para><ch>获取整型属性信息</ch></para>
            <para><en>Gets integer feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFloatFeatureValue_Net(System.String,System.Double@)">
            <summary>
            <para><ch>获取浮点型属性值</ch></para>
            <para><en>Get float feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetFloatFeatureValue_Net(System.String,System.Double)">
            <summary>
            <para><ch>设置浮点型属性值</ch></para>
            <para><en>Set float feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFloatFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo@)">
            <summary>
            <para><ch>获取浮点型属性信息</ch></para>
            <para><en>Gets float feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetBoolFeatureValue_Net(System.String,System.Boolean@)">
            <summary>
            <para><ch>获取布尔型属性值</ch></para>
            <para><en>Get bool feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetBoolFeatureValue_Net(System.String,System.Boolean)">
            <summary>
            <para><ch>设置布尔型属性值</ch></para>
            <para><en>Set bool feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetStringFeatureValue_Net(System.String,System.Byte@,System.UInt32@)">
            <summary>
            <para><ch>获取字符串型属性值</ch></para>
            <para><en>Get string feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼å­—符串缓冲区, ç”¨æˆ·åˆ†é…å†…存空间</ch></para><para><en>[out] Pointer to string feature value buffer that is allocated memory space by the user</en></para></param>
            <param name="size"><para><ch>[in,out] å±žæ€§å€¼å­—符串缓冲区长度.</ch></para><para><en>[in,out] The length of the string buffer.</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
            <remarks><para><ch>当函数返回时, å¦‚果缓冲区足够大, æ‰€æœ‰çš„æ•°æ®éƒ½ä¼šæ‹·è´åˆ° value ç¼“冲区, å¹¶ä¸”此参数的值是实际字符串的长度(不包含null结束符);
            å¦‚果缓冲区不够大, ç¼“冲区的数据是截断后的字符串内容, å¹¶ä¸”此参数包含字符串的实际长度(不包含null结束符)</ch></para><para><en>When the function returns, if the buffer is large enough,
            all data is copied to the value buffer, and the value of this parameter is the length of the actual string (without the null terminator);
            If the buffer is not large enough, the buffer's data is the truncated string content,
            and this parameter contains the actual length of the string (without the null terminator)</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetStringFeatureValue_Net(System.String,System.Byte@)">
            <summary>
            <para><ch>设置字符串型属性值</ch></para>
            <para><en>Set string feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetStringFeatureInfo_Net(System.String,EasyIDSDK_Net.EidCamera.EidStringFeatureInfo@)">
            <summary>
            <para><ch>获取字符串型属性信息</ch></para>
            <para><en>Gets string feature information</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="info"><para><ch>[out] å±žæ€§ä¿¡æ¯</ch></para><para><en>[out] A pointer to a buffer that receives the feature information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureValue_Net(System.String,System.UInt64@)">
            <summary>
            <para><ch>获取枚举型属性值</ch></para>
            <para><en>Get enum feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§å€¼</ch></para><para><en>[out] Pointer to feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetEnumFeatureValue_Net(System.String,System.UInt64)">
            <summary>
            <para><ch>设置枚举型属性值</ch></para>
            <para><en>Set enum feature value</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§å€¼</ch></para><para><en>[in] Feature value</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureSymbol_Net(System.String,System.Byte@,System.UInt32)">
            <summary>
            <para><ch>获取枚举型属性符号</ch></para>
            <para><en>Get enum feature symbol</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[out] å±žæ€§ç¬¦å·</ch></para><para><en>[out] Pointer to enum feature symbol buffer</en></para></param>
            <param name="size"><para><ch>[in] å±žæ€§ç¬¦å·ç¼“冲长度</ch></para><para><en>[in] The length of symbol buffer</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidSetEnumFeatureSymbol_Net(System.String,System.String)">
            <summary>
            <para><ch>设置枚举型属性符号</ch></para>
            <para><en>Set enum feature symbol</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="value"><para><ch>[in] å±žæ€§ç¬¦å·</ch></para><para><en>[in] Feature symbol</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetEnumFeatureEntryList_Net(System.String,EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList@)">
            <summary>
            <para><ch>获取枚举型属性条目列表</ch></para>
            <para><en>Get enum feature entry list</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="entryList"><para><ch>[out] æžšä¸¾æ¡ç›®åˆ—表</ch></para><para><en>[out] Pointer to a EidEnumFeatureEntryList structure to receive the enum entry list</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidExecCommandFeature_Net(System.String)">
            <summary>
            <para><ch>执行命令行属性</ch></para>
            <para><en>Execute command feature</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidEnumFeatureChildren_Net(System.String,EasyIDSDK_Net.EidCamera.EidEnumFeatureChildrenCallback,System.IntPtr)">
            <summary>
            <para><ch>枚举子属性</ch></para>
            <para><en>Enum Feature Children</en></para>
            </summary>
            <param name="name"><para><ch>[in] å±žæ€§åç§°</ch></para><para><en>[in] Feature name</en></para></param>
            <param name="fn"><para><ch>[in] å›žè°ƒå‡½æ•°, æ¯ä¸ªå­å±žæ€§éƒ½å°†ä¼šè§¦å‘一次该函数的调用</ch></para><para><en>[in] callback function, each child feature will invoke this method</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] user data for callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidStartGrabbing_Net(System.Int32)">
            <summary>
            <para><ch>开始取流</ch></para>
            <para><en>Start grabbing, then you can get the camera frame through #eidGetFrame</en></para>
            </summary>
            <param name="bufferCount"><para><ch>[in] å¸§ç¼“存数量, 0表示使用默认缓存数, >0使用设置的缓存数</ch></para><para><en>[in] The number of frame buffers, 0 means to use the default number of buffers, >0 to use the set number of buffers</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidStopGrabbing_Net">
            <summary>
            <para><ch>停止取流</ch></para>
            <para><en>Stop grabbing</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsGrabbing_Net">
            <summary>
            <para><ch>是否正在取流</ch></para>
            <para><en>Check whether it is grabbing or not</en></para>
            </summary>
            <returns><para><ch>如果正在取流, è¿”回true; å¦åˆ™è¿”回false</ch></para><para><en>Returns true if it is grabbing; otherwise returns false</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidClearFrameBuffer_Net">
            <summary>
            <para><ch>清除帧数据缓存</ch></para>
            <para><en>clear frame buffer cache</en></para>
            </summary>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFrame_Net(System.UInt32)">
            <summary>
            <para><ch>获取一帧图像, è‹¥ç›¸æœºå¼€å¯äº†è¯»ç åŠŸèƒ½, å¸§æ•°æ®ä¸­åŒæ—¶æºå¸¦æ¡ç ä¿¡æ¯.</ch></para>
            <para><en>Get a frame. If the code reading function is enabled, the frame data also carries the barcode information.</en></para>
            </summary>
            <param name="timeout"><para><ch>[in] è¶…æ—¶æ—¶é—´, å•位: æ¯«ç§’. å½“值为-1时表示无限等待</ch></para><para><en>[in] Timeout, in ms, when the value is -1, it means infinite wait</en></para></param>
            <returns><para><ch>帧数据句柄, å¤±è´¥è¿”回 nullptr</ch></para><para><en>Frame handle, failure returns nullptr</en></para></returns>
            <remarks><para><ch>该接口将导致线程阻塞, ç›´åˆ°æ”¶åˆ°å›¾åƒæˆ–者到达超时时间. è¿”回的句柄需要通过 #eidReleaseFrame_Net è¿›è¡Œé‡Šæ”¾</ch></para><para><en>This method will block the thread until the timeout is reached.
             The returned handle needs to be released through #eidReleaseFrame_Net</en></para></remarks>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidReleaseFrame_Net(System.IntPtr@)">
            <summary>
            <para><ch>释放一帧图像</ch></para>
            <para><en>Release a frame</en></para>
            </summary>
            <param name="frame"><para><ch>帧数据句柄</ch></para><para><en>Frame handle</en></para></param>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidIsFrameValid_Net(System.IntPtr)">
            <summary>
            <para><ch>帧句柄是否有效</ch></para>
            <para><en>Is the frame handle valid</en></para>
            </summary>
            <param name="frame"><para><ch>[in] å¸§å¥æŸ„</ch></para><para><en>[in] Frame handle</en></para></param>
            <returns><para><ch>true æœ‰æ•ˆ,false æ— æ•ˆ</ch></para><para><en>true Valid,false Not valid</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidGetFrameInfo_Net(System.IntPtr,EasyIDSDK_Net.EidCamera.EidFrameInfo@)">
            <summary>
            <para><ch>获取帧信息. å¸§ä¿¡æ¯é‡ŒåŒæ—¶åŒ…含图像数据和条码数据</ch></para>
            <para><en>Get frame information. The frame information contains both image data and barcode data</en></para>
            </summary>
            <param name="frame"><para><ch>[in] å¸§å¥æŸ„</ch></para><para><en>[in] Frame handle</en></para></param>
            <param name="info"><para><ch>[out] å¸§ä¿¡æ¯</ch></para><para><en>[out] Frame information</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterFrameCallback_Net(EasyIDSDK_Net.EidCamera.EidFrameCallback,System.IntPtr)">
            <summary>
            <para><ch>注册帧数据回调</ch></para>
            <para><en>Register frame data callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] å¸§æ•°æ®å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to frame data callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterConnectionCallback_Net(EasyIDSDK_Net.EidCamera.EidConnectionCallback,System.IntPtr)">
            <summary>
            <para><ch>注册设备连接信息回调</ch></para>
            <para><en>Register device connection information callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] è¿žæŽ¥ä¿¡æ¯å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to device connection information callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="M:EasyIDSDK_Net.EidCamera.eidRegisterFeatureUpdateCallback_Net(EasyIDSDK_Net.EidCamera.EidFeatureUpdateCallback,System.IntPtr)">
            <summary>
            <para><ch>注册设备属性更新回调</ch></para>
            <para><en>Register device feature update callback</en></para>
            </summary>
            <param name="cb"><para><ch>[in] å±žæ€§æ›´æ–°å›žè°ƒå‡½æ•°</ch></para><para><en>[in] A pointer to device feature update callback function</en></para></param>
            <param name="userData"><para><ch>[in] ç”¨æˆ·æ•°æ®</ch></para><para><en>[in] User data to be passed to callback function</en></para></param>
            <returns><para><ch>错误码, 0-成功, å…¶ä»–-错误码</ch></para><para><en>Error code, 0-success, other-error code</en></para></returns>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFeatureType">
            <summary>
            <para><ch>属性类型</ch></para>
            <para><en>Feature type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeUnknown">
            <summary>
            <para><ch>未定义</ch></para>
            <para><en>Undefined</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeInt">
            <summary>
            <para><ch>整型数</ch></para>
            <para><en>Integer</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeFloat">
            <summary>
            <para><ch>浮点数</ch></para>
            <para><en>Float</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeEnum">
            <summary>
            <para><ch>枚举</ch></para>
            <para><en>Enumeration</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeBool">
            <summary>
            <para><ch>布尔</ch></para>
            <para><en>Bool</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeString">
            <summary>
            <para><ch>字符串</ch></para>
            <para><en>String</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeCommand">
            <summary>
            <para><ch>命令</ch></para>
            <para><en>Command</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFeatureType.eidFeatureTypeGroup">
            <summary>
            <para><ch>分组</ch></para>
            <para><en>Group</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidInterfaceType">
            <summary>
            <para><ch>接口类型</ch></para>
            <para><en>Interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeUnknown">
            <summary>
            <para><ch>未知接口类型</ch></para>
            <para><en>Unknown interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeGige">
            <summary>
            <para><ch>网卡接口类型</ch></para>
            <para><en>NIC type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeUsb">
            <summary>
            <para><ch>USB接口类型</ch></para>
            <para><en>USB interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidInterfaceType.eidInterfaceTypeAll">
            <summary>
            <para><ch>所有接口类型</ch></para>
            <para><en>All interface type</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceType">
            <summary>
            <para><ch>设备类型</ch></para>
            <para><en>Device type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeUnknown">
            <summary>
            <para><ch>未知类型</ch></para>
            <para><en>Unknown type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeGige">
            <summary>
            <para><ch>GIGE相机</ch></para>
            <para><en>GigE Camera</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceType.eidDeviceTypeUSB">
            <summary>
            <para><ch>USB相机</ch></para>
            <para><en>USB Camera</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceDataType">
            <summary>
            <para><ch>设备数据类型, ç”¨äºŽ #eidCreateDevice å‡½æ•°</ch></para>
            <para><en>Device data type, used in the #eidCreateDevice function</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeID">
            <summary>
            <para><ch>设备ID</ch></para>
            <para><en>Device ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeSN">
            <summary>
            <para><ch>序列号</ch></para>
            <para><en>Serial number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeIP">
            <summary>
            <para><ch>IP地址</ch></para>
            <para><en>IP address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceDataType.eidDeviceDataTypeMAC">
            <summary>
            <para><ch>MAC地址</ch></para>
            <para><en>MAC address</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidPixelFormat">
            <summary>
            <para><ch>图像像素格式</ch></para>
            <para><en>Image pixel format</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelUnknwon">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono1p">
            <summary>
            <para><ch>Mono1p</ch></para>
            <para><en>Mono1p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono2p">
            <summary>
            <para><ch>Mono2p</ch></para>
            <para><en>Mono2p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono4p">
            <summary>
            <para><ch>Mono4p</ch></para>
            <para><en>Mono4p</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono8">
            <summary>
            <para><ch>Mono8</ch></para>
            <para><en>Mono8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono8S">
            <summary>
            <para><ch>Mono8S</ch></para>
            <para><en>Mono8S</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono10">
            <summary>
            <para><ch>Mono10</ch></para>
            <para><en>Mono10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono10Packed">
            <summary>
            <para><ch>Mono10Packed</ch></para>
            <para><en>Mono10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono12">
            <summary>
            <para><ch>Mono12</ch></para>
            <para><en>Mono12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono12Packed">
            <summary>
            <para><ch>Mono12Packed</ch></para>
            <para><en>Mono12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono14">
            <summary>
            <para><ch>Mono14</ch></para>
            <para><en>Mono14</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelMono16">
            <summary>
            <para><ch>Mono16</ch></para>
            <para><en>Mono16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR8">
            <summary>
            <para><ch>BayGR8</ch></para>
            <para><en>BayGR8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG8">
            <summary>
            <para><ch>BayRG8</ch></para>
            <para><en>BayRG8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB8">
            <summary>
            <para><ch>BayGB8</ch></para>
            <para><en>BayGB8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG8">
            <summary>
            <para><ch>BayBG8</ch></para>
            <para><en>BayBG8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR10">
            <summary>
            <para><ch>BayGR10</ch></para>
            <para><en>BayGR10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG10">
            <summary>
            <para><ch>BayRG10</ch></para>
            <para><en>BayRG10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB10">
            <summary>
            <para><ch>BayGB10</ch></para>
            <para><en>BayGB10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG10">
            <summary>
            <para><ch>BayBG10</ch></para>
            <para><en>BayBG10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR12">
            <summary>
            <para><ch>BayGR12</ch></para>
            <para><en>BayGR12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG12">
            <summary>
            <para><ch>BayRG12</ch></para>
            <para><en>BayRG12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB12">
            <summary>
            <para><ch>BayGB12</ch></para>
            <para><en>BayGB12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG12">
            <summary>
            <para><ch>BayBG12</ch></para>
            <para><en>BayBG12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR10Packed">
            <summary>
            <para><ch>BayGR10Packed</ch></para>
            <para><en>BayGR10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG10Packed">
            <summary>
            <para><ch>BayRG10Packed</ch></para>
            <para><en>BayRG10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB10Packed">
            <summary>
            <para><ch>BayGB10Packed</ch></para>
            <para><en>BayGB10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG10Packed">
            <summary>
            <para><ch>BayBG10Packed</ch></para>
            <para><en>BayBG10Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR12Packed">
            <summary>
            <para><ch>BayGR12Packed</ch></para>
            <para><en>BayGR12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG12Packed">
            <summary>
            <para><ch>BayRG12Packed</ch></para>
            <para><en>BayRG12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB12Packed">
            <summary>
            <para><ch>BayGB12Packed</ch></para>
            <para><en>BayGB12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG12Packed">
            <summary>
            <para><ch>BayBG12Packed</ch></para>
            <para><en>BayBG12Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGR16">
            <summary>
            <para><ch>BayGR16</ch></para>
            <para><en>BayGR16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayRG16">
            <summary>
            <para><ch>BayRG16</ch></para>
            <para><en>BayRG16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayGB16">
            <summary>
            <para><ch>BayGB16</ch></para>
            <para><en>BayGB16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBayBG16">
            <summary>
            <para><ch>BayBG16</ch></para>
            <para><en>BayBG16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB8">
            <summary>
            <para><ch>RGB8</ch></para>
            <para><en>RGB8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR8">
            <summary>
            <para><ch>BGR8</ch></para>
            <para><en>BGR8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGBA8">
            <summary>
            <para><ch>RGBA8</ch></para>
            <para><en>RGBA8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGRA8">
            <summary>
            <para><ch>BGRA8</ch></para>
            <para><en>BGRA8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10">
            <summary>
            <para><ch>RGB10</ch></para>
            <para><en>RGB10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR10">
            <summary>
            <para><ch>BGR10</ch></para>
            <para><en>BGR10</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12">
            <summary>
            <para><ch>RGB12</ch></para>
            <para><en>RGB12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR12">
            <summary>
            <para><ch>BGR12</ch></para>
            <para><en>BGR12</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB16">
            <summary>
            <para><ch>RGB16</ch></para>
            <para><en>RGB16</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10V1Packed">
            <summary>
            <para><ch>RGB10V1Packed</ch></para>
            <para><en>RGB10V1Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10P32">
            <summary>
            <para><ch>RGB10P32</ch></para>
            <para><en>RGB10P32</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12V1Packed">
            <summary>
            <para><ch>RGB12V1Packed</ch></para>
            <para><en>RGB12V1Packed</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB565P">
            <summary>
            <para><ch>RGB565P</ch></para>
            <para><en>RGB565P</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelBGR565P">
            <summary>
            <para><ch>BGR565P</ch></para>
            <para><en>BGR565P</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV411_8_UYYVYY">
            <summary>
            <para><ch>YUV411_8_UYYVYY</ch></para>
            <para><en>YUV411_8_UYYVYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV422_8_UYVY">
            <summary>
            <para><ch>YUV422_8_UYVY</ch></para>
            <para><en>YUV422_8_UYVY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV422_8">
            <summary>
            <para><ch>YUV422_8 </ch></para>
            <para><en>YUV422_8 </en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYUV8_UYV">
            <summary>
            <para><ch>YUV8_UYV</ch></para>
            <para><en>YUV8_UYV</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr8CbYCr">
            <summary>
            <para><ch>YCbCr8CbYCr</ch></para>
            <para><en>YCbCr8CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr422_8">
            <summary>
            <para><ch>YCbCr422_8</ch></para>
            <para><en>YCbCr422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr422_8_CbYCrY</ch></para>
            <para><en>YCbCr422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_8_CbYCr">
            <summary>
            <para><ch>YCbCr601_8_CbYCr</ch></para>
            <para><en>YCbCr601_8_CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_422_8">
            <summary>
            <para><ch>YCbCr601_422_8</ch></para>
            <para><en>YCbCr601_422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr601_422_8_CbYCrY</ch></para>
            <para><en>YCbCr601_422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr601_411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr601_411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr601_411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_8_CbYCr">
            <summary>
            <para><ch>YCbCr709_8_CbYCr</ch></para>
            <para><en>YCbCr709_8_CbYCr</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_422_8">
            <summary>
            <para><ch>YCbCr709_422_8</ch></para>
            <para><en>YCbCr709_422_8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_422_8_CbYCrY">
            <summary>
            <para><ch>YCbCr709_422_8_CbYCrY</ch></para>
            <para><en>YCbCr709_422_8_CbYCrY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelYCbCr709_411_8_CbYYCrYY">
            <summary>
            <para><ch>YCbCr709_411_8_CbYYCrYY</ch></para>
            <para><en>YCbCr709_411_8_CbYYCrYY</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB8Planar">
            <summary>
            <para><ch>RGB8Planar</ch></para>
            <para><en>RGB8Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB10Planar">
            <summary>
            <para><ch>RGB10Planar</ch></para>
            <para><en>RGB10Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB12Planar">
            <summary>
            <para><ch>RGB12Planar</ch></para>
            <para><en>RGB12Planar</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPixelFormat.eidPixelRGB16Planar">
            <summary>
            <para><ch>RGB16Planar</ch></para>
            <para><en>RGB16Planar</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidReadState">
            <summary>
            <para><ch>读码状态</ch></para>
            <para><en>Code reading state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateUnknown">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateNA">
            <summary>
            <para><ch>无效</ch></para>
            <para><en>Not available</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateComplete">
            <summary>
            <para><ch>全部</ch></para>
            <para><en>Complete</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateNoRead">
            <summary>
            <para><ch>无条码</ch></para>
            <para><en>No code was read</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePartial">
            <summary>
            <para><ch>部分</ch></para>
            <para><en>Partial</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStateFail">
            <summary>
            <para><ch>失败</ch></para>
            <para><en>Fail</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseNA">
            <summary>
            <para><ch>无效(Phase模式)</ch></para>
            <para><en>Not available(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseComplete">
            <summary>
            <para><ch>全部(Phase模式)</ch></para>
            <para><en>Complete(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseNoRead">
            <summary>
            <para><ch>无条码(Phase模式)</ch></para>
            <para><en>No code was read(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhasePartial">
            <summary>
            <para><ch>部分(Phase模式)</ch></para>
            <para><en>Partial(Phase mode)</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidReadState.eidReadStatePhaseFail">
            <summary>
            <para><ch>失败(Phase模式)</ch></para>
            <para><en>Fail(Phase mode)</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidBarcodeType">
            <summary>
            <para><ch>码类型</ch></para>
            <para><en>Barcode type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUnknown">
            <summary>
            <para><ch>未知</ch></para>
            <para><en>Unknown</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeEAN8">
            <summary>
            <para><ch>EAN8</ch></para>
            <para><en>EAN8</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeEAN13">
            <summary>
            <para><ch>EAN13</ch></para>
            <para><en>EAN13 type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode39">
            <summary>
            <para><ch>Code39</ch></para>
            <para><en>Code39</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode93">
            <summary>
            <para><ch>Code93</ch></para>
            <para><en>Code93</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCode128">
            <summary>
            <para><ch>Code128</ch></para>
            <para><en>Code128</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUPCA">
            <summary>
            <para><ch>UPCA</ch></para>
            <para><en>UPCA</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeUPCE">
            <summary>
            <para><ch>UPCE</ch></para>
            <para><en>UPCE</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeITF25">
            <summary>
            <para><ch>ITF25</ch></para>
            <para><en>ITF25</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODABAR">
            <summary>
            <para><ch>CODABAR</ch></para>
            <para><en>CODABAR</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128A">
            <summary>
            <para><ch>CODE128A</ch></para>
            <para><en>CODE128A</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128B">
            <summary>
            <para><ch>CODE128B</ch></para>
            <para><en>CODE128B</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeCODE128C">
            <summary>
            <para><ch>CODE128C</ch></para>
            <para><en>CODE128C</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeQR">
            <summary>
            <para><ch>QR</ch></para>
            <para><en>QR</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeDM">
            <summary>
            <para><ch>DM</ch></para>
            <para><en>DM</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypePDF417">
            <summary>
            <para><ch>PDF417</ch></para>
            <para><en>PDF417</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidBarcodeType.eidCodeTypeVERICODE">
            <summary>
            <para><ch>VERICODE</ch></para>
            <para><en>VERICODE</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionState">
            <summary>
            <para><ch>连接事件类型</ch></para>
            <para><en>Connect event type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionState.eidConnStateOffline">
            <summary>
            <para><ch>离线</ch></para>
            <para><en>Offline</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionState.eidConnStateOnline">
            <summary>
            <para><ch>在线</ch></para>
            <para><en>Online</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo">
            <summary>
            <para><ch>GigE设备信息</ch></para>
            <para><en>GigE device info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.macAddress">
            <summary>
            <para><ch>设备Mac地址</ch></para>
            <para><en>Device MAC Address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.ipAddress">
            <summary>
            <para><ch>设备Ip地址</ch></para>
            <para><en>Device ip Address</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.subnetMask">
            <summary>
            <para><ch>子网掩码</ch></para>
            <para><en>SubnetMask</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.defaultGateWay">
            <summary>
            <para><ch>默认网关</ch></para>
            <para><en>Default GateWay</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.isIpValid">
            <summary>
            <para><ch>Ip是否有效</ch></para>
            <para><en>Ip valid</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidGigeDeviceInfo.chReserved">
            <summary>
            <para><ch>保留</ch></para>
            <para><en>Reserved field</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceInfo">
            <summary>
            <para><ch>设备信息</ch></para>
            <para><en>Device info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceType">
            <summary>
            <para><ch>设备类别</ch></para>
            <para><en>Device type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.interfaceType">
            <summary>
            <para><ch>接口类别</ch></para>
            <para><en>Interface type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceID">
            <summary>
            <para><ch>设备ID</ch></para>
            <para><en>Device ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.cameraName">
            <summary>
            <para><ch>用户自定义名</ch></para>
            <para><en>User defined name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.serialNumber">
            <summary>
            <para><ch>设备序列号</ch></para>
            <para><en>Device serial number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.vendorName">
            <summary>
            <para><ch>厂商</ch></para>
            <para><en>Device vendor</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.modelName">
            <summary>
            <para><ch>设备型号</ch></para>
            <para><en>Device model</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.manufactureInfo">
            <summary>
            <para><ch>设备制造信息</ch></para>
            <para><en>Device manufacture</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.deviceVersion">
            <summary>
            <para><ch>设备版本</ch></para>
            <para><en>Device version</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.interfaceName">
            <summary>
            <para><ch>接口名</ch></para>
            <para><en>Interface name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reseved</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.stSpecialInfo">
            <summary>
            <para><ch>具体设备信息</ch></para>
            <para><en>special device Info</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceInfo.SPECIAL_INFO">
            <summary>
            <para><ch>具体设备信息</ch></para>
            <para><en>special device Info</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceInfo.SPECIAL_INFO.gigeDeviceInfo">
            <summary>
            <para><ch>Gige设备信息</ch></para>
            <para><en>Gige device info</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidDeviceList">
            <summary>
            <para><ch>设备信息列表</ch></para>
            <para><en>Device information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.num">
            <summary>
            <para><ch>设备数量</ch></para>
            <para><en>Device Number</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.infos">
            <summary>
            <para><ch>设备信息列表</ch></para>
            <para><en>Device information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidDeviceList.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidErrorList">
            <summary>
            <para><ch>错误列表</ch></para>
            <para><en>Error list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.num">
            <summary>
            <para><ch>失败的属性数量</ch></para>
            <para><en>Number of failed features</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.names">
            <summary>
            <para><ch>失败属性名列表</ch></para>
            <para><en>Error feature name list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidErrorList.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo">
            <summary>
            <para><ch>整型属性信息</ch></para>
            <para><en>int feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.current">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.min">
            <summary>
            <para><ch>最小值</ch></para>
            <para><en>Minimum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.max">
            <summary>
            <para><ch>最大值</ch></para>
            <para><en>Maximum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.inc">
            <summary>
            <para><ch>增量</ch></para>
            <para><en>Increment</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidIntFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo">
            <summary>
            <para><ch>浮点型属性信息</ch></para>
            <para><en>float feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.current">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.min">
            <summary>
            <para><ch>最小值</ch></para>
            <para><en>Minimum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.max">
            <summary>
            <para><ch>最大值</ch></para>
            <para><en>Maximum value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.unit">
            <summary>
            <para><ch>单位</ch></para>
            <para><en>Unit</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFloatFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo">
            <summary>
            <para><ch>字符串型属性信息</ch></para>
            <para><en>String feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.maxLen">
            <summary>
            <para><ch>最大长度</ch></para>
            <para><en>The maximum length of the String</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.value">
            <summary>
            <para><ch>当前值</ch></para>
            <para><en>Current value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidStringFeatureInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry">
            <summary>
            <para><ch>枚举型属性条目</ch></para>
            <para><en>enum feature entry</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry.value">
            <summary>
            <para><ch>值</ch></para>
            <para><en>Value</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntry.name">
            <summary>
            <para><ch>名称</ch></para>
            <para><en>Current Name</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList">
            <summary>
            <para><ch>枚举型属性信息</ch></para>
            <para><en>enum feature information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList.num">
            <summary>
            <para><ch>数量</ch></para>
            <para><en>count</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidEnumFeatureEntryList.entryList">
            <summary>
            <para><ch>条目列表</ch></para>
            <para><en>Entry list</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidPoint">
            <summary>
            <para><ch>二维坐标点</ch></para>
            <para><en>2D coordinate point</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPoint.x">
            <summary>
            <para><ch>x坐标</ch></para>
            <para><en>x-coordinate</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidPoint.y">
            <summary>
            <para><ch>y坐标</ch></para>
            <para><en>y-coordinate</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidCodeInfo">
            <summary>
            <para><ch>条码信息</ch></para>
            <para><en>Barcode information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.type">
            <summary>
            <para><ch>类型</ch></para>
            <para><en>Code type</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.ppm">
            <summary>
            <para><ch>PPM</ch></para>
            <para><en>PPM</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.position">
            <summary>
            <para><ch>位置, 4个点</ch></para>
            <para><en>Position, 4 points</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.data">
            <summary>
            <para><ch>内容</ch></para>
            <para><en>Code content</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.typeName">
            <summary>
            <para><ch>类型名称</ch></para>
            <para><en>Code type name</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidCodeInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFrameInfo">
            <summary>
            <para><ch>帧信息</ch></para>
            <para><en>Frame information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.id">
            <summary>
            <para><ch>帧ID</ch></para>
            <para><en>Frame block ID</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.timestamp">
            <summary>
            <para><ch>时间戳</ch></para>
            <para><en>Timestamp</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.width">
            <summary>
            <para><ch>图像宽度</ch></para>
            <para><en>Image width</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.height">
            <summary>
            <para><ch>图像高度</ch></para>
            <para><en>Image height</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.format">
            <summary>
            <para><ch>像素格式</ch></para>
            <para><en>Pixel format</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.readState">
            <summary>
            <para><ch>读码状态</ch></para>
            <para><en>Code reading state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.codeNum">
            <summary>
            <para><ch>条码数量</ch></para>
            <para><en>Number of barcodes</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.imageDataLen">
            <summary>
            <para><ch>图像数据长度</ch></para>
            <para><en>Length of image data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.imageData">
            <summary>
            <para><ch>图像数据</ch></para>
            <para><en>Image data</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.codeList">
            <summary>
            <para><ch>条码信息列</ch></para>
            <para><en>Barcode information list</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.isJpeg">
            <summary>
            <para><ch>是否jpeg图</ch></para>
            <para><en>Is jpeg image</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidFrameInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionInfo">
            <summary>
            <para><ch>连接信息</ch></para>
            <para><en>Connetion information</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionInfo.state">
            <summary>
            <para><ch>连接状态</ch></para>
            <para><en>Connetion state</en></para>
            </summary>
        </member>
        <member name="F:EasyIDSDK_Net.EidCamera.EidConnectionInfo.reserved">
            <summary>
            <para><ch>预留位</ch></para>
            <para><en>Reserved</en></para>
            </summary>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFrameCallback">
            <summary>
            <para><ch>帧数据回调函数</ch></para>
            <para><en>Frame data callback function</en></para>
            </summary>
            <param name="frameInfo"><para><ch>帧信息</ch></para><para><en>frameInfo Frame info</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidConnectionCallback">
            <summary>
            <para><ch>设备连接信息回调函数</ch></para>
            <para><en>Device connection information callback function</en></para>
            </summary>
            <param name="frameInfo"><para><ch>连接信息</ch></para><para><en>info Connection infomation</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidFeatureUpdateCallback">
            <summary>
            <para><ch>设备属性更新回调函数</ch></para>
            <para><en>Device feature update callback function</en></para>
            </summary>
            <param name="name"><para><ch>属性名称</ch></para><para><en>name Device feature name</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
        <member name="T:EasyIDSDK_Net.EidCamera.EidEnumFeatureChildrenCallback">
            <summary>
            <para><ch>枚举子属性的回调函数, åœ¨ eidEnumFeatureChildren å‡½æ•°ä¸­ä½¿ç”¨, æ¯æ¬¡æŽ¥æ”¶ä¸€ä¸ªå­å±žæ€§çš„名称</ch></para>
            <para><en>Callback function used with the eidEnumFeatureChildren function. It receives children feature names</en></para>
            </summary>
            <param name="name"><para><ch>子属性名称</ch></para><para><en>name child feature name</en></para></param>
            <param name="userData"><para><ch>用户数据</ch></para><para><en>userData User data</en></para></param>
        </member>
    </members>
</doc>
LB_VisionProcesses/ref/EasyIDSDK_Net.dll
Binary files differ
LB_VisionProcesses/ref/GCBase_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/GenApi_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/GenCP_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/ImageConvert.dll
Binary files differ
LB_VisionProcesses/ref/ImageSave.dll
Binary files differ
LB_VisionProcesses/ref/Log_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/MVlog4cppmd.dll
Binary files differ
LB_VisionProcesses/ref/MathParser_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/NodeMapData_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/SDKLOG_default.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
# =======================
#  root Setting
# =======================
log4cpp.rootCategory = INFO
# =======================
#  SDK Log Setting
# =======================
log4cpp.category.mvsdk = INFO, a_mvsdk
log4cpp.appender.a_mvsdk = DailyRollingFileAppender
log4cpp.appender.a_mvsdk.fileName = MVSDK.log
log4cpp.appender.a_mvsdk.layout = org.apache.log4cpp.PatternLayout
log4cpp.appender.a_mvsdk.layout.ConversionPattern = %d{%Y-%m-%d %H:%M:%S.%l} %p [tid:%t]%m%n
log4cpp.appender.a_mvsdk.maxDaysKeep = 5
LB_VisionProcesses/ref/SharpnessDetection64.dll
Binary files differ
LB_VisionProcesses/ref/VideoRender.dll
Binary files differ
LB_VisionProcesses/ref/XmlParser_MD_VC120_v3_0.dll
Binary files differ
LB_VisionProcesses/ref/clserVsp.dll
Binary files differ
LB_VisionProcesses/ref/iImageProcessing64.dll
Binary files differ
LB_VisionProcesses/ref/libwinpthread-1.dll
Binary files differ
LB_VisionProcesses/ref/log4cpp_MD_VC120_v3_0.dll
Binary files differ