Exemplo n.º 1
0
        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]);
 }
Exemplo n.º 3
0
        /// <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();
        }