| | |
| | | { |
| | | InitializeComponent(); |
| | | //传入相机句柄后禁用连接/断开按键 |
| | | this.btnOpen.Enabled = false; |
| | | this.btnClose.Enabled = false; |
| | | this.cmbBrand.Enabled = false; |
| | | //this.btnOpen.Enabled = false; |
| | | //this.btnClose.Enabled = false; |
| | | //this.cmbBrand.Enabled = false; |
| | | this.panel_Picture.Controls.Clear(); |
| | | |
| | | this.dicCameras = dicCameras; |
| | |
| | | int Index = cmbBrand.FindString(camera.Brand.ToString()); ; |
| | | cmbBrand.Text = camera.Brand.ToString(); |
| | | cmbBrand.SelectedIndex = Index; |
| | | this.btnEdit.Enabled = true; |
| | | } |
| | | } |
| | | |
| | |
| | | camera.ImageGrabbed -= GetImageBllComplete; |
| | | camera.ImageGrabbed += GetImageBllComplete; |
| | | MessageBox.Show(camera.SN + "打开成功"); |
| | | this.btnEdit.Enabled = true; |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | if (camera == null) |
| | | return; |
| | | |
| | | using (Form editForm = new Form()) |
| | | { |
| | | editForm.Text = "高级参数设置 - " + camera.SN; |
| | | editForm.Size = new System.Drawing.Size(400, 500); |
| | | editForm.StartPosition = FormStartPosition.CenterParent; |
| | | editForm.FormBorderStyle = FormBorderStyle.SizableToolWindow; |
| | | |
| | | PropertyGrid pg = new PropertyGrid(); |
| | | pg.Dock = DockStyle.Fill; |
| | | pg.SelectedObject = new CameraAdvancedSettings(camera); |
| | | |
| | | editForm.Controls.Add(pg); |
| | | editForm.ShowDialog(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 相机高级设置包装类 |
| | | /// </summary> |
| | | public class CameraAdvancedSettings |
| | | { |
| | | private BaseCamera _camera; |
| | | public CameraAdvancedSettings(BaseCamera camera) |
| | | { |
| | | _camera = camera; |
| | | } |
| | | |
| | | [System.ComponentModel.Category("触发设置"), System.ComponentModel.Description("触发源")] |
| | | public TriggerSource TriggerSource |
| | | { |
| | | get { _camera.GetTriggerMode(out _, out TriggerSource s); return s; } |
| | | set { _camera.GetTriggerMode(out TriggerMode m, out _); _camera.SetTriggerMode(m, value); } |
| | | } |
| | | |
| | | [System.ComponentModel.Category("触发设置"), System.ComponentModel.Description("触发极性")] |
| | | public TriggerPolarity TriggerPolarity |
| | | { |
| | | get { _camera.GetTriggerPolarity(out TriggerPolarity p); return p; } |
| | | set { _camera.SetTriggerPolarity(value); } |
| | | } |
| | | |
| | | [System.ComponentModel.Category("触发设置"), System.ComponentModel.Description("触发延时(us)")] |
| | | public double TriggerDelay |
| | | { |
| | | get { _camera.GetTriggerDelay(out double d); return d; } |
| | | set { _camera.SetTriggerDelay(value); } |
| | | } |
| | | |
| | | [System.ComponentModel.Category("触发设置"), System.ComponentModel.Description("触发滤波(us)")] |
| | | public double TriggerFilter |
| | | { |
| | | get { _camera.GetTriggerFliter(out double f); return f; } |
| | | set { _camera.SetTriggerFliter(value); } |
| | | } |
| | | |
| | | [System.ComponentModel.Category("图像设置"), System.ComponentModel.Description("自动白平衡")] |
| | | public void AutoBalanceWhite() |
| | | { |
| | | _camera.AutoBalanceWhite(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | if (res == DialogResult.Yes) //保存VPP |
| | | { |
| | | TriggerSource actualSource = TriggerSource.Line0; |
| | | TriggerPolarity polarity = TriggerPolarity.RisingEdge; |
| | | double delay = 0; |
| | | double filter = 0; |
| | | |
| | | if (camera != null) |
| | | { |
| | | camera.GetTriggerMode(out _, out actualSource); |
| | | camera.GetTriggerPolarity(out polarity); |
| | | camera.GetTriggerDelay(out delay); |
| | | camera.GetTriggerFliter(out filter); |
| | | } |
| | | |
| | | camConfig.Params.Inputs.Add("相机SN", cmbSN.Text); |
| | | camConfig.Params.Inputs.Add("触发模式", TriggerMode.On); |
| | | camConfig.Params.Inputs.Add("触发方式", radioButtonSoft.Checked ? TriggerSource.Software : TriggerSource.Line0); |
| | | camConfig.Params.Inputs.Add("触发方式", radioButtonSoft.Checked ? TriggerSource.Software : actualSource); |
| | | camConfig.Params.Inputs.Add("触发极性", polarity); |
| | | camConfig.Params.Inputs.Add("触发延时", delay); |
| | | camConfig.Params.Inputs.Add("触发消抖", filter); |
| | | camConfig.Params.Inputs.Add("是否本地取图", ckbLocalTest.Checked); |
| | | camConfig.Params.Inputs.Add("本地取图路径", cmbImagesPath.Items.Cast<string>().ToList()); |
| | | camConfig.Params.Inputs.Add("是否失败重新取图", ckbRegrab.Checked); |
| | |
| | | camera.ImageGrabbed -= GetImageBllComplete; |
| | | camera.StopGrabbing(); |
| | | |
| | | camera.GetTriggerMode(out _, out TriggerSource actualSource); |
| | | if (radioButtonSoft.Checked) |
| | | camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software); |
| | | else |
| | | camera.SetTriggerMode(TriggerMode.On, TriggerSource.Line0); |
| | | camera.SetTriggerMode(TriggerMode.On, actualSource); |
| | | |
| | | camera.StartGrabbing(); |
| | | } |
| | |
| | | |
| | | if (camera == null) |
| | | return; |
| | | |
| | | camera.GetTriggerMode(out _, out TriggerSource currentSource); |
| | | |
| | | if (radioButtonSoft.Checked) |
| | | { |
| | | camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software); |
| | | } |
| | | else |
| | | camera.SetTriggerMode(TriggerMode.On, TriggerSource.Line0); |
| | | { |
| | | // 如果当前已经是硬件触发源,则保持;否则默认Line0 |
| | | if (currentSource == TriggerSource.Software) |
| | | camera.SetTriggerMode(TriggerMode.On, TriggerSource.Line0); |
| | | else |
| | | camera.SetTriggerMode(TriggerMode.On, currentSource); |
| | | } |
| | | } |
| | | |
| | | System.Windows.Forms.ToolTip ToolTip = new System.Windows.Forms.ToolTip(); |