/// <summary> /// 设置相机取图方式 /// </summary> /// <param name="IRead"></param> /// <param name="acquire_way"></param> /// <returns></returns> public bool Set_Acquire(IReadShuJu IRead, string acquire_way) { bool ok = false; switch (acquire_way) { case "Folder_Image": IRead.Acquire_Image = Acquire.Folder_Image; break; case "Registry_Image_One": IRead.Acquire_Image = Acquire.Registry_Image_One; break; case "Registry_Image_Two": IRead.Acquire_Image = Acquire.Registry_Image_Two; break; default: break; } ok = true; return(ok); }
/// <summary> /// 把图片image写入ReadShuJu中 /// </summary> /// <param name="IRead">ReadShuJu接口</param> /// <param name="Ho_Image">图片的数据</param> /// <returns></returns> public bool Set_Ho_Image(IReadShuJu IRead, ref HObject Ho_Image) { bool ok = false; IRead.Ho_image = Ho_Image; ok = true; return(ok); }
/// <summary> /// 设置图片的路径 /// </summary> /// <param name="IRead">ReadShuJu接口</param> /// <param name="pu">图片路径</param> /// <returns></returns> public bool Set_Path_Picture(IReadShuJu IRead, ref List <string> pu) { bool ok = false; IRead.Path_Picture = pu; ok = true; return(ok); }
/// <summary> /// 设置去取第几张图片 /// </summary> /// <param name="IRead">ReadShuJu接口</param> /// <param name="Num">图片的引索</param> /// <returns></returns> public bool Set_Number(IReadShuJu IRead, ref int Num) { bool ok = false; IRead.Number = Num; ok = true; return(ok); }
/// <summary> /// 设置注册表大小 /// </summary> /// <param name="width_"></param> /// <param name="height_"></param> /// <returns></returns> public bool Set_Registry(IReadShuJu IRead, string width_, string height_) { bool ok = false; switch (IRead.Acquire_Image) { #region 文件夹 case Acquire.Folder_Image: MessageBox.Show("当前为文件夹取图,设置注册表大小失败"); ok = false; break; #endregion #region 注册表一 case Acquire.Registry_Image_One: IRead._Width = Convert.ToUInt32(width_); IRead._Height = Convert.ToUInt32(height_); IntPtrRegistry.STRIDE_ONE = Convert.ToUInt32(width_); IntPtrRegistry.NUMROWS_ONE = Convert.ToUInt32(height_); ok = true; break; #endregion #region 注册表二 case Acquire.Registry_Image_Two: IRead._Width = Convert.ToUInt32(width_); IRead._Height = Convert.ToUInt32(height_); IntPtrRegistry.STRIDE_TWO = Convert.ToUInt32(width_); IntPtrRegistry.NUMROWS_TWO = Convert.ToUInt32(height_); ok = true; break; #endregion #region 默认处理 default: ok = false; break; #endregion } return(ok); }
private void ParentFrm_Load(object sender, EventArgs e) { try { halconWinControl_11.init(); _read += read_one_image; #region 无用代码 #region 逻辑控制 //_read_event = new AutoResetEvent(false); //_run_event = new AutoResetEvent(false); #endregion #region 初始化线程 //_read_th = new Thread(new ThreadStart(read_one_image)); //_read_th.Name = "取图线程"; //_run_th = new Thread(new ThreadStart(run)); //_run_th.Name = "检测线程"; //_read_th.Start(); //_run_th.Start(); #endregion #endregion #region 初始化数据 if (TreeStatic.Mult_Tree_Node_Picture != null) { if (TreeStatic.Mult_Tree_Node_Picture.SelfId.Contains("acquire")) { _re = (ReadShuJu)TreeStatic.Mult_Tree_Node_Picture.Obj; #region 把图片写入 foreach (string file_name in _re.Path_Picture) { listBox_acquire_picture.Items.Add(file_name); //加载所有文件 } #endregion } else { _re = new ReadShuJu(); } } else { _re = new ReadShuJu(); } #endregion #region 设置相机参数工具 _Set_DaHua = new Camer.Set_DaHua_Date(); #endregion #if DEBUG == true //_IDaHua = MachineVision.MainStatic.MainStatic.DaHua_Date_One1; //MachineVision.MainStatic.MainStatic.DaHua_Date_One1.Dev.StreamGrabber.ImageGrabbed += OnImageGrabbed; #region 无用代码 //if (TreeStatic.Mult_Tree_Node.Obj == null) //{ // /*BarCodeHalcon.BarCodeShuJu.IBarCodeShuJu su = new BarCodeHalcon.BarCodeShuJu.BarCodeShuJu();*/ // _IDaHua = new Camer.DaHua.DaHua_Date(); //} //else //{ // _IDaHua = (Camer.DaHua.DaHua_Date)TreeStatic.Mult_Tree_Node.Obj; ; //} #endregion #else string str = ""; // BarCodeHalcon.BarCodeShuJu.IBarCodeShuJu su = new BarCodeHalcon.BarCodeShuJu.BarCodeShuJu(); // _IDaHua = new Camer.DaHua_Date(); _Set_DaHua.open_camer(_IDaHua, _IDaHua.CamerIndx1, OnCameraOpen, null, OnConnectLoss, ref str); if (str == "") { MessageBox.Show("相机打开成功"); } #endif _Set_DaHua.show_DaHua_ShuJu(_IDaHua, Controls); _IDaHua.Dev.StreamGrabber.ImageGrabbed += OnImageGrabbed; } catch (Exception ex) { MessageBox.Show(ex.Message, "初始化报错"); } }
/// <summary> /// 显示参数 /// </summary> /// <param name="IRead"></param> /// <param name="control"></param> /// <returns></returns> public bool Set_ReadShuJu_Parameter(IReadShuJu IRead, Control.ControlCollection control) { bool ok = false; foreach (Control con in control) { string name = con.Name; if ((con is ComboBox) || (con is TextBox)) { switch (name) { #region 取图方式 case "Acquire": con.Text = IRead.Acquire_Image.ToString(); break; #endregion #region 注册表宽 case "Registry_width": switch (IRead.Acquire_Image) { #region 初始化注册表一 case Acquire.Registry_Image_One: con.Text = Convert.ToString(IntPtrRegistry.STRIDE_ONE); break; #endregion #region 初始化注册表二 case Acquire.Registry_Image_Two: con.Text = Convert.ToString(IntPtrRegistry.STRIDE_TWO); break; #endregion #region 默认处理 default: break; #endregion } break; #endregion #region 注册表高 case "Registry_height": switch (IRead.Acquire_Image) { #region 注册表一 case Acquire.Registry_Image_One: con.Text = Convert.ToString(IntPtrRegistry.NUMROWS_ONE); break; #endregion #region 注册表二 case Acquire.Registry_Image_Two: con.Text = Convert.ToString(IntPtrRegistry.NUMROWS_TWO); break; #endregion #region 默认处理 default: break; #endregion } break; #endregion #region 默认处理 default: break; #endregion } } if (con.Controls.Count > 0) { Set_ReadShuJu_Parameter(IRead, con.Controls); } } ok = true; return(ok); }