C3032
2026-03-18 32304b0a0a2e4af174c0feea96d2387bb75a2556
新增:读码器功能模块,集成华睿读码器并初步实现读码功能
已修改7个文件
已添加31个文件
3109 ■■■■■ 文件已修改
LB_SmartVision/Forms/Pages/ProcessPage/ProcessPage.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/GlobalVar.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/LB_SmartVision.csproj 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/ProcessRun/ProcessContext.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionFlowNode/IFlowContext.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderBase.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderFactory.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.Designer.cs 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.cs 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/BarcodeReaderForm.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/Huayray/HRBarcodeReader.cs 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/BarcodeReaders/IBarcodeReader.cs 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/LB_VisionProcesses.csproj 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_VisionProcesses/Processes/BarcodeReaderProcess.cs 150 ●●●●● 补丁 | 查看 | 原始文档 | 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/MVSDKmd.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/Forms/Pages/ProcessPage/ProcessPage.cs
@@ -333,6 +333,16 @@
                        LogInfo?.Invoke(string.Format("流程[{0}]步骤\"{1}\"加载失败了", this.Text, ProcessName), LogInfoType.ERROR);
                    process.strProcessName = ProcessName;
                }
                else if (process is LB_VisionProcesses.Processes.BarcodeReaderProcess)
                {
                    LB_VisionProcesses.BarcodeReaders.BarcodeReaderForm barcodeForm
                        = new LB_VisionProcesses.BarcodeReaders.BarcodeReaderForm((LB_VisionProcesses.Processes.BarcodeReaderProcess)process, ProcessPath);
                    barcodeForm.ShowDialog();
                    if (!(process.Load(ProcessPath)))
                        LogInfo?.Invoke(string.Format("流程[{0}]步骤\"{1}\"加载失败了", this.Text, ProcessName), LogInfoType.ERROR);
                    process.strProcessName = ProcessName;
                }
                else if (ClassName.Contains("CommunicatorConfig") && process is CommunicatorConfig)
                {
                    LB_VisionProcesses.Communicators.CommunicatorForm communicatorForm
@@ -370,7 +380,11 @@
                ProcessRunBll.UpdataInputsAndOutputs(ProcessName, process);
            }
            catch (Exception ex) { Debug.WriteLine(ex.Message); }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                MessageBox.Show($"打开配置界面失败: {ex.Message}\n{ex.StackTrace}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void AddBranch(string ProcessName)
LB_SmartVision/GlobalVar.cs
@@ -4,6 +4,7 @@
using LB_SmartVision.Tool;
using LB_VisionProcesses.Cameras;
using LB_VisionProcesses.Communicators;
using LB_VisionProcesses.BarcodeReaders;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -39,6 +40,11 @@
        public static ObservableConcurrentDictionary<string, BaseCamera> dicCameras { get; set; } = new ObservableConcurrentDictionary<string, BaseCamera>();
        /// <summary>
        /// è¯»ç å™¨é›†åˆ(Key:设备SN,Value:读码器句柄)
        /// </summary>
        public static ObservableConcurrentDictionary<string, BarcodeReaderBase> dicBarcodeReaders { get; set; } = new ObservableConcurrentDictionary<string, BarcodeReaderBase>();
        /// <summary>
        /// é€šè®¯é›†åˆ(Key:通讯名,Value:通讯句柄)
        /// </summary>
        public static ObservableConcurrentDictionary<string, BaseCommunicator> dicCommunicators { get; set; } = new ObservableConcurrentDictionary<string, BaseCommunicator>();
LB_SmartVision/LB_SmartVision.csproj
@@ -52,12 +52,24 @@
  </ItemGroup>
  <ItemGroup>
    <Reference Include="CLIDelegate">
      <HintPath>..\LB_VisionProcesses\ref\CLIDelegate.dll</HintPath>
    </Reference>
    <Reference Include="EasyIDSDK_Net">
      <HintPath>..\LB_VisionProcesses\ref\EasyIDSDK_Net.dll</HintPath>
    </Reference>
    <Reference Include="halcondotnet">
      <HintPath>ref\halcondotnet.dll</HintPath>
    </Reference>
    <Reference Include="MVSDK_Net">
      <HintPath>..\LB_VisionProcesses\ref\MVSDK_Net.dll</HintPath>
    </Reference>
    <Reference Include="MySql.Data">
      <HintPath>ref\MySql.Data.dll</HintPath>
    </Reference>
    <Reference Include="ThridLibray">
      <HintPath>..\LB_VisionProcesses\ref\ThridLibray.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
LB_SmartVision/ProcessRun/ProcessContext.cs
@@ -570,6 +570,9 @@
        [Node("相机取图", "取像工具", "Basic", "相机取图")]
        public void ç›¸æœºå–图(FlowNode node) { RunNodeAsync(node); }
        [Node("读码工具", "取像工具", "Basic", "读码工具")]
        public void è¯»ç å·¥å…·(FlowNode node) { RunNodeAsync(node); }
        [Node("Halcon2D斑点工具", "Halcon2D工具", "Basic", "Halcon2D斑点工具")]
        public void Halcon2D斑点工具(FlowNode node) { RunNodeAsync(node); }
LB_VisionFlowNode/IFlowContext.cs
@@ -280,6 +280,9 @@
        [Node("相机取图", "取像工具", "Basic", "相机取图")]
        public void ç›¸æœºå–图(FlowNode node) { RunNodeAsync(node); }
        [Node("读码工具", "取像工具", "Basic", "读码工具")]
        public void è¯»ç å·¥å…·(FlowNode node) { RunNodeAsync(node); }
        [Node("Halcon2D斑点工具", "Halcon2D工具", "Basic", "Halcon2D斑点工具")]
        public void Halcon2D斑点工具(FlowNode node) { RunNodeAsync(node); }
LB_VisionProcesses/BarcodeReaders/BarcodeReaderBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
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; protected set; } = string.Empty;
        public virtual bool IsConnected { get; protected set; } = false;
        public virtual bool IsGrabbing { get; protected 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();
                }
            }
            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,255 @@
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()
        {
            this.themeForm = new ReaLTaiizor.Forms.ThemeForm();
            this.pnlMain = new ReaLTaiizor.Controls.Panel();
            this.controlBox1 = new ReaLTaiizor.Controls.ControlBox();
            this.grpControl = new System.Windows.Forms.GroupBox();
            this.btnRefresh = new System.Windows.Forms.Button();
            this.btnSoftTrigger = new System.Windows.Forms.Button();
            this.btnStop = new System.Windows.Forms.Button();
            this.btnStart = new System.Windows.Forms.Button();
            this.btnClose = new System.Windows.Forms.Button();
            this.btnOpen = new System.Windows.Forms.Button();
            this.cmbSN = new System.Windows.Forms.ComboBox();
            this.lblSN = new System.Windows.Forms.Label();
            this.cmbBrand = new System.Windows.Forms.ComboBox();
            this.lblBrand = new System.Windows.Forms.Label();
            this.grpParams = new System.Windows.Forms.GroupBox();
            this.txtTimeout = new System.Windows.Forms.TextBox();
            this.lblTimeout = new System.Windows.Forms.Label();
            this.radHardTrigger = new System.Windows.Forms.RadioButton();
            this.radSoftTrigger = new System.Windows.Forms.RadioButton();
            this.grpResult = new System.Windows.Forms.GroupBox();
            this.lstBarcodes = new System.Windows.Forms.ListBox();
            this.pnlImage = new System.Windows.Forms.Panel();
            this.picPreview = new System.Windows.Forms.PictureBox();
            this.statusStrip = new System.Windows.Forms.StatusStrip();
            this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel();
            this.themeForm.SuspendLayout();
            this.pnlMain.SuspendLayout();
            this.grpControl.SuspendLayout();
            this.grpParams.SuspendLayout();
            this.grpResult.SuspendLayout();
            this.pnlImage.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.picPreview)).BeginInit();
            this.statusStrip.SuspendLayout();
            this.SuspendLayout();
            // themeForm
            this.themeForm.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
            this.themeForm.Controls.Add(this.controlBox1);
            this.themeForm.Controls.Add(this.pnlMain);
            this.themeForm.Dock = System.Windows.Forms.DockStyle.Fill;
            this.themeForm.Font = new System.Drawing.Font("Segoe UI", 9F);
            this.themeForm.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(142)))), ((int)(((byte)(142)))), ((int)(((byte)(142)))));
            this.themeForm.Location = new System.Drawing.Point(0, 0);
            this.themeForm.Name = "themeForm";
            this.themeForm.Padding = new System.Windows.Forms.Padding(10, 70, 10, 9);
            this.themeForm.Size = new System.Drawing.Size(820, 600);
            this.themeForm.Text = "读码器配置";
            // controlBox1
            this.controlBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            this.controlBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
            this.controlBox1.Location = new System.Drawing.Point(740, 15);
            this.controlBox1.Name = "controlBox1";
            this.controlBox1.Size = new System.Drawing.Size(77, 19);
            // pnlMain
            this.pnlMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
            this.pnlMain.Controls.Add(this.pnlImage);
            this.pnlMain.Controls.Add(this.grpResult);
            this.pnlMain.Controls.Add(this.grpParams);
            this.pnlMain.Controls.Add(this.grpControl);
            this.pnlMain.Controls.Add(this.statusStrip);
            this.pnlMain.Dock = System.Windows.Forms.DockStyle.Fill;
            this.pnlMain.Location = new System.Drawing.Point(10, 70);
            this.pnlMain.Name = "pnlMain";
            this.pnlMain.Size = new System.Drawing.Size(800, 521);
            // grpControl
            this.grpControl.Controls.Add(this.btnRefresh);
            this.grpControl.Controls.Add(this.btnSoftTrigger);
            this.grpControl.Controls.Add(this.btnStop);
            this.grpControl.Controls.Add(this.btnStart);
            this.grpControl.Controls.Add(this.btnClose);
            this.grpControl.Controls.Add(this.btnOpen);
            this.grpControl.Controls.Add(this.cmbSN);
            this.grpControl.Controls.Add(this.lblSN);
            this.grpControl.Controls.Add(this.cmbBrand);
            this.grpControl.Controls.Add(this.lblBrand);
            this.grpControl.ForeColor = System.Drawing.Color.White;
            this.grpControl.Location = new System.Drawing.Point(15, 15);
            this.grpControl.Name = "grpControl";
            this.grpControl.Size = new System.Drawing.Size(260, 240);
            this.grpControl.Text = "设备控制";
            this.lblBrand.Location = new System.Drawing.Point(10, 25);
            this.lblBrand.Text = "品牌:";
            this.cmbBrand.Location = new System.Drawing.Point(70, 22);
            this.cmbBrand.Size = new System.Drawing.Size(170, 25);
            this.cmbBrand.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.lblSN.Location = new System.Drawing.Point(10, 60);
            this.lblSN.Text = "序列号:";
            this.cmbSN.Location = new System.Drawing.Point(70, 57);
            this.cmbSN.Size = new System.Drawing.Size(130, 25);
            this.btnRefresh.Location = new System.Drawing.Point(205, 56);
            this.btnRefresh.Size = new System.Drawing.Size(35, 25);
            this.btnRefresh.Text = "R";
            this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);
            this.btnOpen.Location = new System.Drawing.Point(13, 100);
            this.btnOpen.Size = new System.Drawing.Size(110, 35);
            this.btnOpen.Text = "打开设备";
            this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click);
            this.btnClose.Location = new System.Drawing.Point(130, 100);
            this.btnClose.Size = new System.Drawing.Size(110, 35);
            this.btnClose.Text = "关闭设备";
            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
            this.btnStart.Location = new System.Drawing.Point(13, 145);
            this.btnStart.Size = new System.Drawing.Size(110, 35);
            this.btnStart.Text = "开始采集";
            this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
            this.btnStop.Location = new System.Drawing.Point(130, 145);
            this.btnStop.Size = new System.Drawing.Size(110, 35);
            this.btnStop.Text = "停止采集";
            this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
            this.btnSoftTrigger.Location = new System.Drawing.Point(13, 190);
            this.btnSoftTrigger.Size = new System.Drawing.Size(227, 35);
            this.btnSoftTrigger.Text = "软触发一次";
            this.btnSoftTrigger.Click += new System.EventHandler(this.btnSoftTrigger_Click);
            // grpParams
            this.grpParams.Controls.Add(this.txtTimeout);
            this.grpParams.Controls.Add(this.lblTimeout);
            this.grpParams.Controls.Add(this.radHardTrigger);
            this.grpParams.Controls.Add(this.radSoftTrigger);
            this.grpParams.ForeColor = System.Drawing.Color.White;
            this.grpParams.Location = new System.Drawing.Point(15, 260);
            this.grpParams.Name = "grpParams";
            this.grpParams.Size = new System.Drawing.Size(260, 110);
            this.grpParams.Text = "参数设置";
            this.radSoftTrigger.Location = new System.Drawing.Point(15, 25);
            this.radSoftTrigger.Text = "软触发";
            this.radSoftTrigger.Checked = true;
            this.radSoftTrigger.CheckedChanged += new System.EventHandler(this.radTrigger_CheckedChanged);
            this.radHardTrigger.Location = new System.Drawing.Point(130, 25);
            this.radHardTrigger.Text = "自动/硬触发";
            this.lblTimeout.Location = new System.Drawing.Point(15, 65);
            this.lblTimeout.Text = "超时(ms):";
            this.txtTimeout.Location = new System.Drawing.Point(100, 62);
            this.txtTimeout.Size = new System.Drawing.Size(140, 25);
            this.txtTimeout.Text = "2000";
            // grpResult
            this.grpResult.Controls.Add(this.lstBarcodes);
            this.grpResult.ForeColor = System.Drawing.Color.White;
            this.grpResult.Location = new System.Drawing.Point(15, 380);
            this.grpResult.Name = "grpResult";
            this.grpResult.Size = new System.Drawing.Size(260, 115);
            this.grpResult.Text = "读取结果";
            this.lstBarcodes.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(51)))), ((int)(((byte)(60)))));
            this.lstBarcodes.ForeColor = System.Drawing.Color.White;
            this.lstBarcodes.Dock = System.Windows.Forms.DockStyle.Fill;
            this.lstBarcodes.Location = new System.Drawing.Point(3, 19);
            this.lstBarcodes.Name = "lstBarcodes";
            this.lstBarcodes.Size = new System.Drawing.Size(254, 93);
            // pnlImage
            this.pnlImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.pnlImage.Controls.Add(this.picPreview);
            this.pnlImage.Location = new System.Drawing.Point(285, 23);
            this.pnlImage.Name = "pnlImage";
            this.pnlImage.Size = new System.Drawing.Size(500, 472);
            this.picPreview.Dock = System.Windows.Forms.DockStyle.Fill;
            this.picPreview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
            // statusStrip
            this.statusStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
            this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.lblStatus });
            this.statusStrip.Location = new System.Drawing.Point(0, 499);
            this.statusStrip.Size = new System.Drawing.Size(800, 22);
            this.lblStatus.ForeColor = System.Drawing.Color.White;
            this.lblStatus.Text = "准备就绪";
            // BarcodeReaderForm
            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(820, 600);
            this.Controls.Add(this.themeForm);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Name = "BarcodeReaderForm";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "读码器配置";
            this.Load += new System.EventHandler(this.BarcodeReaderForm_Load);
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BarcodeReaderForm_FormClosing);
            this.themeForm.ResumeLayout(false);
            this.pnlMain.ResumeLayout(false);
            this.pnlMain.PerformLayout();
            this.grpControl.ResumeLayout(false);
            this.grpParams.ResumeLayout(false);
            this.grpParams.PerformLayout();
            this.grpResult.ResumeLayout(false);
            this.pnlImage.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.picPreview)).EndInit();
            this.statusStrip.ResumeLayout(false);
            this.statusStrip.PerformLayout();
            this.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,265 @@
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(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.Barcodes != null && e.Barcodes.Count > 0)
                {
                    foreach (var code in e.Barcodes)
                    {
                        lstBarcodes.Items.Add($"{DateTime.Now:HH:mm:ss} - {code}");
                    }
                }
                else
                {
                    lstBarcodes.Items.Add($"{DateTime.Now:HH:mm:ss} - æœªè¯»åˆ°æ¡ç ");
                }
                // æ›´æ–°é¢„览图像
                if (e.Image != null)
                {
                    // é‡Šæ”¾æ—§å›¾åƒï¼Œé˜²æ­¢å†…存泄漏
                    var oldImg = picPreview.Image;
                    picPreview.Image = new Bitmap(e.Image); // æ‹·è´ä¸€ä»½é˜²æ­¢è¢« SDK å†…部释放
                    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,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_VisionProcesses/BarcodeReaders/Huayray/HRBarcodeReader.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,216 @@
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
            {
                // åˆ›å»ºå¥æŸ„
                int nRet = _camera.eidCreateDevice_Net(sn, EidCamera.EidDeviceDataType.eidDeviceDataTypeSN);
                if (nRet != EidCamera.eidErrorOK) return false;
                // æ‰“开设备
                nRet = _camera.eidOpenDevice_Net();
                if (nRet != EidCamera.eidErrorOK)
                {
                    _camera.eidReleaseHandle_Net();
                    return false;
                }
                // æ³¨å†Œå›žè°ƒ
                nRet = _camera.eidRegisterFrameCallback_Net(_frameCallback, IntPtr.Zero);
                if (nRet != EidCamera.eidErrorOK)
                {
                    _camera.eidCloseDevice_Net();
                    _camera.eidReleaseHandle_Net();
                    return false;
                }
                this.SN = sn;
                this.IsConnected = true;
                return true;
            }
            catch
            {
                return false;
            }
        }
        public override bool Close()
        {
            if (!IsConnected) return true;
            try
            {
                StopGrabbing();
                _camera.eidCloseDevice_Net();
                _camera.eidReleaseHandle_Net();
                this.IsConnected = false;
                this.SN = string.Empty;
                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<string> barcodes = new List<string>();
                // è§£æžæ¡ç 
                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))
                    {
                        barcodes.Add(data);
                    }
                }
                // è½¬æ¢å›¾åƒ (如果需要)
                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, barcodes, bitmap));
            }
            catch (Exception ex)
            {
                // TODO: Log error
            }
        }
        public override void Dispose()
        {
            Close();
            base.Dispose();
        }
    }
}
LB_VisionProcesses/BarcodeReaders/IBarcodeReader.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
using System;
using System.Collections.Generic;
using System.Drawing;
namespace LB_VisionProcesses.BarcodeReaders
{
    /// <summary>
    /// è¯»ç å™¨å“ç‰Œæžšä¸¾
    /// </summary>
    public enum BarcodeReaderBrand
    {
        Huayray,    // åŽç¿
        Unsupported
    }
    /// <summary>
    /// è¯»ç ç»“果参数类
    /// </summary>
    public class BarcodeEventArgs : EventArgs
    {
        /// <summary>
        /// è®¾å¤‡åºåˆ—号
        /// </summary>
        public string SN { get; set; }
        /// <summary>
        /// è¯»ç ç»“果内容
        /// </summary>
        public List<string> Barcodes { get; set; } = new List<string>();
        /// <summary>
        /// å…³è”图像 (可选)
        /// </summary>
        public Bitmap Image { get; set; }
        /// <summary>
        /// æ˜¯å¦è¯»å–成功
        /// </summary>
        public bool IsSuccess => Barcodes.Count > 0;
        public BarcodeEventArgs(string sn, List<string> barcodes, Bitmap image = null)
        {
            SN = sn;
            Barcodes = barcodes;
            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/LB_VisionProcesses.csproj
@@ -33,6 +33,9 @@
    <Reference Include="MVSDK_Net">
      <HintPath>ref\MVSDK_Net.dll</HintPath>
    </Reference>
    <Reference Include="EasyIDSDK_Net">
      <HintPath>ref\EasyIDSDK_Net.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
@@ -57,39 +60,14 @@
  </ItemGroup>
  <ItemGroup>
    <None Update="ref\CLIDelegate.dll">
    <None Update="ref\*.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\halcondotnet.dll">
    <None Update="ref\*.XML">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\MVSDKmd.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\MVSDK_Net.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\MVSDK_Net.XML">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\PHM6000.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\PHM6000API.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\PHM6000API.lib">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\Pilot2D.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\PointCloud3D.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="ref\ThridLibray.dll">
    <None Update="ref\*.lib">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>
</Project>
LB_VisionProcesses/Processes/BarcodeReaderProcess.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,150 @@
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
{
    [Process("读码工具", Category = "取像工具", Description = "通过读码器获取条码数据")]
    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/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/MVSDKmd.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