123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- using PaintDotNet.Annotation.Enum;
- using PaintDotNet.Annotation.relationModel;
- using PaintDotNet.Base.SettingModel;
- using PaintDotNet.Base.CommTool;
- using PaintDotNet.ImageCollect;
- using PaintDotNet.Setting.LabelComponent;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.IO;
- using System.Windows.Forms;
- using PaintDotNet.ImageCollect;
- using PaintDotNet.Camera;
- namespace PaintDotNet.Setting
- {
- /// <summary>
- /// 设置->相机设置
- /// </summary>
- internal class CameraSettingDialog : FloatingToolForm
- {
- /// <summary>
- /// 标注一二级关系
- /// </summary>
- private static List<CameraRelationModel> list = new List<CameraRelationModel>();
- /// <summary>
- /// 当前选中的参数
- /// </summary>
- private CameraParamType cameraParamType;
- /// <summary>
- /// 相机参数
- /// </summary>
- public CameraParamModel m_cameraParamModel = Startup.instance.cameraParamModel;
- /// <summary>
- /// 主配置文件的model
- /// </summary>
- private ConfigModel configModel = Startup.instance.configModel;
- /// <summary>
- /// 操作样式下拉数据
- /// </summary>
- private List<string> files = new List<string>();
- /// <summary>
- /// 另存为弹出框显示
- /// </summary>
- private CreateNameDialog dialog;
- /// <summary>
- /// 另存为文件名
- /// </summary>
- private string newName;
- // private Bitmap bitmap;
- // private OpenCvSharp.Mat mat;
- // private OpenCvSharp.Mat oldMat;
- //各页面组件
- /*private LabelTextControl textControl;
- private LabelMarkDateControl dateMarkControl;
- private LabelMarkTimeControl timeMarkControl;*/
- private AdjustContainer adjustCameraControl;
- private FrameCameraControl frameCameraControl;
- private CommonCameraControl commonCameraControl;
- //private int width, height;
- /// <summary>
- /// 相机
- /// </summary>
- //private MIChrome5Pro m5pro;
- /// <summary>
- /// 一个矩阵数组,用来接收直方图,记得全部初始化
- /// </summary>
- OpenCvSharp.Mat[] oldHists = new OpenCvSharp.Mat[] { new OpenCvSharp.Mat(), new OpenCvSharp.Mat(), new OpenCvSharp.Mat() };
- /// <summary>
- /// BGR线条颜色
- /// </summary>
- private OpenCvSharp.Scalar[] color = new OpenCvSharp.Scalar[] { new OpenCvSharp.Scalar(255, 0, 0, 255), new OpenCvSharp.Scalar(0, 255, 0, 255), new OpenCvSharp.Scalar(0, 0, 255, 255) };
- #region 控件
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.GroupBox groupBox3;
- private System.Windows.Forms.Panel controlPanel;
- private System.Windows.Forms.ListBox listBox1;
- private Button button3;
- private Button button2;
- private Label label1;
- private Button btnClose;
- private Label label2;
- private PictureBox pictureBox1;
- private Label lblParamName;
- private Label label4;
- private Timer timer1;
- private System.ComponentModel.IContainer components;
- private Button btnRest;
- #endregion
- public CameraSettingDialog()
- {
- if (list == null || list.Count == 0)
- {
- CameraRelationModel crm1 = new CameraRelationModel(1, PdnResources.GetString("Menu.Image.Adjust.Text"), CameraParamType.Adjust);
- list.Add(crm1);
- CameraRelationModel crm2 = new CameraRelationModel(2, PdnResources.GetString("Menu.ImageCollection.CameraFrame.Text"), CameraParamType.Frame);
- list.Add(crm2);
- CameraRelationModel crm3 = new CameraRelationModel(3, PdnResources.GetString("Menu.ImageCollection.CameraConventional.Text"), CameraParamType.Common);
- list.Add(crm3);
- }
- adjustCameraControl = new AdjustContainer();
- adjustCameraControl.Initialize(m_cameraParamModel, true);
- adjustCameraControl.Location = new Point(10, 15);
- frameCameraControl = new FrameCameraControl(m_cameraParamModel, true);
- frameCameraControl.Location = new Point(10, 15);
- commonCameraControl = new CommonCameraControl();
- commonCameraControl.Initialize(m_cameraParamModel, true);
- commonCameraControl.Location = new Point(10, 15);
- InitializeComponent();
- InitializeLanguageText();
- InitializeData();
- timer1.Tick += (s, e) =>
- {
- controlPanel.Enabled = CameraManager.IsLive;
- if (CameraManager.IsLive)
- adjustCameraControl.UpdateDisplay();
- };
- this.Load += (s, e) => { timer1.Enabled = true; };
- this.FormClosing += (s, e) =>
- {
- frameCameraControl.Dispose();
- adjustCameraControl.Dispose();
- timer1.Enabled = false;
- };
- }
- private void InitializeLanguageText()
- {
- this.label1.Text = PdnResources.GetString("Menu.Systemusecamera.text") + ":";
- this.button3.Text = PdnResources.GetString("Menu.File.SaveAs.Text");
- this.button2.Text = PdnResources.GetString("Menu.File.Save.Text");
- this.groupBox3.Text = PdnResources.GetString("Menu.Type.text");
- this.btnClose.Text = PdnResources.GetString("Menu.File.Close.Text");
- this.btnRest.Text = PdnResources.GetString("Menu.reinformation.text");
- this.Text = PdnResources.GetString("Menu.ImageCollection.CameraSetting.Text");
- }
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.lblParamName = new System.Windows.Forms.Label();
- this.label4 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.button3 = new System.Windows.Forms.Button();
- this.button2 = new System.Windows.Forms.Button();
- this.groupBox3 = new System.Windows.Forms.GroupBox();
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.btnClose = new System.Windows.Forms.Button();
- this.btnRest = new System.Windows.Forms.Button();
- this.listBox1 = new System.Windows.Forms.ListBox();
- this.controlPanel = new System.Windows.Forms.Panel();
- this.timer1 = new System.Windows.Forms.Timer(this.components);
- this.groupBox1.SuspendLayout();
- this.groupBox3.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- this.SuspendLayout();
- //
- // groupBox1
- //
- this.groupBox1.Controls.Add(this.lblParamName);
- this.groupBox1.Controls.Add(this.label4);
- this.groupBox1.Controls.Add(this.label2);
- this.groupBox1.Controls.Add(this.label1);
- this.groupBox1.Controls.Add(this.button3);
- this.groupBox1.Controls.Add(this.button2);
- this.groupBox1.Location = new System.Drawing.Point(134, 13);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(556, 78);
- this.groupBox1.TabIndex = 1;
- this.groupBox1.TabStop = false;
- //
- // lblParamName
- //
- this.lblParamName.AutoSize = true;
- this.lblParamName.Location = new System.Drawing.Point(109, 47);
- this.lblParamName.Name = "lblParamName";
- this.lblParamName.Size = new System.Drawing.Size(53, 12);
- this.lblParamName.TabIndex = 8;
- this.lblParamName.Text = " ";
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(14, 47);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(89, 12);
- this.label4.TabIndex = 7;
- this.label4.Text = "相机参数名称:";
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(109, 25);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(53, 12);
- this.label2.TabIndex = 6;
- this.label2.Text = " ";
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(14, 25);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(89, 12);
- this.label1.TabIndex = 5;
- this.label1.Text = "系统使用相机:";
- //
- // button3
- //
- this.button3.Location = new System.Drawing.Point(457, 20);
- this.button3.Name = "button3";
- this.button3.Size = new System.Drawing.Size(75, 23);
- this.button3.TabIndex = 2;
- this.button3.Text = "另存为";
- this.button3.UseVisualStyleBackColor = true;
- this.button3.Click += new System.EventHandler(this.button3_Click);
- //
- // button2
- //
- this.button2.Location = new System.Drawing.Point(376, 19);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(75, 23);
- this.button2.TabIndex = 1;
- this.button2.Text = "保存";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.button2_Click);
- //
- // groupBox3
- //
- this.groupBox3.Controls.Add(this.pictureBox1);
- this.groupBox3.Controls.Add(this.btnClose);
- this.groupBox3.Controls.Add(this.btnRest);
- this.groupBox3.Controls.Add(this.listBox1);
- this.groupBox3.Location = new System.Drawing.Point(13, 13);
- this.groupBox3.Name = "groupBox3";
- this.groupBox3.Size = new System.Drawing.Size(115, 471);
- this.groupBox3.TabIndex = 3;
- this.groupBox3.TabStop = false;
- //
- // pictureBox1
- //
- this.pictureBox1.Location = new System.Drawing.Point(6, 301);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(100, 50);
- this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
- this.pictureBox1.TabIndex = 4;
- this.pictureBox1.TabStop = false;
- //
- // btnClose
- //
- this.btnClose.Location = new System.Drawing.Point(16, 431);
- this.btnClose.Name = "btnClose";
- this.btnClose.Size = new System.Drawing.Size(75, 23);
- this.btnClose.TabIndex = 3;
- this.btnClose.Text = "关闭";
- this.btnClose.UseVisualStyleBackColor = true;
- this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
- //
- // btnRest
- //
- this.btnRest.Location = new System.Drawing.Point(16, 393);
- this.btnRest.Name = "btnRest";
- this.btnRest.Size = new System.Drawing.Size(75, 23);
- this.btnRest.TabIndex = 2;
- this.btnRest.Text = "重置";
- this.btnRest.UseVisualStyleBackColor = true;
- this.btnRest.Click += new System.EventHandler(this.btnRest_Click);
- //
- // listBox1
- //
- this.listBox1.FormattingEnabled = true;
- this.listBox1.ItemHeight = 12;
- this.listBox1.Location = new System.Drawing.Point(6, 20);
- this.listBox1.Name = "listBox1";
- this.listBox1.Size = new System.Drawing.Size(103, 208);
- this.listBox1.TabIndex = 0;
- this.listBox1.SelectedValueChanged += new System.EventHandler(this.listBox1_SelectedValueChanged);
- //
- // controlPanel
- //
- this.controlPanel.AutoScroll = true;
- this.controlPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.controlPanel.Location = new System.Drawing.Point(134, 98);
- this.controlPanel.Name = "controlPanel";
- this.controlPanel.Size = new System.Drawing.Size(556, 386);
- this.controlPanel.TabIndex = 5;
- //
- // CameraSettingDialog
- //
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.ClientSize = new System.Drawing.Size(702, 496);
- this.Controls.Add(this.controlPanel);
- this.Controls.Add(this.groupBox3);
- this.Controls.Add(this.groupBox1);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
- this.Name = "CameraSettingDialog";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "相机设置";
- this.Activated += new System.EventHandler(this.CameraSettingDialog_Activated);
- this.Controls.SetChildIndex(this.groupBox1, 0);
- this.Controls.SetChildIndex(this.groupBox3, 0);
- this.Controls.SetChildIndex(this.controlPanel, 0);
- this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- this.groupBox3.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- this.ResumeLayout(false);
- }
- /// <summary>
- /// 初始化数据
- /// </summary>
- public void InitializeData()
- {
- //绑定左侧listbox数据
- this.listBox1.Items.Clear();
- foreach (CameraRelationModel model in list)
- {
- this.listBox1.Items.Add(model.name);
- }
- this.listBox1.SelectedIndex = 0;
- try
- {
- // 获取系统使用的相机名称
- ICamera camera = CameraManager.CurrentCamera;
- // 获取系统使用的相机SN
- string sn;
- camera.ReadRegisterData(out sn);
- //label2.Text = camera.GetName();
- if (!string.IsNullOrEmpty(sn))
- {
- label2.Text = sn;
- }
- m_cameraParamModel = Startup.instance.cameraParamModel;
- lblParamName.Text = CameraConfigs.GetInstance().CurrentConfigFileName;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- /// <summary>
- /// 当前操作样式 下拉选切换
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
- {
- InitializeData();
- }
- /// <summary>
- /// 左侧listbox选择事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void listBox1_SelectedValueChanged(object sender, EventArgs e)
- {
- //首先更新右侧分类部分
- UpdateRightCatalog();
- //更新右侧设置界面
- UpdateRightSettingUI();
- }
- /// <summary>
- /// 更新右侧分类
- /// </summary>
- private void UpdateRightCatalog()
- {
- this.controlPanel.Controls.Clear();
- CameraRelationModel model = list[this.listBox1.SelectedIndex];
- this.cameraParamType = model.cameraParamType;
- }
- /// <summary>
- /// 更新右侧设置
- /// </summary>
- private void UpdateRightSettingUI()
- {
- this.controlPanel.Controls.Clear();
- switch (this.cameraParamType)
- {
- case CameraParamType.Adjust: //调节
- adjustCameraControl.Location = new Point(0, 0);
- this.controlPanel.Controls.Add(adjustCameraControl);
- break;
- case CameraParamType.Frame: //边框
- frameCameraControl.Location = new Point(0, 0);
- this.controlPanel.Controls.Add(frameCameraControl);
- break;
- case CameraParamType.Common: //常规
- commonCameraControl.Location = new Point(0, 0);
- this.controlPanel.Controls.Add(commonCameraControl);
- break;
- }
- }
- /// <summary>
- /// 另存为 出弹窗
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button3_Click(object sender, EventArgs e)
- {
- dialog = new CreateNameDialog(this);
- dialog.Text = PdnResources.GetString("Menu.Savecamerasettings.text");
- dialog.StartPosition = FormStartPosition.CenterParent;
- dialog.ShowDialog();
- }
- /// <summary>
- /// 另存为弹窗 确定保存
- /// </summary>
- /// <param name="name"></param>
- public override void GetCreateName(string name)
- {
- // string currentcomboBox = this.comboBox1.Text;
- this.newName = name;
- if (CameraConfigs.GetInstance().FileExist(this.newName))
- {
- MessageBox.Show(PdnResources.GetString("Menu.Namecannotbepeated.Text"), PdnResources.GetString("Menu.ensure.text"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
- }
- CameraConfigs.GetInstance().Save(this.m_cameraParamModel, this.newName);
- dialog.Close();
- MessageBox.Show(PdnResources.GetString("Menu.Successfullysaved.text"));
- }
- /// <summary>
- /// 保存
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button2_Click(object sender, EventArgs e)
- {
- CameraConfigs.GetInstance().Save();
- MessageBox.Show(PdnResources.GetString("Menu.Successfullysaved.text"));
- }
- private void btnClose_Click(object sender, EventArgs e)
- {
- this.Close();
- this.Dispose();
- }
- private void btnRest_Click(object sender, EventArgs e)
- {
- CameraConfigs cameraConfig = CameraConfigs.GetInstance();
- Startup.instance.cameraParamModel = cameraConfig.GetDefaultCameraParamModel();
- m_cameraParamModel = Startup.instance.cameraParamModel;
- if (adjustCameraControl != null)
- {
- adjustCameraControl.Initialize(Startup.instance.cameraParamModel);
- }
- if (frameCameraControl != null)
- {
- frameCameraControl.ResetCameraParamModel(Startup.instance.cameraParamModel);
- }
- if (commonCameraControl != null)
- {
- commonCameraControl.Initialize(Startup.instance.cameraParamModel);
- }
- }
- private void CameraSettingDialog_Activated(object sender, EventArgs e)
- {
- m_cameraParamModel = Startup.instance.cameraParamModel;
- lblParamName.Text = CameraConfigs.GetInstance().CurrentConfigFileName;
- adjustCameraControl.Initialize(m_cameraParamModel, true);
- frameCameraControl.ResetCameraParamModel(m_cameraParamModel);
- commonCameraControl.ResetCameraParamModel(m_cameraParamModel);
- }
- private void timer1_Tick(object sender, EventArgs e)
- {
- controlPanel.Enabled = Camera.CameraManager.IsLive;
- }
- }
- }
|