private void tsbCamera1Setting_Click(object sender, EventArgs e) { if (!IsAdministrator) { Util.Notify(Level.Err, "非管理员不能操作"); return; } if (cameraSelect == null) { MessageBox.Show("当前无相机选择/当前相机未连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //if (cameraSelect is Camera.DirectShowCamera) //{ // MessageBox.Show("usb相机无参数设置", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; //} frmCameraSetting settingForm = new frmCameraSetting(cameraSelect); DialogResult result = settingForm.ShowDialog(); CameraPram cameraPram = ProjectData.Instance.GetCameraPram(cameraSelect.CameraIndex); //这里对ProjectData中的cameraPramDic进行更改 if (result == DialogResult.OK) { cameraPram.Shutter = cameraSelect.ShuterCur; cameraPram.Gain = cameraSelect.GainCur; cameraPram.TriggerDelayAbs = cameraSelect.TriggerDelayAbs; cameraPram.LineDebouncerTimeAbs = cameraSelect.LineDebouncerTimeAbs; cameraPram.OutLineTime = cameraSelect.OutLineTime; cameraPram.ImageAngle = cameraSelect.ImageAngle; //camera1.SetExtTrigger(); try { ProjectData.Instance.SaveProject(UserSetting.Instance.ProjectPath); UserSetting.Instance.SaveSetting(); SetNotifyMessage(string.Format("相机设置已保存")); } catch (Exception ex) { MessageBox.Show("保存失败:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { cameraSelect.ShuterCur = cameraPram.Shutter; cameraSelect.GainCur = cameraPram.Gain; cameraSelect.TriggerDelayAbs = cameraPram.TriggerDelayAbs; cameraSelect.LineDebouncerTimeAbs = cameraPram.LineDebouncerTimeAbs; cameraSelect.OutLineTime = cameraPram.OutLineTime; cameraSelect.ImageAngle = cameraPram.ImageAngle; //camera1.SetExtTrigger(); } }
public CameraPram GetCameraPram(int key) { if (cameraPramDic == null) { cameraPramDic = new Dictionary <int, CameraPram>(); } if (cameraPramDic.ContainsKey(key) == false) { CameraPram camera1 = new CameraPram(); cameraPramDic.Add(key, camera1); } return(cameraPramDic[key]); }
/// <summary> /// 初始化相机绑定显示窗口和图像处理线程,显示设定初始化,加载工程文件,初始化工具栏,相机参数设定。 /// </summary> /// <param name="loadTool"></param> /// <param name="frmLoad"></param> public void LoadProject(bool loadTool, Common.UI.FrmLoad frmLoad = null) { InitRunData(); /*if(CameraFindIndexList.Count==1) * ChangeSize(CameraFindIndexList[0]); * else * ChangeSize(1); */ if (cameraCount > 0 && cameraCount < 10) { ChangeSize(-1); } else { CommHandle.Instance.IsLink = false; Util.Notify(Level.Err, "相机设置个数超出1-9范围"); return; } try { if (loadTool) { ProjectData.Instance.ReadProject(UserSetting.Instance.ProjectPath); } } catch (Exception) { //Util.WriteLog(this.GetType(), ex); StatusManger.Instance.RuningStatus = RuningStatus.系统异常; Util.Notify(Level.Err, "项目加载异常"); } frmLoad?.UpdateProgress("显示数据初始化...", 50, 70, 500); InitResultTable(); try { toolShowUnit1.InitTreeView(); } catch (Exception /*ex*/) { ; } frmLoad?.UpdateProgress("相机参数设置...", 70, 80, 500); foreach (var item in CameraManger.CameraDic) { CameraPram cameraPram = ProjectData.Instance.GetCameraPram(item.Key); item.Value.ShuterCur = cameraPram.Shutter; item.Value.GainCur = cameraPram.Gain; item.Value.TriggerDelayAbs = cameraPram.TriggerDelayAbs; item.Value.LineDebouncerTimeAbs = cameraPram.LineDebouncerTimeAbs; item.Value.OutLineTime = cameraPram.OutLineTime; item.Value.ImageAngle = cameraPram.ImageAngle; Thread.Sleep(1); } if (CameraManger.CameraDic.Count > 0) { Util.Notify("相机参数设置完成"); } StatusManger.Instance.RuningStatus = RuningStatus.等待运行; StatusManger.Instance.TestInitFinish = true; UserSetting.Instance.SaveSetting(); //主要目的是把打开过的项目路径保存下来 Initial(); }