diff --git a/LeatherProject/GeBoShi/ImageDefect/DefectLib.cs b/LeatherProject/GeBoShi/ImageDefect/DefectLib.cs
index 9eee73d..c3e5799 100644
--- a/LeatherProject/GeBoShi/ImageDefect/DefectLib.cs
+++ b/LeatherProject/GeBoShi/ImageDefect/DefectLib.cs
@@ -1191,5 +1191,10 @@ namespace GeBoShi.ImageDefect
/// 等比例填充的宽度
///
public int xw;
+
+ ///
+ /// 当前图像计米器位置
+ ///
+ public double CurrDis;
}
}
diff --git a/LeatherProject/GeBoShi/Main.Designer.cs b/LeatherProject/GeBoShi/Main.Designer.cs
index 42730d9..7c2bc3e 100644
--- a/LeatherProject/GeBoShi/Main.Designer.cs
+++ b/LeatherProject/GeBoShi/Main.Designer.cs
@@ -30,17 +30,17 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
- System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
- System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
- System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+ System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+ System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend();
+ System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnImpStop = new System.Windows.Forms.ToolStripButton();
@@ -144,6 +144,8 @@
this.colTarget = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.keyPanel = new System.Windows.Forms.Panel();
this.ucKeyBorderAll1 = new HZH_Controls.Controls.UCKeyBorderAll();
+ this.label9 = new System.Windows.Forms.Label();
+ this.ucSwitch2 = new HZH_Controls.Controls.UCSwitch();
this.toolStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout();
@@ -903,6 +905,8 @@
// groupBox2
//
this.groupBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(8)))), ((int)(((byte)(31)))), ((int)(((byte)(120)))));
+ this.groupBox2.Controls.Add(this.label9);
+ this.groupBox2.Controls.Add(this.ucSwitch2);
this.groupBox2.Controls.Add(this.dataGridView1);
this.groupBox2.Controls.Add(this.label7);
this.groupBox2.Controls.Add(this.label6);
@@ -970,11 +974,11 @@
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.label7.Location = new System.Drawing.Point(39, 27);
+ this.label7.Location = new System.Drawing.Point(15, 27);
this.label7.Name = "label7";
- this.label7.Size = new System.Drawing.Size(93, 20);
+ this.label7.Size = new System.Drawing.Size(65, 20);
this.label7.TabIndex = 8;
- this.label7.Text = "瑕疵二次判断";
+ this.label7.Text = "二次判断";
//
// label6
//
@@ -994,7 +998,7 @@
this.ucSwitch1.FalseColor = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(189)))), ((int)(((byte)(189)))));
this.ucSwitch1.FalseTextColr = System.Drawing.Color.Black;
this.ucSwitch1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.ucSwitch1.Location = new System.Drawing.Point(177, 21);
+ this.ucSwitch1.Location = new System.Drawing.Point(91, 21);
this.ucSwitch1.Name = "ucSwitch1";
this.ucSwitch1.Size = new System.Drawing.Size(80, 28);
this.ucSwitch1.SwitchType = HZH_Controls.Controls.SwitchType.Ellipse;
@@ -1093,22 +1097,22 @@
//
// chart1
//
- chartArea1.AxisX.Maximum = 160D;
- chartArea1.AxisX.Minimum = 0D;
- chartArea1.AxisY.LabelStyle.Format = "N0";
- chartArea1.AxisY.MaximumAutoSize = 95F;
- chartArea1.Name = "ChartArea1";
- this.chart1.ChartAreas.Add(chartArea1);
+ chartArea3.AxisX.Maximum = 160D;
+ chartArea3.AxisX.Minimum = 0D;
+ chartArea3.AxisY.LabelStyle.Format = "N0";
+ chartArea3.AxisY.MaximumAutoSize = 95F;
+ chartArea3.Name = "ChartArea1";
+ this.chart1.ChartAreas.Add(chartArea3);
this.chart1.Dock = System.Windows.Forms.DockStyle.Fill;
- legend1.Name = "Legend1";
- this.chart1.Legends.Add(legend1);
+ legend3.Name = "Legend1";
+ this.chart1.Legends.Add(legend3);
this.chart1.Location = new System.Drawing.Point(0, 0);
this.chart1.Margin = new System.Windows.Forms.Padding(2);
this.chart1.Name = "chart1";
- series1.ChartArea = "ChartArea1";
- series1.Legend = "Legend1";
- series1.Name = "Series1";
- this.chart1.Series.Add(series1);
+ series3.ChartArea = "ChartArea1";
+ series3.Legend = "Legend1";
+ series3.Name = "Series1";
+ this.chart1.Series.Add(series3);
this.chart1.Size = new System.Drawing.Size(135, 218);
this.chart1.TabIndex = 3;
this.chart1.Text = "chart1";
@@ -1217,20 +1221,20 @@
this.chart3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- chartArea2.AxisX.LabelStyle.Format = "N0";
- chartArea2.AxisX.MaximumAutoSize = 95F;
- chartArea2.AxisX.Minimum = 0D;
- chartArea2.Name = "ChartArea1";
- this.chart3.ChartAreas.Add(chartArea2);
- legend2.Name = "Legend1";
- this.chart3.Legends.Add(legend2);
+ chartArea4.AxisX.LabelStyle.Format = "N0";
+ chartArea4.AxisX.MaximumAutoSize = 95F;
+ chartArea4.AxisX.Minimum = 0D;
+ chartArea4.Name = "ChartArea1";
+ this.chart3.ChartAreas.Add(chartArea4);
+ legend4.Name = "Legend1";
+ this.chart3.Legends.Add(legend4);
this.chart3.Location = new System.Drawing.Point(4, 30);
this.chart3.Margin = new System.Windows.Forms.Padding(2);
this.chart3.Name = "chart3";
- series2.ChartArea = "ChartArea1";
- series2.Legend = "Legend1";
- series2.Name = "Series1";
- this.chart3.Series.Add(series2);
+ series4.ChartArea = "ChartArea1";
+ series4.Legend = "Legend1";
+ series4.Name = "Series1";
+ this.chart3.Series.Add(series4);
this.chart3.Size = new System.Drawing.Size(500, 56);
this.chart3.TabIndex = 2;
this.chart3.Text = "chart3";
@@ -1313,20 +1317,20 @@
//
// skinDataGridView1
//
- dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(246)))), ((int)(((byte)(253)))));
- this.skinDataGridView1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
+ dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(246)))), ((int)(((byte)(253)))));
+ this.skinDataGridView1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6;
this.skinDataGridView1.BackgroundColor = System.Drawing.SystemColors.Window;
this.skinDataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.skinDataGridView1.ColumnFont = null;
this.skinDataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
- dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(246)))), ((int)(((byte)(239)))));
- dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.Window;
- dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.skinDataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
+ dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(246)))), ((int)(((byte)(239)))));
+ dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.Window;
+ dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.skinDataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7;
this.skinDataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.skinDataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colUid,
@@ -1341,14 +1345,14 @@
this.colZXD,
this.colTarget});
this.skinDataGridView1.ColumnSelectForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle3.BackColor = System.Drawing.Color.White;
- dataGridViewCellStyle3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(188)))), ((int)(((byte)(240)))));
- dataGridViewCellStyle3.SelectionForeColor = System.Drawing.Color.White;
- dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.skinDataGridView1.DefaultCellStyle = dataGridViewCellStyle3;
+ dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle8.BackColor = System.Drawing.Color.White;
+ dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(188)))), ((int)(((byte)(240)))));
+ dataGridViewCellStyle8.SelectionForeColor = System.Drawing.Color.White;
+ dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.skinDataGridView1.DefaultCellStyle = dataGridViewCellStyle8;
this.skinDataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.skinDataGridView1.EnableHeadersVisualStyles = false;
this.skinDataGridView1.GridColor = System.Drawing.SystemColors.GradientActiveCaption;
@@ -1358,21 +1362,21 @@
this.skinDataGridView1.Location = new System.Drawing.Point(0, 0);
this.skinDataGridView1.Name = "skinDataGridView1";
this.skinDataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
- dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.ButtonHighlight;
- dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.MenuText;
- dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.skinDataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
+ dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.ButtonHighlight;
+ dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.MenuText;
+ dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.skinDataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle9;
this.skinDataGridView1.RowHeadersWidth = 51;
this.skinDataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
- dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- this.skinDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle5;
+ dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ this.skinDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle10;
this.skinDataGridView1.RowTemplate.Height = 23;
this.skinDataGridView1.Size = new System.Drawing.Size(512, 131);
this.skinDataGridView1.TabIndex = 0;
@@ -1499,6 +1503,35 @@
this.ucKeyBorderAll1.Size = new System.Drawing.Size(753, 308);
this.ucKeyBorderAll1.TabIndex = 0;
//
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label9.Location = new System.Drawing.Point(194, 27);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(37, 20);
+ this.label9.TabIndex = 11;
+ this.label9.Text = "打标";
+ //
+ // ucSwitch2
+ //
+ this.ucSwitch2.BackColor = System.Drawing.Color.Transparent;
+ this.ucSwitch2.Checked = false;
+ this.ucSwitch2.FalseColor = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(189)))), ((int)(((byte)(189)))));
+ this.ucSwitch2.FalseTextColr = System.Drawing.Color.Black;
+ this.ucSwitch2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.ucSwitch2.Location = new System.Drawing.Point(270, 21);
+ this.ucSwitch2.Name = "ucSwitch2";
+ this.ucSwitch2.Size = new System.Drawing.Size(80, 28);
+ this.ucSwitch2.SwitchType = HZH_Controls.Controls.SwitchType.Ellipse;
+ this.ucSwitch2.TabIndex = 10;
+ this.ucSwitch2.Texts = new string[] {
+ "开启",
+ "关闭"};
+ this.ucSwitch2.TrueColor = System.Drawing.Color.Lime;
+ this.ucSwitch2.TrueTextColr = System.Drawing.Color.Black;
+ this.ucSwitch2.CheckedChanged += new System.EventHandler(this.ucSwitch2_CheckedChanged);
+ //
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -1678,6 +1711,8 @@
private System.Windows.Forms.DataGridViewTextBoxColumn colTarget;
private System.Windows.Forms.ToolStripStatusLabel stsSaveQueue;
private System.Windows.Forms.ToolStripStatusLabel tslabelTime;
+ private System.Windows.Forms.Label label9;
+ private HZH_Controls.Controls.UCSwitch ucSwitch2;
}
}
diff --git a/LeatherProject/GeBoShi/Main.cs b/LeatherProject/GeBoShi/Main.cs
index 71b9df4..16a19c0 100644
--- a/LeatherProject/GeBoShi/Main.cs
+++ b/LeatherProject/GeBoShi/Main.cs
@@ -187,6 +187,7 @@ namespace GeBoShi
lblDefectSpeed.Text = $"检测速度: 0 米/分钟";
ucSwitch1.Checked = SysMgr.Instance.GetDefectPause();
+ ucSwitch2.Checked = SysMgr.Instance.GetDefectDB();
this.Refresh();
imageBox3.RefreshWindow(null);
@@ -794,18 +795,18 @@ namespace GeBoShi
btn1.Name = "Pause";
btn1.HeaderText = "判断";
//btn1.DefaultCellStyle.va = "启用";
- btn1.Text = "启用";
+ btn1.Text = "开启";
btn1.UseColumnTextForButtonValue = false;
- btn1.DefaultCellStyle.NullValue = "启用";
+ btn1.DefaultCellStyle.NullValue = "开启";
btn1.DefaultCellStyle.BackColor = Color.LimeGreen;
dataGridView1.Columns.Add(btn1);
DataGridViewButtonColumn btn2 = new DataGridViewButtonColumn();
btn2.Name = "Print";
btn2.HeaderText = "打标";
- btn2.Text = "启用";
+ btn2.Text = "开启";
btn2.UseColumnTextForButtonValue = false;
- btn2.DefaultCellStyle.NullValue = "启用";
+ btn2.DefaultCellStyle.NullValue = "开启";
btn2.DefaultCellStyle.BackColor = Color.LimeGreen;
dataGridView1.Columns.Add(btn2);
@@ -1328,6 +1329,13 @@ namespace GeBoShi
#endregion
+ #region 打标
+ private void ucSwitch2_CheckedChanged(object sender, EventArgs e)
+ {
+ SysMgr.Instance.SetDefectDB(ucSwitch2.Checked);
+ }
+ #endregion
+
#region 控制光源
private void ucTrackBar1_ValueChanged(object sender, EventArgs e)
{
@@ -1348,7 +1356,7 @@ namespace GeBoShi
{
List namelist = new List();
DataGridViewButtonCell btn = (DataGridViewButtonCell)this.dataGridView1.CurrentCell;
- if (btn.FormattedValue.ToString() == "启用")
+ if (btn.FormattedValue.ToString() == "开启")
{
this.dataGridView1.CurrentCell.Value = "禁用";
this.dataGridView1.CurrentCell.Style.BackColor = Color.Red;
@@ -1356,14 +1364,14 @@ namespace GeBoShi
}
else
{
- this.dataGridView1.CurrentCell.Value = "启用";
+ this.dataGridView1.CurrentCell.Value = "开启";
this.dataGridView1.CurrentCell.Style.BackColor = Color.LimeGreen;
this.dataGridView1.CurrentCell.Style.ForeColor = Color.Black;
}
for (int i = 0; i < this.dataGridView1.RowCount; i++)
{
DataGridViewButtonCell btn2 = (DataGridViewButtonCell)this.dataGridView1.Rows[i].Cells[1];
- if (btn2.FormattedValue.ToString() == "启用")
+ if (btn2.FormattedValue.ToString() == "开启")
namelist.Add(this.dataGridView1.Rows[i].Cells[0].Value.ToString());
}
//开启该项二次判断功能
@@ -1374,7 +1382,7 @@ namespace GeBoShi
{
List namelist = new List();
DataGridViewButtonCell btn = (DataGridViewButtonCell)this.dataGridView1.CurrentCell;
- if (btn.FormattedValue.ToString() == "启用")
+ if (btn.FormattedValue.ToString() == "开启")
{
this.dataGridView1.CurrentCell.Value = "禁用";
this.dataGridView1.CurrentCell.Style.BackColor = Color.Red;
@@ -1382,14 +1390,14 @@ namespace GeBoShi
}
else
{
- this.dataGridView1.CurrentCell.Value = "启用";
+ this.dataGridView1.CurrentCell.Value = "开启";
this.dataGridView1.CurrentCell.Style.BackColor = Color.LimeGreen;
this.dataGridView1.CurrentCell.Style.ForeColor = Color.Black;
}
for (int i = 0; i < this.dataGridView1.RowCount; i++)
{
DataGridViewButtonCell btn2 = (DataGridViewButtonCell)this.dataGridView1.Rows[i].Cells[1];
- if (btn2.FormattedValue.ToString() == "启用")
+ if (btn2.FormattedValue.ToString() == "开启")
namelist.Add(this.dataGridView1.Rows[i].Cells[0].Value.ToString());
}
//开启该项打标功能
@@ -1444,5 +1452,7 @@ namespace GeBoShi
{
}
+
+
}
}
diff --git a/LeatherProject/GeBoShi/Main.resx b/LeatherProject/GeBoShi/Main.resx
index 634eed2..0177066 100644
--- a/LeatherProject/GeBoShi/Main.resx
+++ b/LeatherProject/GeBoShi/Main.resx
@@ -404,6 +404,15 @@
True
+
+ True
+
+
+ True
+
+
+ True
+
True
diff --git a/LeatherProject/GeBoShi/SysCtrl/SysEnum.cs b/LeatherProject/GeBoShi/SysCtrl/SysEnum.cs
index 59c3dc7..2ed5822 100644
--- a/LeatherProject/GeBoShi/SysCtrl/SysEnum.cs
+++ b/LeatherProject/GeBoShi/SysCtrl/SysEnum.cs
@@ -41,6 +41,8 @@ namespace GeBoShi.SysCtrl
复位 = 9,
停止 = 1,
+ 打标 = 2,
+
日光灯 = 15,
}
diff --git a/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs b/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs
index 6e688c4..d4e6f9f 100644
--- a/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs
+++ b/LeatherProject/GeBoShi/SysCtrl/SysMgr.cs
@@ -130,8 +130,18 @@ namespace GeBoShi.SysCtrl
///
///
private ConcurrentDictionary defectPuaseImgList = new ConcurrentDictionary();
+
+ private object lock_defectDB = new object();
+ ///
+ /// 需要打标缺陷
+ ///
+ private List defectDBList = new List();
+
+
//实时速度
private double ActiveSpeed = 0;
+ //实时位置
+ private double ActiveDis = 0;
//图片队列
private int listCntMax = 60;
private int Cam1Cnt = 0;
@@ -144,6 +154,10 @@ namespace GeBoShi.SysCtrl
///
private bool DefectPauseForUser = true;
///
+ /// 界面打标开启
+ ///
+ private bool DefectDBForUser = true;
+ ///
/// 第一次计米启用
///
private bool JmFtStart = false;
@@ -166,11 +180,12 @@ namespace GeBoShi.SysCtrl
photoIndex = _photoIndex;
path = _path;
}
- public ScanPhotoInfo(int _devIndex, int _photoIndex, Mat _mat)
+ public ScanPhotoInfo(int _devIndex, int _photoIndex, Mat _mat, double dis = 0)
{
devIndex = _devIndex;
photoIndex = _photoIndex;
mat = _mat;
+ CurrDis = dis;
}
public int devIndex { get; set; }
///
@@ -180,6 +195,8 @@ namespace GeBoShi.SysCtrl
public string path { get; set; }
public Mat mat { get; set; }
+ public double CurrDis { get; set; }
+
}
#endregion
private ConcurrentQueue _matList1 = new ConcurrentQueue();
@@ -529,6 +546,18 @@ namespace GeBoShi.SysCtrl
}
#endregion
+ #region 打标开关
+ public void SetDefectDB(bool val)
+ {
+ DefectDBForUser = val;
+ }
+
+ public bool GetDefectDB()
+ {
+ return DefectDBForUser;
+ }
+ #endregion
+
#region 界面光源设置
public void SetLightValue(int val)
{
@@ -607,8 +636,11 @@ namespace GeBoShi.SysCtrl
#endregion
#region 后台
+
+ #region 计米器位置和速度
private object LockSpd = new object();
- private void SedSpd(double spd)
+ private object LockDis = new object();
+ private void SetSpd(double spd)
{
lock (LockSpd)
{
@@ -624,6 +656,25 @@ namespace GeBoShi.SysCtrl
}
return spd;
}
+ private void SetDis(double dis)
+ {
+ lock (LockDis)
+ {
+ ActiveDis = dis;
+ }
+ }
+ private double GetDis()
+ {
+ double dis;
+ lock (LockDis)
+ {
+ dis = ActiveDis;
+ }
+ return dis;
+ }
+ #endregion
+
+ #region 中断
///
/// 中断工序运行
///
@@ -632,7 +683,9 @@ namespace GeBoShi.SysCtrl
{
return statusMgr.Status == SystemStsEnum.Pause || statusMgr.Warning == WarningEnum.High;
}
+ #endregion
+ #region 长度与速度流程
///
/// 获取速度和长度
///
@@ -671,6 +724,7 @@ namespace GeBoShi.SysCtrl
double length = GetLength();
if (length >= 0)
{
+
if (!JmFtStart)
{
//第一次记录起始数据
@@ -697,7 +751,7 @@ namespace GeBoShi.SysCtrl
//}
preSpd = spd;
- SedSpd(spd);
+ SetSpd(spd);
if (spdcnt > 2)
{
@@ -710,6 +764,7 @@ namespace GeBoShi.SysCtrl
}
etl = length;//记录当前读数
yqjimi = Math.Round((etl - stl) / 1.00, 2); //记录长度
+ SetDis(yqjimi);
}
lock (lockCurrKey)
{
@@ -728,7 +783,7 @@ namespace GeBoShi.SysCtrl
double StopDecRunDis = tRunSpd / 60.0 * confMgr.SysConfigParams.StopDecTime / 2;
double atcDis = (confMgr.SysConfigParams.StopLookDis - StopDecRunDis);
- //计米器判断暂停:瑕疵二次判断
+ //计米器判断暂停:瑕疵二次判断 存在问题
if (confMgr.SysConfigParams.OpenLengthCountStop && DefectPauseForUser && defectPuaseList.Count > 0)
{
if ((yqjimi - atcDis) > (defectPuaseList[0].Y / 100))
@@ -809,6 +864,19 @@ namespace GeBoShi.SysCtrl
}
}
+
+ //计米器判定打标
+ if(DefectDBForUser && defectDBList.Count >0)
+ {
+ //判断是否开启打标
+ if((yqjimi - defectDBList[0].CurrDis + (defectDBList[0].PicY / 100) - confMgr.SysConfigParams.CamToDBDis) >= 0)
+ {
+ Log($"打标", $"计米器{yqjimi},瑕疵位置{defectDBList[0].PicY / 100},拍照位置{defectDBList[0].CurrDis},打标机距离{confMgr.SysConfigParams.StopLookDis}m,", WarningEnum.Normal, false);
+ StartDB();
+ Log($"打标判断删除", $"{defectDBList[0].PhotoIndex}-{defectDBList[0].Name}", WarningEnum.Normal, false);
+ defectDBList.RemoveAt(0);
+ }
+ }
#endregion
}
}
@@ -865,6 +933,9 @@ namespace GeBoShi.SysCtrl
}
}
}
+ #endregion
+
+ #region 相机线程1 && 二次判定
///
/// 相机1采图预处理
///
@@ -1146,6 +1217,9 @@ namespace GeBoShi.SysCtrl
}
}
}
+ #endregion
+
+ #region 相机线程2 && 图片位置
///
/// 相机2采图预处理
///
@@ -1188,6 +1262,9 @@ namespace GeBoShi.SysCtrl
if (acq.GrabStatus == "GrabPass")
{
#endif
+ //获取图片成功,说明正好拍完照片,获取当前计米器位置
+ double picDis = GetDis();
+
Mat img = acq.Image.Clone();
//预处理
Stopwatch stopWatch = new Stopwatch();
@@ -1277,7 +1354,7 @@ namespace GeBoShi.SysCtrl
}
//Log($"图像2入队列", $"相机2-{Cam1Cnt}", WarningEnum.Normal, false);
//Cv2.Flip(img, img, FlipMode.XY);//翻转
- _matList2.Enqueue(new ScanPhotoInfo(1, Cam2Cnt++, mat.Clone()));
+ _matList2.Enqueue(new ScanPhotoInfo(1, Cam2Cnt++, mat.Clone(), picDis));
//System.GC.Collect();
}
else
@@ -1310,6 +1387,9 @@ namespace GeBoShi.SysCtrl
}
}
}
+ #endregion
+
+ #region 处理线程
int testCnt = 0;
///
/// 后台运行主线程
@@ -1663,7 +1743,7 @@ namespace GeBoShi.SysCtrl
//Log($"图像拼接处理", $"相机1-{scanPhotos0.photoIndex},相机2-{scanPhotos1.photoIndex}", WarningEnum.Normal, false);
- string time = "";
+ string time = $"图像位置:{scanPhotos1.CurrDis}";
stopWatch.Start();
try
{
@@ -1880,6 +1960,7 @@ namespace GeBoShi.SysCtrl
cm2px_x = confMgr.SysConfigParams.Cm2px_x,
cm2px_y = confMgr.SysConfigParams.Cm2px_y,
expand_pixel = confMgr.SysConfigParams.Expand_pixel,
+ CurrDis = scanPhotos1.CurrDis,
});
curRecord.ScannerPhotoCount++;
errStep = 10;
@@ -1930,9 +2011,9 @@ namespace GeBoShi.SysCtrl
}
}
}
+ #endregion
-
-#endregion
+ #endregion
#region 模型label
private JArray _defectItemList;
@@ -2116,10 +2197,13 @@ namespace GeBoShi.SysCtrl
Contrast = double.Parse(res.excelTable.Rows[i]["对比度"].ToString()),
Target = int.Parse(res.excelTable.Rows[i]["目标"].ToString()),
image = res.lstDefectBmp[i].Clone(),
+ PicY = double.Parse(res.excelTable.Rows[i]["Y"].ToString()),//cm
+ CurrDis = res.CurrDis,
};
defectInfo.ModifyUserCode = defectInfo.CreateUserCode = res.record.CreateUserCode;
step = 6 + i * 10;
+ //判定是否加入二次判断
if (DefectItemsPuaseNameList.Contains(defectInfo.Name))
{
lock (lock_defectPuase)
@@ -2129,7 +2213,14 @@ namespace GeBoShi.SysCtrl
if (!defectPuaseImgList.ContainsKey(res.photoIndex))
defectPuaseImgList.TryAdd(res.photoIndex, res.bmpTag.Clone());
}
-
+ //判定是否加入打标
+ if (DefectItemsDBNameList.Contains(defectInfo.Name))
+ {
+ lock (lock_defectDB)
+ {
+ defectDBList.Add(defectInfo);
+ }
+ }
res.record.DefectInfoList.Add(defectInfo);
defectInfo.uid = preTicks++;// res.record.DefectInfoList.Count;//程序中的唯一索引,用于移除用索引
@@ -3400,6 +3491,7 @@ namespace GeBoShi.SysCtrl
Cam2Cnt = 0;
defectPuaseList.Clear();
+ defectDBList.Clear();
defectPuaseImgList.Clear();
System.GC.Collect();
@@ -3722,6 +3814,22 @@ namespace GeBoShi.SysCtrl
}
#endregion
+ #region 启动打标
+ public void StartDB()
+ {
+ if (confMgr.SysConfigParams.OpenIO)
+ {
+ bool sts;
+ ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.打标), GetIOBitIndex((int)DOName.打标), true);
+ Task.Run(async () =>
+ {
+ await Task.Delay(200);
+ ioCardDev.WriteBitState(GetIOPortIndex((int)DOName.打标), GetIOBitIndex((int)DOName.打标), false);
+ });
+
+ }
+ }
+ #endregion
}
#region 系统事件
///
diff --git a/LeatherProject/Models/Records.cs b/LeatherProject/Models/Records.cs
index a93d2a9..7e4cdb0 100644
--- a/LeatherProject/Models/Records.cs
+++ b/LeatherProject/Models/Records.cs
@@ -210,5 +210,16 @@ namespace Models
public string Name { get; set; }
[SugarColumn(IsIgnore = true)]
public string TagFilePath { get; set; }//打标小图路径,用于二次瑕疵检测修改和忽略时的改名/删除
+
+ ///
+ /// 图片中缺陷当前Y方向位置
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public double PicY { get; set; }
+ ///
+ /// 当前图像计米器位置
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public double CurrDis { get; set; }
}
}