V1.0 20240521 现场使用版

This commit is contained in:
CPL 2024-05-21 14:22:10 +08:00
parent c52e6502f1
commit 4691fa5919
61 changed files with 5750 additions and 12211 deletions

View File

@ -22,6 +22,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -33,8 +34,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>
</ApplicationIcon>
<ApplicationIcon>Ge.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="BarTenderPrint">
@ -43,6 +43,7 @@
<Reference Include="CSkin">
<HintPath>..\..\..\..\..\..\模块化\Code\MaiMuControl\MaiMuControl\bin\x64\Debug\CSkin.dll</HintPath>
</Reference>
<Reference Include="halcondotnet, Version=21.5.0.0, Culture=neutral, PublicKeyToken=4973bed59ddbf2b8" />
<Reference Include="HZH_Controls">
<HintPath>..\..\..\..\..\版博士\源码\V2.0\halftoneproject-master\BanBoShi\Dlls\HZH_Controls.dll</HintPath>
</Reference>
@ -53,12 +54,14 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Models\bin\Debug\Models.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" />
<Reference Include="OpenCvSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6adad1e807fea099, processorArchitecture=MSIL">
<HintPath>..\packages\OpenCvSharp4.4.8.0.20230708\lib\net48\OpenCvSharp.dll</HintPath>
</Reference>
<Reference Include="OpenCvSharp.Extensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6adad1e807fea099, processorArchitecture=MSIL">
<HintPath>..\packages\OpenCvSharp4.Extensions.4.7.0.20230115\lib\net48\OpenCvSharp.Extensions.dll</HintPath>
</Reference>
<Reference Include="S7.Net, Version=0.20.0.0, Culture=neutral, PublicKeyToken=d5812d469e84c693" />
<Reference Include="Service">
<HintPath>..\Service\bin\Debug\Service.dll</HintPath>
</Reference>
@ -112,8 +115,10 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SysCtrl\ConfMgr.cs" />
<Compile Include="SysCtrl\OpencvUtils.cs" />
<Compile Include="SysCtrl\SysEnum.cs" />
<Compile Include="SysCtrl\SysMgr.cs" />
<Compile Include="SysCtrl\Utils.cs" />
<Compile Include="UI\Load\InitFrm.cs">
<SubType>Form</SubType>
</Compile>
@ -181,5 +186,8 @@
<ItemGroup>
<None Include="Ge.ico" />
</ItemGroup>
<ItemGroup>
<Content Include="e1.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -1,7 +1,10 @@
using HZH_Controls.Controls;
using CCWin.Win32.Const;
using GeBoShi.SysCtrl;
using HZH_Controls.Controls;
using MaiMuControl.Device;
using Models;
using OpenCvSharp;
using S7.Net.Types;
using System;
using System.Collections.Generic;
using System.Data;
@ -180,6 +183,22 @@ namespace GeBoShi.ImageDefect
return array;
}
public static string ToGB2312(int codepage, string str)
{
try
{
Encoding cp850 = Encoding.GetEncoding(codepage);
Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
byte[] temp = cp850.GetBytes(str);
return Encoding.GetEncoding("gb2312").GetString(temp, 0, temp.Length);
}
catch (Exception ex)//(UnsupportedEncodingException ex)
{
Console.Write(ex.Message);
return null;
}
}
private void runStep()
{
int step = 0;
@ -211,9 +230,11 @@ namespace GeBoShi.ImageDefect
detector = IntPtr.Zero;
}
step = 5;
detector = CreateDetector($"./models/{task.modelName}");
string modelPath = $"{ConfMgr.Instance.SysConfigParams.AIModelPath}\\{task.modelName}";
detector = CreateDetector(modelPath);
if (detector == IntPtr.Zero)
throw new Exception($"模型({task.modelName})初始化失败!");
throw new Exception($"模型({modelPath})初始化失败!");
step = 6;
preModelName = task.modelName;
}
@ -379,8 +400,8 @@ namespace GeBoShi.ImageDefect
//y = image_hight-y-h;//转到右下角为原点
count++;
var cmW = Math.Round(w * task.widthRatio / task.cm2px_x, 2);
var cmH = Math.Round(h * task.widthRatio / task.cm2px_y, 2);
//var cmW = Math.Round(w * task.widthRatio / task.cm2px_x, 2);
//var cmH = Math.Round(h * task.widthRatio / task.cm2px_y, 2);
// 打印输出信息
task.resultInfo += $"----{i}----col:{i % colNum}/{colNum} row:{i / colNum}/{colNum}-----------\n目标:{j + 1} 类别ID:{classId} 置信度:{confidence} 对比度:{contrast} 坐标:({x},{y})-({x + w},{y + h}) 宽高:w={w},h={h}; \n";
@ -403,6 +424,12 @@ namespace GeBoShi.ImageDefect
#endregion
}
#region
if(DefectLabelInfoList.Count >0)
DefectLabelInfoList = HeBingDefect(task.bmp.Width, "jietou", DefectLabelInfoList);
if (DefectLabelInfoList.Count > 0)
DefectLabelInfoList = HeBingDefect(task.bmp.Width, "hengdang", DefectLabelInfoList);
#endregion
//结果过滤
#region
//降序排序,先得到是否有接头检出
@ -465,12 +492,14 @@ namespace GeBoShi.ImageDefect
liStep++;//2
task.resultInfo += $" 转换到大图坐标(px)p1={point1.X},{point1.Y}; p2={point2.X},{point2.Y}\n";
Cv2.Rectangle(task.bmpTag, point1, point2, new Scalar(0.0, 0.0, 255.0), 1);//画打标点
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"保存第 {count} 行缺陷信息;");
var cmX = Math.Round(point1.X * task.widthRatio / task.cm2px_x, 2);
int px = (point1.X - task.xw) > 0 ? (point1.X - task.xw) : 0;
var cmX = Math.Round(px * task.widthRatio / task.cm2px_x, 2);
var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoList[q].h) * task.widthRatio / task.cm2px_y, 2);//外面计Y从右下角为原点
liStep++;//3
task.resultInfo += $" 转换到大图坐标(cm)[widthRatio={task.widthRatio}]x={cmX},y={cmY}; w={DefectLabelInfoList[q].cmW},h={DefectLabelInfoList[q].cmH}\n";
task.excelTable.Rows.Add($"{task.photoIndex}", cmX, cmY, DefectLabelInfoList[q].cmW, DefectLabelInfoList[q].cmH, DefectLabelInfoList[q].j + 1, DefectLabelInfoList[q].classId, DefectLabelInfoList[q].confidence, DefectLabelInfoList[q].contrast);
task.excelTable.Rows.Add($"{task.photoIndex}", cmX, cmY, DefectLabelInfoList[q].cmW, DefectLabelInfoList[q].cmH, DefectLabelInfoList[q].j + 1, DefectLabelInfoList[q].classId, DefectLabelInfoList[q].confidence, Utils.ContrastToPercent(DefectLabelInfoList[q].contrast));
liStep++;//4
//切缺陷小图
@ -522,6 +551,73 @@ namespace GeBoShi.ImageDefect
}
}
#region
private List<DefectLabelInfo> HeBingDefect(int Width, string label, List<DefectLabelInfo> DefectLabelInfoList)
{
int fw = 500;
List<DefectLabelInfo> outList = new List<DefectLabelInfo>();
List<DefectLabelInfo> HeBingList = new List<DefectLabelInfo>();
List<DefectLabelInfo> XcHeBingList = new List<DefectLabelInfo>();
List<int> xPos = new List<int>();
List<double> xZXD = new List<double>();
DefectLabelInfo stpoint = DefectLabelInfoList[0];
int colNum = Width / image_width;
//寻找在一条线上
for (int q = 0; q < DefectLabelInfoList.Count; q++)
{
if (SysMgr.Instance.GetDefectCode()[DefectLabelInfoList[q].classId] == label)
{
int max = stpoint.y + fw;
int min = stpoint.y - fw > 0 ? stpoint.y - fw : 0;
if (DefectLabelInfoList[q].y >= min && DefectLabelInfoList[q].y <= max)
{
HeBingList.Add(DefectLabelInfoList[q]);
xPos.Add(DefectLabelInfoList[q].x);
xZXD.Add(DefectLabelInfoList[q].confidence);
}
else
XcHeBingList.Add(DefectLabelInfoList[q]);
}
else
outList.Add(DefectLabelInfoList[q]);
}
//递归下次合并数据
List<DefectLabelInfo> dg1 = new List<DefectLabelInfo>();
if (XcHeBingList.Count > 0)
dg1 = HeBingDefect(Width, label, XcHeBingList);
//多个jietou合并
if (HeBingList.Count > 0)
{
var stIt = HeBingList.Find(x => x.x == xPos.Min());
var edIt = HeBingList.Find(x => x.x == xPos.Max());
var eZXD = HeBingList.Find(x => x.confidence == xZXD.Max());
int newW = Math.Abs((edIt.i % colNum) * image_width + edIt.x) - ((stIt.i % colNum) * image_width + stIt.x) + edIt.w;
outList.Add(new DefectLabelInfo()
{
x = stIt.x,
y = edIt.y,
w = newW, //多图叠加
h = edIt.h,
classId = eZXD.classId,
confidence = eZXD.confidence,
contrast = eZXD.contrast,
cmH = Math.Round(edIt.h * 1.0 / ConfMgr.Instance.SysConfigParams.Cm2px_y, 2),
cmW = Math.Round(newW * 1.0 / ConfMgr.Instance.SysConfigParams.Cm2px_x, 2),
i = stIt.i,
j = stIt.j,
});
}
outList = outList.Concat(dg1).ToList<DefectLabelInfo>();//保留重复项
return outList;
}
#endregion
#region
private void callback(DefectTask task)
{
@ -693,5 +789,10 @@ namespace GeBoShi.ImageDefect
/// </summary>
public DataTable excelTable = new DataTable();
public long[] stopwatch = new long[4];
/// <summary>
/// 等比例填充的宽度
/// </summary>
public int xw;
}
}

View File

@ -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 chartArea5 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend5 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea6 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend6 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
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();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnImpStop = new System.Windows.Forms.ToolStripButton();
@ -120,15 +120,27 @@
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.panel4 = new System.Windows.Forms.Panel();
this.skinDataGridView1 = new CCWin.SkinControl.SkinDataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.tsAxisState = new System.Windows.Forms.ToolStripStatusLabel();
this.tsslLoginTime = new System.Windows.Forms.ToolStripStatusLabel();
this.tsslLoginInfo = new System.Windows.Forms.ToolStripStatusLabel();
this.tslabelTime = new System.Windows.Forms.ToolStripStatusLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.colUid = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colIndex = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colDefectName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colX = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colY = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colW = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colH = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colArea = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colZXD = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colTarget = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.uiTitel1 = new MaiMuControl.UIKits.MaiMuMenu.UITitel();
this.lblDefectSpeed = new System.Windows.Forms.Label();
this.lblDefectLen = new System.Windows.Forms.Label();
this.toolStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@ -214,6 +226,7 @@
this.tsbtnImpStop.Size = new System.Drawing.Size(60, 53);
this.tsbtnImpStop.Text = "结束验布";
this.tsbtnImpStop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnImpStop.Click += new System.EventHandler(this.tsbtnImpStop_Click);
//
// tsbtnStart
//
@ -225,6 +238,7 @@
this.tsbtnStart.Size = new System.Drawing.Size(60, 53);
this.tsbtnStart.Text = "开始验布";
this.tsbtnStart.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnStart.Click += new System.EventHandler(this.tsbtnStart_Click);
//
// tsbtnStop
//
@ -236,6 +250,7 @@
this.tsbtnStop.Size = new System.Drawing.Size(52, 53);
this.tsbtnStop.Text = " 暂停 ";
this.tsbtnStop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnStop.Click += new System.EventHandler(this.tsbtnStop_Click);
//
// toolStripSeparator2
//
@ -252,6 +267,7 @@
this.tsbtnWarning.Size = new System.Drawing.Size(60, 53);
this.tsbtnWarning.Text = "解除报警";
this.tsbtnWarning.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnWarning.Click += new System.EventHandler(this.tsbtnWarning_Click);
//
// toolStripSeparator3
//
@ -268,6 +284,8 @@
this.tsbtnReset.Size = new System.Drawing.Size(52, 53);
this.tsbtnReset.Text = " 复位 ";
this.tsbtnReset.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnReset.Visible = false;
this.tsbtnReset.Click += new System.EventHandler(this.tsbtnReset_Click);
//
// tsbGoHome
//
@ -279,6 +297,7 @@
this.tsbGoHome.Size = new System.Drawing.Size(60, 53);
this.tsbGoHome.Text = "硬件重启";
this.tsbGoHome.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbGoHome.Click += new System.EventHandler(this.tsbGoHome_Click);
//
// menuStrip1
//
@ -314,20 +333,20 @@
this.tsmPdtMgr.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tsmPdtMgr.Image = ((System.Drawing.Image)(resources.GetObject("tsmPdtMgr.Image")));
this.tsmPdtMgr.Name = "tsmPdtMgr";
this.tsmPdtMgr.Size = new System.Drawing.Size(124, 22);
this.tsmPdtMgr.Size = new System.Drawing.Size(180, 22);
this.tsmPdtMgr.Text = "检测管理";
this.tsmPdtMgr.Click += new System.EventHandler(this.tsmPdtMgr_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(121, 6);
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
//
// 退出ToolStripMenuItem
//
this.退ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("退出ToolStripMenuItem.Image")));
this.退ToolStripMenuItem.Name = "退出ToolStripMenuItem";
this.退ToolStripMenuItem.Size = new System.Drawing.Size(124, 22);
this.退ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.退ToolStripMenuItem.Text = "退出";
this.退ToolStripMenuItem.Click += new System.EventHandler(this.退ToolStripMenuItem_Click);
//
@ -393,21 +412,22 @@
//
this.tsmSysSet.Image = ((System.Drawing.Image)(resources.GetObject("tsmSysSet.Image")));
this.tsmSysSet.Name = "tsmSysSet";
this.tsmSysSet.Size = new System.Drawing.Size(124, 22);
this.tsmSysSet.Size = new System.Drawing.Size(180, 22);
this.tsmSysSet.Text = "系统设置";
this.tsmSysSet.Click += new System.EventHandler(this.tsmSysSet_Click);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(121, 6);
this.toolStripSeparator5.Size = new System.Drawing.Size(177, 6);
//
// tsmDebug
//
this.tsmDebug.Image = ((System.Drawing.Image)(resources.GetObject("tsmDebug.Image")));
this.tsmDebug.Name = "tsmDebug";
this.tsmDebug.Size = new System.Drawing.Size(124, 22);
this.tsmDebug.Size = new System.Drawing.Size(180, 22);
this.tsmDebug.Text = "调试";
this.tsmDebug.Click += new System.EventHandler(this.tsmDebug_Click);
//
// tsmHelp
//
@ -428,32 +448,32 @@
//
this.tsmReadLog.Image = ((System.Drawing.Image)(resources.GetObject("tsmReadLog.Image")));
this.tsmReadLog.Name = "tsmReadLog";
this.tsmReadLog.Size = new System.Drawing.Size(148, 22);
this.tsmReadLog.Size = new System.Drawing.Size(180, 22);
this.tsmReadLog.Text = "日志查询";
//
// toolStripSeparator6
//
this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(145, 6);
this.toolStripSeparator6.Size = new System.Drawing.Size(177, 6);
//
// tsmHelpInfo
//
this.tsmHelpInfo.Image = ((System.Drawing.Image)(resources.GetObject("tsmHelpInfo.Image")));
this.tsmHelpInfo.Name = "tsmHelpInfo";
this.tsmHelpInfo.Size = new System.Drawing.Size(148, 22);
this.tsmHelpInfo.Size = new System.Drawing.Size(180, 22);
this.tsmHelpInfo.Text = "帮助";
//
// tsmInfoUS
//
this.tsmInfoUS.Image = ((System.Drawing.Image)(resources.GetObject("tsmInfoUS.Image")));
this.tsmInfoUS.Name = "tsmInfoUS";
this.tsmInfoUS.Size = new System.Drawing.Size(148, 22);
this.tsmInfoUS.Size = new System.Drawing.Size(180, 22);
this.tsmInfoUS.Text = "关于";
//
// tsmSoftFile
//
this.tsmSoftFile.Name = "tsmSoftFile";
this.tsmSoftFile.Size = new System.Drawing.Size(148, 22);
this.tsmSoftFile.Size = new System.Drawing.Size(180, 22);
this.tsmSoftFile.Text = "软件使用说明";
//
// splitContainer1
@ -485,9 +505,9 @@
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 244F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 251F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 144F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(381, 496);
this.tableLayoutPanel1.TabIndex = 0;
//
@ -502,7 +522,7 @@
this.gpbProductInfo.Margin = new System.Windows.Forms.Padding(2);
this.gpbProductInfo.Name = "gpbProductInfo";
this.gpbProductInfo.Padding = new System.Windows.Forms.Padding(2);
this.gpbProductInfo.Size = new System.Drawing.Size(377, 240);
this.gpbProductInfo.Size = new System.Drawing.Size(377, 247);
this.gpbProductInfo.TabIndex = 4;
this.gpbProductInfo.TabStop = false;
this.gpbProductInfo.Text = "产品信息";
@ -526,7 +546,7 @@
this.panel1.Location = new System.Drawing.Point(2, 16);
this.panel1.Margin = new System.Windows.Forms.Padding(2);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(373, 222);
this.panel1.Size = new System.Drawing.Size(373, 229);
this.panel1.TabIndex = 0;
//
// cbDefectCode
@ -703,9 +723,9 @@
//
this.panel2.Controls.Add(this.groupBox2);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(3, 247);
this.panel2.Location = new System.Drawing.Point(3, 254);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(375, 100);
this.panel2.Size = new System.Drawing.Size(375, 95);
this.panel2.TabIndex = 5;
//
// groupBox2
@ -721,7 +741,7 @@
this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
this.groupBox2.Size = new System.Drawing.Size(375, 100);
this.groupBox2.Size = new System.Drawing.Size(375, 95);
this.groupBox2.TabIndex = 8;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "检测控制";
@ -730,7 +750,7 @@
//
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(37, 65);
this.label7.Location = new System.Drawing.Point(39, 59);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(93, 20);
this.label7.TabIndex = 8;
@ -753,9 +773,9 @@
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(187, 59);
this.ucSwitch1.Location = new System.Drawing.Point(177, 53);
this.ucSwitch1.Name = "ucSwitch1";
this.ucSwitch1.Size = new System.Drawing.Size(83, 31);
this.ucSwitch1.Size = new System.Drawing.Size(80, 28);
this.ucSwitch1.SwitchType = HZH_Controls.Controls.SwitchType.Ellipse;
this.ucSwitch1.TabIndex = 0;
this.ucSwitch1.Texts = new string[] {
@ -786,9 +806,9 @@
//
this.panel3.Controls.Add(this.gpbLog);
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(3, 353);
this.panel3.Location = new System.Drawing.Point(3, 355);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(375, 140);
this.panel3.Size = new System.Drawing.Size(375, 138);
this.panel3.TabIndex = 6;
//
// gpbLog
@ -803,7 +823,7 @@
this.gpbLog.Margin = new System.Windows.Forms.Padding(2);
this.gpbLog.Name = "gpbLog";
this.gpbLog.Padding = new System.Windows.Forms.Padding(2);
this.gpbLog.Size = new System.Drawing.Size(375, 119);
this.gpbLog.Size = new System.Drawing.Size(375, 117);
this.gpbLog.TabIndex = 7;
this.gpbLog.TabStop = false;
this.gpbLog.Text = "日志信息";
@ -817,8 +837,9 @@
this.lstLog.ItemHeight = 16;
this.lstLog.Location = new System.Drawing.Point(2, 16);
this.lstLog.Name = "lstLog";
this.lstLog.Size = new System.Drawing.Size(371, 101);
this.lstLog.Size = new System.Drawing.Size(371, 99);
this.lstLog.TabIndex = 27;
this.lstLog.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.lstLog_DrawItem);
//
// splitContainer2
//
@ -834,7 +855,7 @@
//
this.splitContainer2.Panel2.Controls.Add(this.tableLayoutPanel3);
this.splitContainer2.Size = new System.Drawing.Size(760, 496);
this.splitContainer2.SplitterDistance = 483;
this.splitContainer2.SplitterDistance = 482;
this.splitContainer2.TabIndex = 0;
//
// splitContainer3
@ -851,7 +872,7 @@
// splitContainer3.Panel2
//
this.splitContainer3.Panel2.Controls.Add(this.skinTabImage);
this.splitContainer3.Size = new System.Drawing.Size(483, 496);
this.splitContainer3.Size = new System.Drawing.Size(482, 496);
this.splitContainer3.SplitterDistance = 245;
this.splitContainer3.TabIndex = 0;
//
@ -866,7 +887,7 @@
this.groupBox3.Margin = new System.Windows.Forms.Padding(2);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Padding = new System.Windows.Forms.Padding(2);
this.groupBox3.Size = new System.Drawing.Size(483, 245);
this.groupBox3.Size = new System.Drawing.Size(482, 245);
this.groupBox3.TabIndex = 6;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "瑕疵分布";
@ -879,23 +900,38 @@
this.panel5.Location = new System.Drawing.Point(2, 16);
this.panel5.Margin = new System.Windows.Forms.Padding(2);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(479, 227);
this.panel5.Size = new System.Drawing.Size(478, 227);
this.panel5.TabIndex = 0;
//
// chart1
//
chartArea5.Name = "ChartArea1";
this.chart1.ChartAreas.Add(chartArea5);
chartArea1.AxisX.LabelStyle.Format = "N0";
chartArea1.AxisX.Maximum = 160D;
chartArea1.AxisX.Minimum = 0D;
chartArea1.AxisY.Interval = 5D;
chartArea1.AxisY.LabelStyle.Format = "N0";
chartArea1.AxisY.MaximumAutoSize = 90F;
chartArea1.AxisY.Minimum = 0D;
chartArea1.AxisY.ScaleView.MinSize = 1D;
chartArea1.AxisY.ScaleView.Size = 20D;
chartArea1.AxisY.ScaleView.Zoomable = false;
chartArea1.AxisY.ScrollBar.BackColor = System.Drawing.Color.WhiteSmoke;
chartArea1.AxisY.ScrollBar.ButtonColor = System.Drawing.Color.LightGray;
chartArea1.AxisY.ScrollBar.ButtonStyle = System.Windows.Forms.DataVisualization.Charting.ScrollBarButtonStyles.SmallScroll;
chartArea1.AxisY.ScrollBar.IsPositionedInside = false;
chartArea1.AxisY.ScrollBar.LineColor = System.Drawing.Color.Gray;
chartArea1.Name = "ChartArea1";
this.chart1.ChartAreas.Add(chartArea1);
this.chart1.Dock = System.Windows.Forms.DockStyle.Fill;
legend5.Name = "Legend1";
this.chart1.Legends.Add(legend5);
legend1.Name = "Legend1";
this.chart1.Legends.Add(legend1);
this.chart1.Location = new System.Drawing.Point(0, 0);
this.chart1.Name = "chart1";
series5.ChartArea = "ChartArea1";
series5.Legend = "Legend1";
series5.Name = "Series1";
this.chart1.Series.Add(series5);
this.chart1.Size = new System.Drawing.Size(479, 227);
series1.ChartArea = "ChartArea1";
series1.Legend = "Legend1";
series1.Name = "Series1";
this.chart1.Series.Add(series1);
this.chart1.Size = new System.Drawing.Size(478, 227);
this.chart1.TabIndex = 0;
this.chart1.Text = "chart1";
//
@ -910,7 +946,7 @@
this.skinTabImage.Controls.Add(this.skinTabPage2);
this.skinTabImage.HeadBack = null;
this.skinTabImage.ImgTxtOffset = new System.Drawing.Point(0, 0);
this.skinTabImage.ItemSize = new System.Drawing.Size(240, 36);
this.skinTabImage.ItemSize = new System.Drawing.Size(239, 36);
this.skinTabImage.ItemStretch = true;
this.skinTabImage.Location = new System.Drawing.Point(0, 0);
this.skinTabImage.Name = "skinTabImage";
@ -925,8 +961,8 @@
this.skinTabImage.PageImagePosition = CCWin.SkinControl.SkinTabControl.ePageImagePosition.Left;
this.skinTabImage.PageNorml = null;
this.skinTabImage.PageNormlTxtColor = System.Drawing.Color.White;
this.skinTabImage.SelectedIndex = 0;
this.skinTabImage.Size = new System.Drawing.Size(483, 222);
this.skinTabImage.SelectedIndex = 1;
this.skinTabImage.Size = new System.Drawing.Size(482, 222);
this.skinTabImage.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.skinTabImage.TabIndex = 0;
//
@ -938,7 +974,7 @@
this.skinTabPage1.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.skinTabPage1.Location = new System.Drawing.Point(0, 36);
this.skinTabPage1.Name = "skinTabPage1";
this.skinTabPage1.Size = new System.Drawing.Size(483, 186);
this.skinTabPage1.Size = new System.Drawing.Size(482, 186);
this.skinTabPage1.TabIndex = 0;
this.skinTabPage1.TabItemImage = null;
this.skinTabPage1.Text = "实时采集图像";
@ -955,7 +991,7 @@
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 1;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(483, 186);
this.tableLayoutPanel2.Size = new System.Drawing.Size(482, 186);
this.tableLayoutPanel2.TabIndex = 0;
//
// pictureBox3
@ -966,7 +1002,7 @@
this.pictureBox3.Location = new System.Drawing.Point(243, 2);
this.pictureBox3.Margin = new System.Windows.Forms.Padding(2);
this.pictureBox3.Name = "pictureBox3";
this.pictureBox3.Size = new System.Drawing.Size(238, 182);
this.pictureBox3.Size = new System.Drawing.Size(237, 182);
this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox3.TabIndex = 12;
this.pictureBox3.TabStop = false;
@ -992,7 +1028,7 @@
this.skinTabPage2.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
this.skinTabPage2.Location = new System.Drawing.Point(0, 36);
this.skinTabPage2.Name = "skinTabPage2";
this.skinTabPage2.Size = new System.Drawing.Size(483, 186);
this.skinTabPage2.Size = new System.Drawing.Size(482, 186);
this.skinTabPage2.TabIndex = 1;
this.skinTabPage2.TabItemImage = null;
this.skinTabPage2.Text = "处理合并图像";
@ -1005,7 +1041,7 @@
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(2);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(483, 186);
this.pictureBox1.Size = new System.Drawing.Size(482, 186);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 10;
this.pictureBox1.TabStop = false;
@ -1024,7 +1060,7 @@
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel3.Size = new System.Drawing.Size(273, 496);
this.tableLayoutPanel3.Size = new System.Drawing.Size(274, 496);
this.tableLayoutPanel3.TabIndex = 0;
//
// panel8
@ -1033,7 +1069,7 @@
this.panel8.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel8.Location = new System.Drawing.Point(3, 349);
this.panel8.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(267, 144);
this.panel8.Size = new System.Drawing.Size(443, 144);
this.panel8.TabIndex = 8;
//
// groupBox5
@ -1049,7 +1085,7 @@
this.groupBox5.Margin = new System.Windows.Forms.Padding(2);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Padding = new System.Windows.Forms.Padding(2);
this.groupBox5.Size = new System.Drawing.Size(267, 122);
this.groupBox5.Size = new System.Drawing.Size(443, 122);
this.groupBox5.TabIndex = 7;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "幅宽";
@ -1062,23 +1098,30 @@
this.panel9.Location = new System.Drawing.Point(2, 16);
this.panel9.Margin = new System.Windows.Forms.Padding(2);
this.panel9.Name = "panel9";
this.panel9.Size = new System.Drawing.Size(263, 104);
this.panel9.Size = new System.Drawing.Size(439, 104);
this.panel9.TabIndex = 0;
//
// chart3
//
chartArea6.Name = "ChartArea1";
this.chart3.ChartAreas.Add(chartArea6);
chartArea2.AxisX.LabelStyle.Format = "N0";
chartArea2.AxisX.MaximumAutoSize = 100F;
chartArea2.AxisX.Minimum = 0D;
chartArea2.AxisX.ScaleView.Size = 10D;
chartArea2.AxisX.ScaleView.Zoomable = false;
chartArea2.AxisX.ScrollBar.ButtonStyle = System.Windows.Forms.DataVisualization.Charting.ScrollBarButtonStyles.SmallScroll;
chartArea2.AxisY.LabelStyle.Format = "N0";
chartArea2.Name = "ChartArea1";
this.chart3.ChartAreas.Add(chartArea2);
this.chart3.Dock = System.Windows.Forms.DockStyle.Fill;
legend6.Name = "Legend1";
this.chart3.Legends.Add(legend6);
legend2.Name = "Legend1";
this.chart3.Legends.Add(legend2);
this.chart3.Location = new System.Drawing.Point(0, 0);
this.chart3.Name = "chart3";
series6.ChartArea = "ChartArea1";
series6.Legend = "Legend1";
series6.Name = "Series1";
this.chart3.Series.Add(series6);
this.chart3.Size = new System.Drawing.Size(263, 104);
series2.ChartArea = "ChartArea1";
series2.Legend = "Legend1";
series2.Name = "Series1";
this.chart3.Series.Add(series2);
this.chart3.Size = new System.Drawing.Size(439, 104);
this.chart3.TabIndex = 0;
this.chart3.Text = "chart3";
//
@ -1088,7 +1131,7 @@
this.panel6.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel6.Location = new System.Drawing.Point(3, 201);
this.panel6.Name = "panel6";
this.panel6.Size = new System.Drawing.Size(267, 142);
this.panel6.Size = new System.Drawing.Size(443, 142);
this.panel6.TabIndex = 7;
//
// groupBox4
@ -1102,7 +1145,7 @@
this.groupBox4.Margin = new System.Windows.Forms.Padding(2);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(2);
this.groupBox4.Size = new System.Drawing.Size(267, 142);
this.groupBox4.Size = new System.Drawing.Size(443, 142);
this.groupBox4.TabIndex = 6;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "瑕疵信息";
@ -1115,7 +1158,7 @@
this.panel7.Location = new System.Drawing.Point(2, 16);
this.panel7.Margin = new System.Windows.Forms.Padding(2);
this.panel7.Name = "panel7";
this.panel7.Size = new System.Drawing.Size(263, 124);
this.panel7.Size = new System.Drawing.Size(439, 124);
this.panel7.TabIndex = 0;
//
// pictureBox4
@ -1126,7 +1169,7 @@
this.pictureBox4.Location = new System.Drawing.Point(0, 0);
this.pictureBox4.Margin = new System.Windows.Forms.Padding(2);
this.pictureBox4.Name = "pictureBox4";
this.pictureBox4.Size = new System.Drawing.Size(263, 124);
this.pictureBox4.Size = new System.Drawing.Size(439, 124);
this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox4.TabIndex = 13;
this.pictureBox4.TabStop = false;
@ -1142,7 +1185,7 @@
this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
this.groupBox1.Size = new System.Drawing.Size(269, 194);
this.groupBox1.Size = new System.Drawing.Size(445, 194);
this.groupBox1.TabIndex = 5;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "瑕疵列表";
@ -1155,38 +1198,47 @@
this.panel4.Location = new System.Drawing.Point(2, 16);
this.panel4.Margin = new System.Windows.Forms.Padding(2);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(265, 176);
this.panel4.Size = new System.Drawing.Size(441, 176);
this.panel4.TabIndex = 0;
//
// skinDataGridView1
//
dataGridViewCellStyle11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(246)))), ((int)(((byte)(253)))));
this.skinDataGridView1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(246)))), ((int)(((byte)(253)))));
this.skinDataGridView1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
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;
dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(246)))), ((int)(((byte)(239)))));
dataGridViewCellStyle12.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.skinDataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12;
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("宋体", 9F, 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;
this.skinDataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.skinDataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2});
this.colUid,
this.colCode,
this.colIndex,
this.colDefectName,
this.colX,
this.colY,
this.colW,
this.colH,
this.colArea,
this.colZXD,
this.colTarget});
this.skinDataGridView1.ColumnSelectForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle13.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle13.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle13.ForeColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle13.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(59)))), ((int)(((byte)(188)))), ((int)(((byte)(240)))));
dataGridViewCellStyle13.SelectionForeColor = System.Drawing.Color.White;
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.skinDataGridView1.DefaultCellStyle = dataGridViewCellStyle13;
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 9F, 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;
this.skinDataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.skinDataGridView1.EnableHeadersVisualStyles = false;
this.skinDataGridView1.GridColor = System.Drawing.SystemColors.GradientActiveCaption;
@ -1196,39 +1248,27 @@
this.skinDataGridView1.Location = new System.Drawing.Point(0, 0);
this.skinDataGridView1.Name = "skinDataGridView1";
this.skinDataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.ButtonHighlight;
dataGridViewCellStyle14.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle14.ForeColor = System.Drawing.SystemColors.MenuText;
dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.skinDataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle14;
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.ButtonHighlight;
dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 9F, 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;
this.skinDataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle15.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle15.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle15.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
this.skinDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle15;
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;
this.skinDataGridView1.RowTemplate.Height = 23;
this.skinDataGridView1.Size = new System.Drawing.Size(265, 176);
this.skinDataGridView1.Size = new System.Drawing.Size(441, 176);
this.skinDataGridView1.TabIndex = 0;
this.skinDataGridView1.TitleBack = null;
this.skinDataGridView1.TitleBackColorBegin = System.Drawing.SystemColors.HotTrack;
this.skinDataGridView1.TitleBackColorEnd = System.Drawing.SystemColors.HotTrack;
//
// Column1
//
this.Column1.HeaderText = "图号";
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
//
// Column2
//
this.Column2.HeaderText = "名称";
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
//
// statusStrip1
//
this.statusStrip1.BackColor = System.Drawing.SystemColors.HotTrack;
@ -1276,6 +1316,84 @@
this.tslabelTime.Size = new System.Drawing.Size(103, 17);
this.tslabelTime.Text = "实时测试:360.00s";
//
// colUid
//
this.colUid.HeaderText = "Uid";
this.colUid.Name = "colUid";
this.colUid.ReadOnly = true;
this.colUid.Visible = false;
//
// colCode
//
this.colCode.HeaderText = "Code";
this.colCode.Name = "colCode";
this.colCode.ReadOnly = true;
this.colCode.Visible = false;
//
// colIndex
//
this.colIndex.DataPropertyName = "Index";
this.colIndex.HeaderText = "图号";
this.colIndex.Name = "colIndex";
this.colIndex.ReadOnly = true;
//
// colDefectName
//
this.colDefectName.DataPropertyName = "Name";
this.colDefectName.HeaderText = "名称";
this.colDefectName.Name = "colDefectName";
this.colDefectName.ReadOnly = true;
//
// colX
//
this.colX.DataPropertyName = "X";
this.colX.HeaderText = "X(cm)";
this.colX.Name = "colX";
this.colX.ReadOnly = true;
//
// colY
//
this.colY.DataPropertyName = "Y";
this.colY.HeaderText = "Y(m)";
this.colY.Name = "colY";
this.colY.ReadOnly = true;
//
// colW
//
this.colW.HeaderText = "宽(cm)";
this.colW.Name = "colW";
this.colW.ReadOnly = true;
//
// colH
//
this.colH.HeaderText = "高(cm)";
this.colH.Name = "colH";
this.colH.ReadOnly = true;
//
// colArea
//
this.colArea.HeaderText = "面积(cm)";
this.colArea.Name = "colArea";
this.colArea.ReadOnly = true;
//
// colZXD
//
this.colZXD.DataPropertyName = "ZXD";
this.colZXD.HeaderText = "置信度";
this.colZXD.Name = "colZXD";
this.colZXD.ReadOnly = true;
//
// colTarget
//
this.colTarget.DataPropertyName = "Contrast";
this.colTarget.HeaderText = "对比度";
this.colTarget.Name = "colTarget";
this.colTarget.ReadOnly = true;
//
// backgroundWorker1
//
this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
//
// uiTitel1
//
this.uiTitel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(8)))), ((int)(((byte)(31)))), ((int)(((byte)(120)))));
@ -1286,11 +1404,41 @@
this.uiTitel1.Size = new System.Drawing.Size(1145, 46);
this.uiTitel1.TabIndex = 21;
//
// lblDefectSpeed
//
this.lblDefectSpeed.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblDefectSpeed.AutoSize = true;
this.lblDefectSpeed.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(51)))), ((int)(((byte)(122)))));
this.lblDefectSpeed.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblDefectSpeed.ForeColor = System.Drawing.Color.LimeGreen;
this.lblDefectSpeed.Location = new System.Drawing.Point(939, 118);
this.lblDefectSpeed.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDefectSpeed.Name = "lblDefectSpeed";
this.lblDefectSpeed.Size = new System.Drawing.Size(171, 16);
this.lblDefectSpeed.TabIndex = 30;
this.lblDefectSpeed.Text = "检测速度: 0 米/分钟";
//
// lblDefectLen
//
this.lblDefectLen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblDefectLen.AutoSize = true;
this.lblDefectLen.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(51)))), ((int)(((byte)(122)))));
this.lblDefectLen.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblDefectLen.ForeColor = System.Drawing.Color.LimeGreen;
this.lblDefectLen.Location = new System.Drawing.Point(939, 98);
this.lblDefectLen.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDefectLen.Name = "lblDefectLen";
this.lblDefectLen.Size = new System.Drawing.Size(128, 16);
this.lblDefectLen.TabIndex = 29;
this.lblDefectLen.Text = "检测长度: 0 米";
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1145, 641);
this.Controls.Add(this.lblDefectSpeed);
this.Controls.Add(this.lblDefectLen);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.toolStrip1);
@ -1435,8 +1583,6 @@
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Panel panel4;
private CCWin.SkinControl.SkinDataGridView skinDataGridView1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.Panel panel8;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.Panel panel9;
@ -1447,6 +1593,20 @@
private System.Windows.Forms.PictureBox pictureBox4;
private System.Windows.Forms.ComboBox cbDefectCode;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.DataGridViewTextBoxColumn colUid;
private System.Windows.Forms.DataGridViewTextBoxColumn colCode;
private System.Windows.Forms.DataGridViewTextBoxColumn colIndex;
private System.Windows.Forms.DataGridViewTextBoxColumn colDefectName;
private System.Windows.Forms.DataGridViewTextBoxColumn colX;
private System.Windows.Forms.DataGridViewTextBoxColumn colY;
private System.Windows.Forms.DataGridViewTextBoxColumn colW;
private System.Windows.Forms.DataGridViewTextBoxColumn colH;
private System.Windows.Forms.DataGridViewTextBoxColumn colArea;
private System.Windows.Forms.DataGridViewTextBoxColumn colZXD;
private System.Windows.Forms.DataGridViewTextBoxColumn colTarget;
private System.ComponentModel.BackgroundWorker backgroundWorker1;
private System.Windows.Forms.Label lblDefectSpeed;
private System.Windows.Forms.Label lblDefectLen;
}
}

View File

@ -3,22 +3,42 @@ using GeBoShi.UI;
using GeBoShi.UI.Load;
using GeBoShi.UI.Product;
using GeBoShi.UI.SysSet;
using HZH_Controls;
using HZH_Controls.Controls;
using HZH_Controls.Forms;
using MaiMuControl.Device;
using MaiMuControl.Device.CamDev;
using Models;
using OpenCvSharp.Extensions;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web.UI.WebControls.WebParts;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace GeBoShi
{
public partial class Main : Form
{
object AddTextLock = new object();
bool backgroundWorkerDo;
/// <summary>
/// 显示颜色现在对应30色确保label在30个以内
/// </summary>
Color[] ChartColor = new Color[30] { Color.Red, Color.Blue, Color.Green, Color.YellowGreen, Color.Orange,
Color.Peru, Color.DarkRed,Color.AliceBlue, Color.Pink , Color.Brown,
Color.CadetBlue, Color.OrangeRed, Color.Cyan, Color.Lime, Color.Magenta, Color.Tan, Color.Sienna,
Color.AliceBlue, Color.SaddleBrown, Color.DarkBlue, Color.Firebrick,Color.Gainsboro,Color.Honeydew,Color.Khaki,Color.Lavender,
Color.LightGoldenrodYellow,Color.Navy, Color.Khaki, Color.IndianRed,Color.Lavender};
public Main()
{
InitializeComponent();
@ -33,6 +53,32 @@ namespace GeBoShi
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
SysMgr.Instance.MainRuning += main_running;
SysMgr.Instance.AutoRuning += auto_runing;
#region dataGridView设置
skinDataGridView1.AllowUserToAddRows = skinDataGridView1.AllowUserToDeleteRows = false;//用户添加删除行
skinDataGridView1.AllowUserToResizeRows = false;//用户调整行大小 //显示行号与列宽度自动调整
skinDataGridView1.RowHeadersVisible = true;
skinDataGridView1.RowHeadersWidth = 50;
//dataGridView1.ColumnHeadersHeightSizeMode = dataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
skinDataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;//数据量过百绑定太变
skinDataGridView1.RowTemplate.Height = 30;
//skinDataGridView1.RowPostPaint += (sender, e) =>//序号列头
//{
// showRowNum_onDataGrid_RowPostPaint(this.skinDataGridView1, sender, e);
//};
for (int i = 0; i < skinDataGridView1.Columns.Count; i++)//禁止点击列头排序
skinDataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
this.skinDataGridView1.CellClick += skinDataGridView1_CellClick; ;
#endregion
this.lblDefectLen.Top = toolStrip1.Top + 10;
this.lblDefectLen.Left = toolStrip1.Width - 300;
this.lblDefectSpeed.Top = toolStrip1.Top + 10 + lblDefectLen.Height + 5;
this.lblDefectSpeed.Left = toolStrip1.Width - 300;
}
#region
@ -60,6 +106,11 @@ namespace GeBoShi
#endregion
#region
private void showRowNum_onDataGrid_RowPostPaint(DataGridView dgv, object sender, DataGridViewRowPostPaintEventArgs e)
{
Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgv.RowHeadersWidth - 4, e.RowBounds.Height);
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dgv.RowHeadersDefaultCellStyle.Font, rectangle, dgv.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}
private void ResetUI(bool clearSN)
{
@ -80,8 +131,40 @@ namespace GeBoShi
this.cbProductReelNum.Enabled = true;
this.cbProductNum.Enabled = true;
tslabelTime.Text = "实时测试:0.00s";
this.pictureBox1.Image = null;
pictureBox1.Refresh();
this.pictureBox2.Image = null;
pictureBox2.Refresh();
this.pictureBox3.Image = null;
pictureBox3.Refresh();
this.pictureBox4.Image = null;
pictureBox4.Refresh();
//tslabelTime.Text = "实时测试:0.00s";
skinDataGridView1.DataSource = null;
this.skinDataGridView1.Rows.Clear();
chart1.Series.Clear();
chart1.Series.Add("SELECT");
chart1.Series["SELECT"].ChartType = SeriesChartType.Point;
chart1.Series["SELECT"].MarkerSize = 25;
chart1.Series["SELECT"].MarkerColor = Color.Black;
chart1.Series["SELECT"].MarkerStyle = MarkerStyle.Star6;
//chart1.Series["SELECT"].Enabled = false;
chart1.ChartAreas[0].AxisX.Title = "宽度(cm)";
chart1.ChartAreas[0].AxisY.Title = "长度(m)";
chart3.Series.Clear();
chart3.Series.Add("面宽");
chart3.ChartAreas[0].AxisX.Title = "长度(m)";
chart3.ChartAreas[0].AxisY.Title = "宽度(cm)";
chart3.Series["面宽"].ChartType = SeriesChartType.Line;
chart3.Series["面宽"].MarkerSize = 5;
chart3.Series["面宽"].MarkerColor = Color.Blue;
chart3.Series["面宽"].MarkerStyle = MarkerStyle.Circle;
lblDefectLen.Text = $"检测长度: 0 米";
lblDefectSpeed.Text = $"检测速度: 0 米/分钟";
this.Refresh();
}
#endregion
@ -171,12 +254,11 @@ namespace GeBoShi
//开启产品服务
//SysMgr.Instance.InitPdtService();
//开启处理事件反馈
//SysMgr.Instance.InitDefectEvent();
SysMgr.Instance.InitDefectEvent();
//加载产品料号
//SysMgr.Instance.LoadProductCodeList();
SysMgr.Instance.LoadProductCodeList();
//加载产品选择
//LoadPdtList(SysMgr.Instance.ProductCodeList);
//LoadSNList(SysMgr.Instance.ProductSNList);
LoadPdtList(SysMgr.Instance.ProductCodeList);
this.Cursor = Cursors.Default;
//运行前检测磁盘空间
@ -275,6 +357,10 @@ namespace GeBoShi
}
}
private void tsmDebug_Click(object sender, EventArgs e)
{
}
#endregion
#endregion
@ -285,7 +371,24 @@ namespace GeBoShi
private void LoadPdtList(List<string> list)
{
this.cbDefectCode.Items.Clear();
while (true)
{
bool bk = true;
for (int i = 0; i < list.Count; i++)
{
if (list[i] == null || string.IsNullOrEmpty(list[i]))
{
list.Remove(list[i]);
bk = false;
}
}
if (bk)
{
break;
}
}
this.pdtlistData = list.ToArray();
cbDefectCode.Items.AddRange(pdtlistData);//比使用DataSource速度要快一些
cbDefectCode.TextUpdate += cobList_TextUpdate;//重新绑定事件
cbDefectCode.KeyDown += CobList_KeyDown;
@ -344,5 +447,514 @@ namespace GeBoShi
}
}
#endregion
#region
private void tsbtnStart_Click(object sender, EventArgs e)
{
if (!SysMgr.Instance.IsRuning)
{
//低报警自动复位
if (SysMgr.Instance.StatusMgr.Status == SystemStsEnum.Warning)
{
if (SysMgr.Instance.StatusMgr.Warning == WarningEnum.Low)
{
SysMgr.Instance.StatusMgr.ClearWarning();
SysMgr.Instance.StatusMgr.GotoNormalStandby();
}
}
//提示正在报警中
if (SysMgr.Instance.StatusMgr.Status == SystemStsEnum.Warning)
{
FrmDialog.ShowDialog(this, "系统报警中!无法启动运行!", "警告", false);
return;
}
this.Cursor = Cursors.WaitCursor;
System.Windows.Forms.Application.DoEvents();
if (SysMgr.Instance.StatusMgr.Status != SystemStsEnum.Pause)
{
ResetUI(false);
AddTextEvent("运行", $"启动自动检测流程");
this.lstLog.Refresh();
string name = this.cbProductCode.Text;
string batch = this.cbProductBatch.Text;
string reel = this.cbProductReelNum.Text;
string len = this.cbProductNum.Text;
string defname = this.cbDefectCode.Text;
if (SysMgr.Instance.StartRun(this, this.cbPdtSN.Text, ref defname, ref name, ref batch, ref reel, ref len))
{
this.tsbtnImpStop.Enabled = true;
this.tsbtnStop.Enabled = true;
this.tsbtnStart.Enabled = false;
//锁定信息
this.cbPdtSN.Enabled = false;
this.cbProductCode.Enabled = false;
this.cbProductBatch.Enabled = false;
this.cbProductReelNum.Enabled = false;
this.cbProductNum.Enabled = false;
this.cbDefectCode.Enabled = false;
//记录开始运行时间
//RunStartTime.Restart();
//重新显示
this.cbProductCode.Text = name;
this.cbProductBatch.Text = batch;
this.cbProductReelNum.Text = reel;
this.cbProductNum.Text = len;
this.cbDefectCode.Text = defname;
}
}
else //暂停状态开始
{
if (SysMgr.Instance.ReStartRun())
{
this.tsbtnStop.Enabled = true;
this.tsbtnStart.Enabled = false;
}
}
this.Cursor = Cursors.Default;
}
}
private void tsbtnReset_Click(object sender, EventArgs e)
{
}
private void tsbtnStop_Click(object sender, EventArgs e)
{
AddTextEvent("暂停", "手动暂停");
this.tsbtnStart.Enabled = true;
SysMgr.Instance.StatusMgr.GotoPause();
SysMgr.Instance.SendStatus();
SysMgr.Instance.LedPause();
}
private void tsbtnWarning_Click(object sender, EventArgs e)
{
if (SysMgr.Instance.StatusMgr.Warning != WarningEnum.Normal)
{
AddTextEvent("清除", "手动清除报警");
SysMgr.Instance.StatusMgr.ClearWarning();
SysMgr.Instance.LedReady();
if (SysMgr.Instance.IsAuto)
SysMgr.Instance.StatusMgr.GotoPause();
else
SysMgr.Instance.StatusMgr.GotoNormalStandby();
SysMgr.Instance.SendStatus();
}
}
/// <summary>
/// 结束验布
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsbtnImpStop_Click(object sender, EventArgs e)
{
AddTextEvent("结束验布", "手动结束验布");
SysMgr.Instance.DefectEnd(this);
}
int cnnnt = 10;
private void tsbGoHome_Click(object sender, EventArgs e)
{
#if false
//测试散点
chart1.Series.Clear();
chart1.ChartAreas[0].AxisX.Title = "宽度(cm)";
chart1.ChartAreas[0].AxisY.Title = "长度(m)";
chart1.Series.Add("皱印");
chart1.Series["皱印"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
chart1.Series["皱印"].MarkerSize = 10;
chart1.Series["皱印"].MarkerColor = Color.Red;
chart1.Series["皱印"].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
for (int i = 0; i < cnnnt; i++)
this.chart1.Series["皱印"].Points.AddXY(i%5,i);
chart1.Series.Add("划伤");
chart1.Series["划伤"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
chart1.Series["划伤"].MarkerSize = 10;
chart1.Series["划伤"].MarkerColor = Color.Blue;
chart1.Series["划伤"].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
for (int i = 0; i < cnnnt; i++)
this.chart1.Series["划伤"].Points.AddXY(i % 5 + 0.5, i + 0.3);
chart1.ChartAreas[0].AxisY.Maximum = ((int)(this.chart1.Series["划伤"].Points.FindMaxByValue().YValues.Max() /10) + 1) * 10 + 5;
chart1.ChartAreas[0].AxisY.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last);
cnnnt +=20;
MemoryStream ms = new MemoryStream();
chart1.SaveImage(ms, ChartImageFormat.Bmp);
Bitmap bmp = new Bitmap(ms);
bmp.Save("111.jpg");
ms.Close();
#endif
//测试散点
chart3.Series.Clear();
chart3.ChartAreas[0].AxisX.Title = "长度(m)";
chart3.ChartAreas[0].AxisY.Title = "宽度(cm)";
chart3.Series.Add("面宽");
string tt = "面宽";
if (chart3.Series.FindByName(tt) == null)
chart3.Series.Add("面宽");
else
{
chart3.Series["面宽"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart3.Series["面宽"].MarkerSize = 5;
chart3.Series["面宽"].MarkerColor = Color.Blue;
chart3.Series["面宽"].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
Random rm = new Random();
for (int i = 0; i < cnnnt; i++)
this.chart3.Series["面宽"].Points.AddXY(i, rm.Next(140, 160));
cnnnt += 20;
}
//chart3.Series[0].f
chart3.ChartAreas["ChartArea1"].AxisX.ScaleView.Scroll(ScrollType.Last);
}
#endregion
#region
private void lstLog_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
if (e.Index < 0) return;
try
{
string str = lstLog.Items[e.Index].ToString();
e.Graphics.DrawString(str.Substring(1), e.Font,
new SolidBrush(str[0] == 'R' ? Color.Red : (str[0] == 'Y' ? Color.Orange : Color.Black)),
e.Bounds);
}
catch (Exception ex)
{
e.Graphics.DrawString(ex.Message, e.Font,
new SolidBrush(Color.Red),
e.Bounds);
}
}
/// <summary>
/// 异步输出日志
/// </summary>
/// <param name="tag">模板标识</param>
/// <param name="msg">内容</param>
/// <param name="type"></param>
private void AddTextEvent(string tag, string msg, WarningEnum level = WarningEnum.Normal)
{
lock (AddTextLock)
{
if (tag != null && tag != "")
tag = $" - [{tag}]";
var now = DateTime.Now;
msg = now.ToString("HH:mm:ss fff") + tag + " - " + msg;
msg = (level == WarningEnum.Normal ? "B" : level == WarningEnum.Low ? "Y" : "R") + msg;
if (this.lstLog.Items.Count > 1000)
this.lstLog.Items.Clear();
lstLog.Items.Insert(0, msg);
}
}
private void main_running(object sender, MainEventArgs e)
{
ShowMessage(e);
}
private delegate void ShowMessageDelegate(MainEventArgs e);
private void ShowMessage(MainEventArgs e)
{
if (InvokeRequired)
{
ShowMessageDelegate smd = new ShowMessageDelegate(ShowMessage);
this.BeginInvoke(smd, e);
}
else
{
AddTextEvent(e.Tag, e.Message, e.Warning);
}
}
/// <summary>
/// 自动运行流程显示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void auto_runing(object sender, RunEventArgs e)
{
ShowUIEvent(e);
}
private delegate void ShowUIEventDelegate(RunEventArgs e);
Bitmap bmp0;
Bitmap bmp1;
Bitmap bmp2;
private void ShowUIEvent(RunEventArgs e)
{
if (InvokeRequired)
{
ShowUIEventDelegate smd = new ShowUIEventDelegate(ShowUIEvent);
this.BeginInvoke(smd, e);
}
else
{
try
{
if (e.Cmd == 6) //显示主图
{
if (e.PicIndex == 1)
{
bmp1 = (Bitmap)CamDev.HImageToBitmap(e.Pic).Clone();
this.pictureBox2.Image = bmp1;
this.pictureBox2.Refresh();
}
else if (e.PicIndex == 2)
{
bmp2 = (Bitmap)CamDev.HImageToBitmap(e.Pic).Clone();
this.pictureBox3.Image = bmp2;
this.pictureBox3.Refresh();
}
else if(e.PicIndex == 0)
{
bmp0 = (Bitmap)CamDev.HImageToBitmap(e.Pic).Clone();
this.pictureBox1.Image = bmp0;
this.pictureBox1.Refresh();
}
}
else if (e.Cmd == 10) //测试结束
{
this.tsbtnStart.Enabled = true;
this.tsbtnStop.Enabled = false;
this.tsbtnImpStop.Enabled = false;
this.cbPdtSN.Enabled = true;
this.cbProductCode.Enabled = true;
this.cbProductBatch.Enabled = true;
this.cbProductReelNum.Enabled = true;
this.cbProductNum.Enabled = true;
this.cbDefectCode.Enabled = true;
}
else if (e.Cmd == 11) //显示缺陷列表
{
foreach (var rowItem in e.DataRowlist)
{
this.skinDataGridView1.Rows.Insert(0, rowItem);
if (chart1.Series.FindByName((string)rowItem[3]) == null)//rowItem[3] 为name
{
chart1.Series.Add((string)rowItem[3]);
var obj = SysMgr.Instance.GetDefectLabel((string)rowItem[3]);
int labelIndex = obj.Value<int>("id");
chart1.Series[(string)rowItem[3]].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
chart1.Series[(string)rowItem[3]].MarkerSize = 5;
chart1.Series[(string)rowItem[3]].MarkerColor = ChartColor[labelIndex];
chart1.Series[(string)rowItem[3]].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
}
chart1.Series[(string)rowItem[3]].Points.AddXY(rowItem[4], rowItem[5]);
}
//chart1.ChartAreas[0].AxisY.Maximum = ((int)(this.chart1.Series["划伤"].Points.FindMaxByValue().YValues.Max() / 10) + 1) * 10 + 5;
chart1.ChartAreas[0].AxisY.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last);
}
else if(e.Cmd == 12) //显示处理图
{
bmp0 = (Bitmap)e.Defectimg.Clone();
this.pictureBox1.Image = bmp0;
this.pictureBox1.Refresh();
}
else if (e.Cmd == 13) //显示门幅
{
//this.BeginInvoke(new System.Action(() =>
//{
List<float> ydata = new List<float>();
foreach (var Item in e.Points)
{
ydata.Add(Item[1]);
float x = Item[0] / 100; //cm -> m
this.chart3.Series["面宽"].Points.AddXY((float)Math.Round(x, 2), (float)Math.Round(Item[1], 2));
}
chart3.ChartAreas[0].AxisY.Maximum = Math.Round(ydata.Max() + 10, 0);
chart3.ChartAreas[0].AxisY.Minimum = Math.Round(ydata.Max() - 10, 0);
chart3.ChartAreas["ChartArea1"].AxisX.ScaleView.Scroll(ScrollType.Last);
//}));
}
else if (e.Cmd == 14) //显示速度
{
//this.BeginInvoke(new System.Action(() =>
//{
lblDefectLen.Text = $"检测长度: {e.Len} 米";
lblDefectSpeed.Text = $"检测速度: {e.Speed} 米/分钟";
//}));
}
else if (e.Cmd == 15) //显示处理图 new
{
bmp0 = (Bitmap)e.DefectMat.ToBitmap();
this.pictureBox1.Image = bmp0;
this.pictureBox1.Refresh();
}
Application.DoEvents();
}
catch { }
}
}
#endregion
#region
GetPN pn = new GetPN();
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (backgroundWorkerDo)
{
try
{
this.Invoke(new MethodInvoker(() =>
{
this.tsslLoginTime.Text = $" 当前时间:{DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss")}";
}));
//检测按钮和实时状态
if (SysMgr.Instance.IsInit)
{
bool sts = SysMgr.Instance.WarningShowLed(false);
if (sts)
{
this.Invoke(new MethodInvoker(() =>
{
this.tsbtnStart.Enabled = true;
this.tsbtnStop.Enabled = false;
}));
}
int stsno = 0;
stsno = SysMgr.Instance.ButtonIOTrg(false);
if (stsno == 1)
{
this.Invoke(new MethodInvoker(() =>
{
tsbtnStart_Click(null, null);
}));
}
else if (stsno == 2)
{
this.Invoke(new MethodInvoker(() =>
{
this.tsbtnStart.Enabled = true;
}));
SysMgr.Instance.LedPause();
}
else if (stsno == 3)
{
this.Invoke(new MethodInvoker(() =>
{
tsbtnReset_Click(null, null);
}));
}
}
//if (pn.P(SysMgr.Instance.IsRuning))
//{
// //继续计时
// RunStartTime.Start();
//}
//if (pn.N(SysMgr.Instance.IsRuning))
//{
// //停止计时
// RunStartTime.Stop();
//}
//if (SysMgr.Instance.IsRuning)
//{
// //实时显示
// RunStartTime.Stop();
// this.Invoke(new MethodInvoker(() =>
// {
// tslabelTime.Text = "实时测试:" + ((double)RunStartTime.ElapsedMilliseconds / 1000.0).ToString("0.000") + "s";
// //this.Refresh();
// }));
// RunStartTime.Start();
//}
Thread.Sleep(100);
Application.DoEvents();
}
catch { }
}
}
/// <summary>
/// 信号上升沿下降沿捕获
/// </summary>
class GetPN
{
bool _P = false;
bool _N = false;
/// <summary>
/// 判断上升沿
/// </summary>
/// <param name="Value"></param>
/// <returns></returns>
public bool P(bool Value)
{
if (Value && !_P)
{
_P = true;
return true;
}
if (!Value)
_P = false;
return false;
}
/// <summary>
/// 判断下降沿
/// </summary>
/// <param name="Value"></param>
/// <returns></returns>
public bool N(bool Value)
{
if (!Value && _N)
{
_N = false;
return true;
}
if (Value)
_N = true;
return false;
}
}
#endregion
#region
private void skinDataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0)
return;
var defectInfo = SysMgr.Instance.GetDefectInfo((long)this.skinDataGridView1.CurrentRow.Cells["colUid"].Value);
if (defectInfo == null)
{
DialogResult dr = DialogResult.Cancel;
dr = FrmDialog.ShowDialog(this, "此记录已不存在!", "警告", true);
return;
}
this.pictureBox4.Image = (defectInfo.image);
//选中
this.Invoke(new System.Action(() =>
{
if (chart1.Series != null && chart1.Series.FindByName("SELECT") != null)
{
chart1.Series["SELECT"].Points.Clear();
chart1.Series["SELECT"].Points.AddXY(defectInfo.CentreX, defectInfo.CentreY / 100);
chart1.Refresh();
}
}));
}
#endregion
}
}

View File

@ -431,10 +431,37 @@
b1AAAAAASUVORK5CYII=
</value>
</data>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colUid.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="colCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDefectName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colX.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colY.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colW.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colH.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colArea.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colZXD.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colTarget.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -443,4 +470,7 @@
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>597, 17</value>
</metadata>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>743, 17</value>
</metadata>
</root>

View File

@ -1,7 +1,10 @@
using MaiMuControl.SysStatusMgr.UserMgr;
using Newtonsoft.Json.Linq;
using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
@ -47,8 +50,6 @@ namespace GeBoShi.SysCtrl
private readonly string _rootPath;
private readonly string _configFile;
private readonly string _projectDir;
private readonly string _pointsPath;
private readonly string _markPicPath;
#endregion
private ConfMgr()
@ -57,8 +58,6 @@ namespace GeBoShi.SysCtrl
_configFile = Path.Combine(_rootPath, "SysParamsConfig.ini");
_devConfigPath = Path.Combine(_rootPath, "DevParamsConfig.ini");
_projectDir = Path.Combine(_rootPath, "Project");
_pointsPath = Path.Combine(_rootPath, "PointsConfig.ini");
_markPicPath = Path.Combine(_rootPath, "MarkPic");
_specificationPath = Path.Combine(_rootPath, "革博士软件操作说明.docx");
DBConStr = "server = localhost; Database = LeatherDB; Uid = root; Pwd = " + ConteolUserDB.GetSqlDBCode() + "; AllowLoadLocalInfile = true;";
@ -83,39 +82,16 @@ namespace GeBoShi.SysCtrl
//public string ProjectDir { get { return _projectDir; } }
public string ProjectDir { get { return SysConfigParams.ProductPath; } }
public string MarkPicPath { get { return _markPicPath; } }
/// <summary>
/// 配置文件根路径
/// </summary>
public string ConfigDir { get { return _rootPath; } }
/// <summary>
/// 说明书路径
/// </summary>
public string SpecificationPath { get { return _specificationPath; } }
private string _specificationPath;
/// <summary>
/// 上料位X1
/// </summary>
public double LoadPoint_X1 { get; set; }
/// <summary>
/// 上料位X2
/// </summary>
public double LoadPoint_X2 { get; set; }
/// <summary>
/// 上料位Y
/// </summary>
public double LoadPoint_Y { get; set; }
/// <summary>
/// 上料位Z
/// </summary>
public double LoadPoint_Z { get; set; }
/// <summary>
/// 测厚气缸到位等待时间
/// </summary>
public int HeightDoWait { get; set; }
/// <summary>
/// 加紧气缸到位等待时间
/// </summary>
public int ProductDoWait { get; set; }
#endregion
#region
@ -162,6 +138,16 @@ namespace GeBoShi.SysCtrl
iniHelper.WriteString("Dev", "IODevName", SysParams.IODevName);
iniHelper.WriteString("Dev", "IOCfgPath", SysParams.IOCfgPath);
iniHelper.WriteString("Dev", "PLC_IP", SysParams.PLC_IP);
iniHelper.WriteInteger("Dev", "PLC_Rack", SysParams.PLC_Rack);
iniHelper.WriteInteger("Dev", "PLC_Solt", SysParams.PLC_Solt);
iniHelper.WriteString("Dev", "CamPath_1", SysParams.CamPath_1);
iniHelper.WriteInteger("Dev", "CamDev_1", SysParams.CamDev_1);
iniHelper.WriteInteger("Dev", "CamIndex_1", SysParams.CamIndex_1);
iniHelper.WriteString("Dev", "CamPath_2", SysParams.CamPath_2);
iniHelper.WriteInteger("Dev", "CamDev_2", SysParams.CamDev_2);
iniHelper.WriteInteger("Dev", "CamIndex_2", SysParams.CamIndex_2);
iniHelper.WriteString("Sys", "AIModelPath", SysParams.AIModelPath);
iniHelper.WriteString("Sys", "ProductPath", SysParams.ProductPath);
@ -188,6 +174,24 @@ namespace GeBoShi.SysCtrl
iniHelper.WriteBool("ExcelPrint", "EnableExcelPrint", SysParams.EnableExcelPrint);
iniHelper.WriteString("ExcelPrint", "ExcelPrinterName", SysParams.ExcelPrinterName);
iniHelper.WriteString("ERP", "ErpDBConStr", SysParams.ErpDBConStr);
iniHelper.WriteString("ERP", "ErpSql", SysParams.ErpSql);
iniHelper.WriteString("Customer", "CustomerName", SysParams.CustomerName);
iniHelper.WriteBool("FLIP", "Cam1_flipX", SysParams.Cam1_flipX);
iniHelper.WriteBool("FLIP", "Cam1_flipY", SysParams.Cam1_flipY);
iniHelper.WriteBool("FLIP", "Cam2_flipX", SysParams.Cam2_flipX);
iniHelper.WriteBool("FLIP", "Cam2_flipY", SysParams.Cam2_flipY);
iniHelper.WriteInteger("CMPX", "Cm2px_x", SysParams.Cm2px_x);
iniHelper.WriteInteger("CMPX", "Cm2px_y", SysParams.Cm2px_y);
iniHelper.WriteInteger("CMPX", "MidCoin", SysParams.MidCoin);
iniHelper.WriteInteger("CMPX", "HolePx", SysParams.HolePx);
iniHelper.WriteInteger("CMPX", "LCrop", SysParams.LCrop);
iniHelper.WriteInteger("CMPX", "RCrop", SysParams.RCrop);
iniHelper.WriteInteger("CMPX", "Expand_pixel", SysParams.Expand_pixel);
SysConfigParams = SysParams;
}
/// <summary>
@ -208,6 +212,63 @@ namespace GeBoShi.SysCtrl
//iniHelper.ReadBool("SaveAllImg", "SaveAllImg", out bValue);
//sysParams.SaveAllImg = bValue;
iniHelper.ReadBool("SysFunction", "OpenBuzzer", out bValue);
sysParams.OpenBuzzer = bValue;
iniHelper.ReadBool("SysFunction", "OpenDoor", out bValue);
sysParams.OpenDoor = bValue;
iniHelper.ReadBool("SysFunction", "OpenIO", out bValue);
sysParams.OpenIO = bValue;
iniHelper.ReadBool("SysFunction", "OpenPLC", out bValue);
sysParams.OpenPLC = bValue;
iniHelper.ReadString("Dev", "LightCom", out sValue);
sysParams.LightCom = sValue.Replace("\0", "");
iniHelper.ReadInteger("Dev", "LightComBaud", out iValue);
sysParams.LightComBaud = iValue;
iniHelper.ReadString("Dev", "IODevName", out sValue);
sysParams.IODevName = sValue.Replace("\0", "");
iniHelper.ReadString("Dev", "IOCfgPath", out sValue);
sysParams.IOCfgPath = sValue.Replace("\0", "");
iniHelper.ReadString("Dev", "PLC_IP", out sValue);
sysParams.PLC_IP = sValue.Replace("\0", "");
iniHelper.ReadInteger("Dev", "PLC_Rack", out iValue);
sysParams.PLC_Rack = iValue;
iniHelper.ReadInteger("Dev", "PLC_Solt", out iValue);
sysParams.PLC_Solt = iValue;
iniHelper.ReadString("Dev", "CamPath_1", out sValue);
sysParams.CamPath_1 = sValue.Replace("\0", "");
iniHelper.ReadInteger("Dev", "CamDev_1", out iValue);
sysParams.CamDev_1 = iValue;
iniHelper.ReadInteger("Dev", "CamIndex_1", out iValue);
sysParams.CamIndex_1 = iValue;
iniHelper.ReadString("Dev", "CamPath_2", out sValue);
sysParams.CamPath_2 = sValue.Replace("\0", "");
iniHelper.ReadInteger("Dev", "CamDev_2", out iValue);
sysParams.CamDev_2 = iValue;
iniHelper.ReadInteger("Dev", "CamIndex_2", out iValue);
sysParams.CamIndex_2 = iValue;
iniHelper.ReadBool("CloudAndMES", "OpenCloud", out bValue);
sysParams.OpenCloud = bValue;
iniHelper.ReadString("CloudAndMES", "CloudThisName", out sValue);
sysParams.CloudThisName = sValue.Replace("\0", string.Empty);
iniHelper.ReadString("CloudAndMES", "CloudServerIP", out sValue);
sysParams.CloudServerIP = sValue;
iniHelper.ReadInteger("CloudAndMES", "CloudServerPort", out iValue);
sysParams.CloudServerPort = iValue;
iniHelper.ReadString("CloudAndMES", "CloudUser", out sValue);
sysParams.CloudUser = sValue;
iniHelper.ReadString("CloudAndMES", "CloudPassword", out sValue);
sysParams.CloudPassword = sValue;
iniHelper.ReadBool("CloudAndMES", "OpenPdtServer", out bValue);
sysParams.OpenPdtServer = bValue;
iniHelper.ReadString("CloudAndMES", "PdtServerIP", out sValue);
sysParams.PdtServerIP = sValue;
iniHelper.ReadInteger("CloudAndMES", "PdtServerPort", out iValue);
sysParams.PdtServerPort = iValue;
iniHelper.ReadBool("CloudAndMES", "IsPdtServer", out bValue);
sysParams.IsPdtServer = bValue;
iniHelper.ReadString("DefectSrcImag", "SavePath", out sValue);
sysParams.DefectSrcImag.SavePath = sValue.Replace("\0", "");
iniHelper.ReadBool("DefectSrcImag", "AutoSave", out bValue);
@ -235,6 +296,12 @@ namespace GeBoShi.SysCtrl
iniHelper.ReadDouble("DefectSplicImag", "AutoDeleteDays", out dValue);
sysParams.DefectSplicImag.AutoDeleteDays = dValue;
iniHelper.ReadString("Sys", "AIModelPath", out sValue);
sysParams.AIModelPath = sValue.Replace("\0", "");
iniHelper.ReadString("Sys", "ProductPath", out sValue);
sysParams.ProductPath = sValue.Replace("\0", "");
iniHelper.ReadString("Log", "SavePath", out sValue);
sysParams.LogPath = sValue.Replace("\0", "");
iniHelper.ReadBool("Log", "AutoDelete", out bValue);
@ -242,31 +309,6 @@ namespace GeBoShi.SysCtrl
iniHelper.ReadDouble("Log", "AutoDeleteDays", out dValue);
sysParams.AutoDeleteLogData = dValue;
iniHelper.ReadBool("SysFunction", "OpenBuzzer", out bValue);
sysParams.OpenBuzzer = bValue;
iniHelper.ReadBool("SysFunction", "OpenDoor", out bValue);
sysParams.OpenDoor = bValue;
iniHelper.ReadBool("SysFunction", "OpenIO", out bValue);
sysParams.OpenIO = bValue;
iniHelper.ReadBool("SysFunction", "OpenPLC", out bValue);
sysParams.OpenPLC = bValue;
iniHelper.ReadString("Dev", "LightCom", out sValue);
sysParams.LightCom = sValue.Replace("\0", "");
iniHelper.ReadInteger("Dev", "LightComBaud", out iValue);
sysParams.LightComBaud = iValue;
iniHelper.ReadString("Dev", "IODevName", out sValue);
sysParams.IODevName = sValue.Replace("\0", "");
iniHelper.ReadString("Dev", "IOCfgPath", out sValue);
sysParams.IOCfgPath = sValue.Replace("\0", "");
iniHelper.ReadString("Sys", "AIModelPath", out sValue);
sysParams.AIModelPath = sValue.Replace("\0", "");
iniHelper.ReadString("Sys", "ProductPath", out sValue);
sysParams.ProductPath = sValue.Replace("\0", "");
iniHelper.ReadString("Sys", "HttpServerIP", out sValue);
iniHelper.ReadBool("ShowMainWin", "ShowResetBtn", out bValue);
sysParams.ShowResetBtn = bValue;
iniHelper.ReadBool("ShowMainWin", "ShowBuzz", out bValue);
@ -274,27 +316,30 @@ namespace GeBoShi.SysCtrl
iniHelper.ReadBool("ShowMainWin", "ShowDoorAlm", out bValue);
sysParams.ShowDoorAlm = bValue;
iniHelper.ReadBool("CloudAndMES", "OpenCloud", out bValue);
sysParams.OpenCloud = bValue;
iniHelper.ReadString("CloudAndMES", "CloudThisName", out sValue);
sysParams.CloudThisName = sValue.Replace("\0", string.Empty);
iniHelper.ReadString("CloudAndMES", "CloudServerIP", out sValue);
sysParams.CloudServerIP = sValue;
iniHelper.ReadInteger("CloudAndMES", "CloudServerPort", out iValue);
sysParams.CloudServerPort = iValue;
iniHelper.ReadString("CloudAndMES", "CloudUser", out sValue);
sysParams.CloudUser = sValue;
iniHelper.ReadString("CloudAndMES", "CloudPassword", out sValue);
sysParams.CloudPassword = sValue;
iniHelper.ReadBool("FLIP", "Cam1_flipX", out bValue);
sysParams.Cam1_flipX = bValue;
iniHelper.ReadBool("FLIP", "Cam1_flipY", out bValue);
sysParams.Cam1_flipY = bValue;
iniHelper.ReadBool("FLIP", "Cam2_flipX", out bValue);
sysParams.Cam2_flipX = bValue;
iniHelper.ReadBool("FLIP", "Cam2_flipY", out bValue);
sysParams.Cam2_flipY = bValue;
iniHelper.ReadInteger("CMPX", "Cm2px_x", out iValue);
sysParams.Cm2px_x = iValue;
iniHelper.ReadInteger("CMPX", "Cm2px_y", out iValue);
sysParams.Cm2px_y = iValue;
iniHelper.ReadInteger("CMPX", "MidCoin", out iValue);
sysParams.MidCoin = iValue;
iniHelper.ReadInteger("CMPX", "HolePx", out iValue);
sysParams.HolePx = iValue;
iniHelper.ReadInteger("CMPX", "LCrop", out iValue);
sysParams.LCrop = iValue;
iniHelper.ReadInteger("CMPX", "RCrop", out iValue);
sysParams.RCrop = iValue;
iniHelper.ReadInteger("CMPX", "Expand_pixel", out iValue);
sysParams.Expand_pixel = iValue;
iniHelper.ReadBool("CloudAndMES", "OpenPdtServer", out bValue);
sysParams.OpenPdtServer = bValue;
iniHelper.ReadString("CloudAndMES", "PdtServerIP", out sValue);
sysParams.PdtServerIP = sValue;
iniHelper.ReadInteger("CloudAndMES", "PdtServerPort", out iValue);
sysParams.PdtServerPort = iValue;
iniHelper.ReadBool("CloudAndMES", "IsPdtServer", out bValue);
sysParams.IsPdtServer = bValue;
iniHelper.ReadBool("LabelPrint", "EnableLabelPrint", out bValue);
sysParams.EnableLabelPrint = bValue;
@ -306,6 +351,19 @@ namespace GeBoShi.SysCtrl
iniHelper.ReadString("ExcelPrint", "ExcelPrinterName", out sValue);
sysParams.ExcelPrinterName = sValue;
iniHelper.ReadString("ERP", "ErpDBConStr", out sValue);
sysParams.ErpDBConStr = sValue;
iniHelper.ReadString("ERP", "ErpSql", out sValue);
sysParams.ErpSql = sValue;
iniHelper.ReadString("Customer", "CustomerName", out sValue);
sysParams.CustomerName = sValue;
iniHelper.ReadString("Material", "SuedeList", out sValue);
if (!string.IsNullOrWhiteSpace(sValue))
sysParams.SuedeList = sValue.Split(new char[] { ',', ';' });
SysConfigParams = sysParams;
return sysParams;
}
@ -532,6 +590,49 @@ namespace GeBoShi.SysCtrl
}
#endregion
#region ERP数据库
private SqlSugarClient db;
public SqlSugarClient getErpDBCon(SqlSugar.DbType dbType = SqlSugar.DbType.SqlServer)
{
if (string.IsNullOrEmpty(SysConfigParams.ErpDBConStr))
return null;
if (db != null) return db;
db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = SysConfigParams.ErpDBConStr,
DbType = dbType,
IsAutoCloseConnection = true
},
db =>
{
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql);//输出sql,查看执行sql 性能无影响
//获取原生SQL推荐 5.1.4.63 性能OK
//UtilMethods.GetNativeSql(sql,pars)
//获取无参数化SQL 对性能有影响特别大的SQL参数多的调试使用
//UtilMethods.GetSqlString(DbType.SqlServer,sql,pars)
};
});
return db;
}
public DataTable execSql(string sql, List<SugarParameter> parameters, SqlSugar.DbType dbType = SqlSugar.DbType.SqlServer)
{
//查询表的所有
var mydb = getErpDBCon(dbType);
if (mydb == null) return null;
if (!mydb.Ado.IsValidConnection())
mydb.Ado.Open();
return mydb.Ado.GetDataTable(sql, parameters);
}
#endregion
#endregion
}
@ -720,6 +821,23 @@ namespace GeBoShi.SysCtrl
/// 右侧裁剪
/// </summary>
public int RCrop = 0;
/// <summary>
/// 相机1X翻转
/// </summary>
public bool Cam1_flipX { get; set; }
/// <summary>
/// 相机1Y翻转
/// </summary>
public bool Cam1_flipY { get; set; }
/// <summary>
/// 相机2X翻转
/// </summary>
public bool Cam2_flipX { get; set; }
/// <summary>
/// 相机2Y翻转
/// </summary>
public bool Cam2_flipY { get; set; }
#endregion
#region Http/MES
@ -771,6 +889,29 @@ namespace GeBoShi.SysCtrl
public string ExcelPrinterName { get; set; }
#endregion
#region ERP
/// <summary>
/// 禾欣ERP数据库
/// </summary>
public string ErpDBConStr { get; set; }
/// <summary>
/// 禾欣ERP数据读取
/// </summary>
public string ErpSql { get; set; }
#endregion
#region
/// <summary>
/// 客户名
/// </summary>
public string CustomerName { get; set; }
#endregion
#region
//材质Material
public string[] SuedeList = new string[0];
#endregion
public SysConfigParams()
{
DefectSrcImag = new ImageSaveParam("D:\\Image\\DefectSrcImag");
@ -825,6 +966,16 @@ namespace GeBoShi.SysCtrl
PdtServerIP = "127.0.0.1";
PdtServerPort = 10573;
IsPdtServer = true;
ErpDBConStr = "";
ErpSql = "";
CustomerName = "";
Cam1_flipX = false;
Cam1_flipY = false;
Cam2_flipX = false;
Cam2_flipY = false;
}
}
#endregion

View File

@ -0,0 +1,463 @@
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GeBoShi.SysCtrl
{
public static class OpencvUtils
{
public static int image_width = 2048;
public static int image_height = 2048;
#region
public static Mat Resize(Mat mat, int width, int height, out int xw)
{
OpenCvSharp.Size dsize = new OpenCvSharp.Size(width, height);
Mat mat2 = new Mat();
//Cv2.Resize(mat, mat2, dsize);
ResizeUniform(mat, dsize, out mat2, out xw);
return mat2;
}
/// <summary>
/// 等比例缩放
/// </summary>
/// <param name="src"></param>
/// <param name="dst_size"></param>
/// <param name="dst"></param>
/// <returns></returns>
public static int ResizeUniform(Mat src, Size dst_size, out Mat dst, out int xw)
{
xw = 0;
int w = src.Cols;
int h = src.Rows;
int dst_w = dst_size.Width;
int dst_h = dst_size.Height;
//std::cout << "src: (" << h << ", " << w << ")" << std::endl;
dst = new Mat(dst_h, dst_w, MatType.CV_8UC3, new Scalar(114, 114, 114));
float[] ratio = new float[2];
float ratio_src = w * 1.0f / h;
float ratio_dst = dst_w * 1.0f / dst_h;
int tmp_w = 0;
int tmp_h = 0;
if (ratio_src > ratio_dst)
{
tmp_w = dst_w;
tmp_h = (int)(dst_w * 1.0f / w) * h;
ratio[0] = (float)w / (float)tmp_w;
ratio[1] = (float)h / (float)tmp_h;
}
else if (ratio_src < ratio_dst)
{
tmp_h = dst_h;
tmp_w = (int)((dst_h * 1.0f / h) * w);
ratio[0] = (float)w / (float)tmp_w;
ratio[1] = (float)h / (float)tmp_h;
}
else
{
Cv2.Resize(src, dst, dst_size);
ratio[0] = (float)w / (float)tmp_w;
ratio[1] = (float)h / (float)tmp_h;
return 0;
}
//std::cout << "tmp: (" << tmp_h << ", " << tmp_w << ")" << std::endl;
Mat tmp = new Mat();
Cv2.Resize(src, tmp, new Size(tmp_w, tmp_h));
unsafe
{
if (tmp_w != dst_w)
{ //高对齐,宽没对齐
int index_w = (int)((dst_w - tmp_w) / 2.0);
xw = index_w;
//std::cout << "index_w: " << index_w << std::endl;
for (int i = 0; i < dst_h; i++)
{
Buffer.MemoryCopy(IntPtr.Add(tmp.Data, i * tmp_w * 3).ToPointer(), IntPtr.Add(dst.Data, i * dst_w * 3 + index_w * 3).ToPointer(), tmp_w * 3, tmp_w * 3);
}
}
else if (tmp_h != dst_h)
{ //宽对齐, 高没有对齐
int index_h = (int)((dst_h - tmp_h) / 2.0);
//std::cout << "index_h: " << index_h << std::endl;
Buffer.MemoryCopy(tmp.Data.ToPointer(), IntPtr.Add(dst.Data, index_h * dst_w * 3).ToPointer(), tmp_w * tmp_h * 3, tmp_w * tmp_h * 3);
}
else
{
}
}
return 0;
}
public static Mat ResizeMat(Mat mat, int width, int height)
{
OpenCvSharp.Size dsize = new OpenCvSharp.Size(width, height);
Mat mat2 = new Mat();
Cv2.Resize(mat, mat2, dsize);
return mat2;
}
/// <summary>
/// 计算合理宽幅
/// </summary>
/// <param name="sumWidth">多个相机图像总宽(外部去除重合部分)</param>
/// <returns></returns>
public static int GetWidthForResize(int sumWidth)
{
//保证计算8x2 16个小图
int count = (int)Math.Round(sumWidth * 1.0f / image_width, 0);
count = 8;
return count * image_width;
//int count = sumWidth / image_width;
////int remainder = sumWidth % image_width;
//if (count % 2 == 0)
// return count * image_width;
//else
// return count * image_width+ image_width;
}
/// <summary>
/// 裁切指定区域
/// </summary>
/// <param name="mat"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <returns></returns>
public static Mat CutImage(Mat mat, int x, int y, int width, int height)
{
Rect roi = new Rect(x, y, width, height);
return new Mat(mat, roi).Clone();
}
#endregion
#region
/// <summary>
/// 裁边
/// </summary>
/// <param name="mat_rgb"></param>
/// <param name="isLeft"></param>
/// <param name="marginHoleWidth"></param>
/// <param name="marginWidth"></param>
/// <returns></returns>
public static Mat getMaxInsetRect2(Mat mat_rgb, bool isLeft, int marginHoleWidth, out int marginWidth)
{
int bian = 3500;
Rect Roi;
if (!isLeft)
Roi = new Rect(mat_rgb.Width - bian, 0, bian, mat_rgb.Height);
else
Roi = new Rect(0, 0, bian, mat_rgb.Height);
int type = isLeft ? 1 : 0;
int len = EdgeClipping2(mat_rgb, type, Roi, isLeft);
#if false
//Mat mat_rgb = new Mat("E:\\CPL\\测试代码\\边缘检测\\test\\test\\test\\img\\19.bmp");
Mat image_gray = new Mat();
Cv2.CvtColor(mat_rgb, image_gray, ColorConversionCodes.BGR2GRAY);
//cvtColor(image_RGB, image, COLOR_RGB2GRAY);
int height = image_gray.Rows;
int width = image_gray.Cols;
// 算法定义取均分5段图片的五条横线经过一系列处理之后二值化找到沿边位置然后取均值作为直边在缩进一段有针眼的位置
// 定义每段的行数
int num_rows = 5;
int segment_height = height / num_rows - 1;
// 定义空数组保存结果
int[] total = new int[num_rows];
// 平均截取5行数据并处理图像
for (int i = 0; i < num_rows; i++)
{
// 截取当前行的图像
int start_row = i * segment_height;
Rect roi = new Rect(0, start_row, width, 1);
Mat current_segment = image_gray.Clone(roi);
// 对当前行的图像进行平滑处理
Mat smoothed_image = new Mat();
Cv2.GaussianBlur(current_segment, smoothed_image, new Size(5, 1), 0);
// 计算当前行的灰度直方图
Mat absolute_histo = new Mat();
Cv2.CalcHist(new Mat[] { smoothed_image }, new int[] { 0 }, new Mat(), absolute_histo, 1, new int[] { 256 }, new Rangef[] { new Rangef(0, 256) });
Cv2.GaussianBlur(current_segment, smoothed_image, new Size(19, 1), 0);
// 对图片进行分割i+1
//double otsu_threshold;
//threshold(smoothed_image, smoothed_image, 0, 255, THRESH_BINARY + THRESH_OTSU, &otsu_threshold);
Cv2.Threshold(smoothed_image, smoothed_image, 0, 255, ThresholdTypes.Binary | ThresholdTypes.Otsu);
// 使用形态学操作进行孔洞填充
Mat kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(25, 1));
Mat filled_image = new Mat();
Cv2.MorphologyEx(smoothed_image, filled_image, MorphTypes.Close, kernel);
// 取较长的一个值作为皮革的宽度
int num_255 = Cv2.CountNonZero(filled_image);
int length_t = (num_255 > width / 2) ? num_255 : width - num_255;
total[i] = (length_t);
API.OutputDebugString($"getMaxInsetRect2: 【{i + 1}】{length_t}={num_255}|{width}");
}
// 取平均值作为宽度
int length = (int)total.Average();
marginWidth = width-length;
#endif
int length = (len > mat_rgb.Width / 2) ? len : mat_rgb.Width - len;
marginWidth = mat_rgb.Width - length;
// 判断数据是否异常,判断当前线段的宽度是否大于设定像素的偏差
//int abnormal_pxl = 200;
//for (int i = 0; i < num_rows; i++)
//{
// if (Math.Abs(total[i] - length) > abnormal_pxl)
// throw new Exception("数据异常,当段图片的宽度有问题!");
//}
//右侧相机拍摄产品边缘位于右侧判断缩进100像素去点针眼
//Cv2.Line(mat_rgb, new Point(length - 100, 0), new Point(length - 100, height), new Scalar(255, 0, 0), 20);
////左侧相机拍摄产品边缘位于左侧判断缩进100像素去点针眼
//Cv2.Line(mat_rgb, new Point(width - length + 100, 0), new Point(width - length + 100, height), new Scalar(0, 255, 0), 20);
//int decWidth = width - length + marginHoleWidth;
//if (isLeft)
// return cutImage(mat_rgb, decWidth, 0, width- decWidth, height);
//else
// return cutImage(mat_rgb, 0, 0, width - decWidth, height);
//API.OutputDebugString($"getMaxInsetRect2:margin={marginWidth}length={length}({marginHoleWidth}),isLeft={isLeft},mat_rgb={mat_rgb.Width}*{mat_rgb.Height},w={length - marginHoleWidth},h={mat_rgb.Height}");
if (isLeft)
return CutImage(mat_rgb, mat_rgb.Width - length + marginHoleWidth, 0, length - marginHoleWidth, mat_rgb.Height);
else
return CutImage(mat_rgb, 0, 0, length - marginHoleWidth, mat_rgb.Height);
}
/// <summary>
/// 寻边算法
/// </summary>
/// <param name="image"></param>
/// <param name="FindType"></param>
/// <param name="Roi"></param>
/// <param name="IsLeft"></param>
/// <returns></returns>
public static int EdgeClipping2(Mat image, int FindType, Rect Roi, bool IsLeft)
{
DateTimeOffset startTime = DateTimeOffset.Now;
Mat mat_rgb = image.Clone(Roi);
int height = mat_rgb.Rows;
int width = mat_rgb.Cols;
int sf = 10; //缩放比例
int pix = 5; //获取均值区域长宽像素
int pointNum = 15; //获取找遍点数
int offsetGray = 5; //二值化偏差
//按比例缩放
int sf_height = height / sf;
int sf_width = width / sf;
Cv2.Resize(mat_rgb, mat_rgb, new Size(sf_width, sf_height), 0, 0, InterpolationFlags.Linear);
Mat himg = new Mat();
himg = mat_rgb.Clone();
DateTimeOffset endTime = DateTimeOffset.Now;
//Console.WriteLine("图片缩小(ms): " + (endTime - startTime).TotalMilliseconds.ToString("0.000"));
startTime = DateTimeOffset.Now;
//滤过去除多余噪声
//Cv2.EdgePreservingFilter(himg, himg, EdgePreservingMethods.NormconvFilter);
//Cv2.PyrMeanShiftFiltering(himg, himg, 1, 2, 1);
Cv2.PyrMeanShiftFiltering(himg, himg, 10, 17, 2);
//himg.ImWrite("himg.jpg");
endTime = DateTimeOffset.Now;
//Console.WriteLine("滤过去除多余噪声(ms): " + (endTime - startTime).TotalMilliseconds.ToString("0.000"));
startTime = DateTimeOffset.Now;
//转灰度图
Mat image_gray = new Mat();
Cv2.CvtColor(himg, image_gray, ColorConversionCodes.BGR2GRAY);
//image_gray.ImWrite("image_gray.jpg");
Mat image_Canny = new Mat();
Cv2.Canny(image_gray, image_Canny, 32, 64);
//image_Canny.ImWrite("image_Canny.jpg");
//二值化
Mat image_Otsu = new Mat();
int hDis = sf_height / (pointNum + 2); //去除边缘两点
#if false //二值算法
List<double> LeftAvg = new List<double>();
List<double> RightAvg = new List<double>();
//double thb = Cv2.Threshold(image_gray, image_Otsu, 0, 255, ThresholdTypes.Binary | ThresholdTypes.Otsu);
#region
for (int i = 0; i < pointNum; i++)
{
Rect roiLeft = new Rect(0, hDis + hDis * i, pix, pix);
Mat current_segmentL = image_gray.Clone(roiLeft);
//Scalar ttr = current_segmentL.Mean();
LeftAvg.Add(current_segmentL.Mean().Val0);
Rect roiRight = new Rect(sf_width - pix, hDis + hDis * i, pix, pix);
Mat current_segmentR = image_gray.Clone(roiRight);
RightAvg.Add(current_segmentR.Mean().Val0);
}
double thres = 0;
if (IsLeft)
{
if (LeftAvg.Average() > RightAvg.Average())
thres = RightAvg.Max() + offsetGray;
else
thres = RightAvg.Min() - offsetGray;
}
else
{
if (LeftAvg.Average() > RightAvg.Average())
thres = LeftAvg.Min() - offsetGray;
else
thres = LeftAvg.Max() + offsetGray;
}
//double thres = (RightAvg.Average() + )/2;
#endregion
#endif
#if false
double min, max;
image_gray.MinMaxLoc(out min, out max);
double thres = (min + max) / 2;
#endif
#if false //二值化图片
//Cv2.Threshold(image_gray, image_Otsu, 0, 255, ThresholdTypes.Otsu);
double thb = Cv2.Threshold(image_gray, image_Otsu, thres, 255, ThresholdTypes.Binary);
image_Otsu.ImWrite("Otsu1.jpg");
Cv2.MedianBlur(image_Otsu, image_Otsu, 21);
image_Otsu.ImWrite("Otsu2.jpg");
endTime = DateTimeOffset.Now;
Console.WriteLine("灰度图二值化(ms): " + (endTime - startTime).TotalMilliseconds.ToString("0.000"));
startTime = DateTimeOffset.Now;
#else
image_Otsu = image_Canny;
#endif
// 定义空数组保存结果
int[] total = new int[pointNum];
List<int> total_t = new List<int>();
bool isLeft = FindType == 0 ? true : false;
// 平均截取pointNum行数据并处理图像
for (int i = 0; i < pointNum; i++)
{
// 截取当前行的图像
Rect roi = new Rect(0, hDis + hDis * i, sf_width, 1);
Mat current_segment = image_Otsu.Clone(roi);
#if false
#region
// 对当前行的图像进行平滑处理
Mat smoothed_image2 = new Mat();
Cv2.GaussianBlur(current_segment, smoothed_image2, new Size(5, 1), 0);
// 计算当前行的灰度直方图
Mat absolute_histo2 = new Mat();
Cv2.CalcHist(new Mat[] { smoothed_image2 }, new int[] { 0 }, new Mat(), absolute_histo2, 1, new int[] { 256 }, new Rangef[] { new Rangef(0, 256) });
Cv2.GaussianBlur(current_segment, smoothed_image2, new Size(9, 1), 0);
// 对图片进行分割
//double otsu_threshold;
//threshold(smoothed_image, smoothed_image, 0, 255, THRESH_BINARY + THRESH_OTSU, &otsu_threshold);
double otsu_threshold2 = Cv2.Threshold(smoothed_image2, smoothed_image2, 0, 255, ThresholdTypes.Binary | ThresholdTypes.Otsu);
// 使用形态学操作进行孔洞填充
Mat kernel3 = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5, 1));
Mat filled_image3 = new Mat();
Cv2.MorphologyEx(smoothed_image2, filled_image3, MorphTypes.Close, kernel3);
#endregion
#else
//Mat filled_image3 = current_segment.Clone();
Mat filled_image3 = current_segment;
#endif
#if true
//从左到右判断边和从右到左判断边
int numX = 0;
byte tempVal = 0;
if (isLeft)
{
tempVal = filled_image3.At<byte>(0, 0);
for (int j = 0; j < filled_image3.Cols; j++)
{
if (filled_image3.At<byte>(0, j) != tempVal)
{
numX = j;
break;
}
}
}
else
{
tempVal = filled_image3.At<byte>(0, filled_image3.Cols - 1);
for (int j = filled_image3.Cols - 1; j >= 0; j--)
{
if (filled_image3.At<byte>(0, j) != tempVal)
{
numX = j;
break;
}
}
}
#else
int numX = Cv2.CountNonZero(filled_image3);
#endif
//int length_t = (numX > (sf_width / 2)) ? numX :sf_width - numX;
int length_t = numX;
total[i] = (length_t);
if (length_t > 0)
total_t.Add(length_t);
}
// 取平均值作为宽度
int length = 0;
if(total_t.Count> 0)
length = (int)total_t.Average();
endTime = DateTimeOffset.Now;
//Console.WriteLine("计算边(ms): " + (endTime - startTime).TotalMilliseconds.ToString("0.000"));
// 判断数据是否异常,判断当前线段的宽度是否大于设定像素的偏差
//int abnormal_pxl = 100 / 4;
//for (int i = 0; i < pointNum; i++)
//{
// if (Math.Abs(total[i] - length) > abnormal_pxl)
// Console.WriteLine("数据异常!");
// //出现数据异常,当段图片的宽度有问题
//}
//乘上换算系数还原
length = length * sf + Roi.X;
return length;
}
#endregion
#region
/// <summary>
/// 合并MAT宽高必需一致
/// </summary>
/// <param name="mats"></param>
/// <param name="isHorizontal"></param>
/// <returns></returns>
public static Mat MergeImage_sameSize(Mat[] mats, bool isHorizontal = true)
{
Mat matOut = new Mat();
if (isHorizontal)
Cv2.HConcat(mats, matOut);//横向拼接
else
Cv2.VConcat(mats, matOut);//纵向拼接
return matOut;
}
#endregion
}
}

View File

@ -24,48 +24,25 @@ namespace GeBoShi.SysCtrl
}
public enum DOName
{
= 0,
绿 = 1,
= 2,
= 3,
= 10,
绿 = 11,
= 12,
= 13,
= 4,
= 5,
= 0,
= 9,
= 1,
绿 = 7,
绿 = 8,
= 9,
= 10,
= 11,
= 12,
X1回原 = 13,
X2回原 = 14,
Y轴回原点 = 15
= 15,
}
public enum DIName
{
= 14,
= 3,
= 1,
= 2,
= 4,
= 5,
= 6,
= 7,
= 8,
= 9,
= 0,
= 1,
= 10,
= 11,
Y轴回原点完成 = 15
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,213 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace GeBoShi.SysCtrl
{
public static class Utils
{
private static Regex RegNumber = new Regex("^[0-9]+$"); //匹配 整数(不可以带正负号)
private static Regex RegDecimal = new Regex("^(-?\\d+)(\\.\\d+)?$"); //浮点 (可以带正负号)
public static bool IsDecimal(object inputData)
{
if (inputData == null) return false;
Match m = RegDecimal.Match(inputData.ToString());
return m.Success;
}
public static bool IsNumber(object inputData)
{
if (inputData == null) return false;
Match m = RegNumber.Match(inputData.ToString());
return m.Success;
}
private static double ContrastLow = 0.8;
private static double ContrastTop = 1.2;
/// <summary>
/// 获取对比度百分比 0-100 对应0.6-1.4
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static double ContrastToPercent(double val)
{
if (val < ContrastLow)
return 0;
else if (val > ContrastTop)
return 100;
double temp = 100 / (ContrastTop - ContrastLow);
return Math.Round(temp * (val - ContrastLow), 2);
}
public static double PercentToContrast(double val)
{
double tt = 1;
if (val > 100)
tt = 100;
else if (val < 0)
tt = 0;
else
tt = val;
double temp = tt / 100 * (ContrastTop - ContrastLow);
return temp + ContrastLow;
}
public class ExcelUtil
{
public static DataTable ConvertToDataTable<T>(IList<T> data, List<string> lstColName)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in properties)
{
if (lstColName.Contains(prop.Name))
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
}
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
{
if (lstColName.Contains(prop.Name))
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
}
table.Rows.Add(row);
}
return table;
}
public static bool DataTable2CSV(string saveFilePath, System.Data.DataTable dt)
{
//MessageBox.Show(AbosultedFilePath);
System.IO.FileStream fs = new FileStream(saveFilePath, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, new System.Text.UnicodeEncoding());
//Tabel header
for (int i = 0; i < dt.Columns.Count; i++)
{
sw.Write(dt.Columns[i].ColumnName);
sw.Write("\t");
}
sw.WriteLine("");
//Table body
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
sw.Write(DelQuota(dt.Rows[i][j].ToString()));
sw.Write("\t");
}
sw.WriteLine("");
}
sw.Flush();
sw.Close();
return true;
}
public static string DelQuota(string str)
{
string result = str;
string[] strQuota = { "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "`", ";", "'", ",", "/", ":", "/,", "<", ">", "?" };//".",
for (int i = 0; i < strQuota.Length; i++)
{
if (result.IndexOf(strQuota[i]) > -1)
result = result.Replace(strQuota[i], "");
}
return result;
}
//public static bool saveFile(string saveFilePath, DataTable dataTable)
//{
// try
// {
// //// 创建一个 DataTable 对象来存储数据
// //DataTable dataTable = new DataTable("MyData");
// //// 添加列到 DataTable
// //dataTable.Columns.Add("Name", typeof(string));
// //dataTable.Columns.Add("Age", typeof(int));
// //// 向 DataTable 中添加数据行
// //dataTable.Rows.Add("John Doe", 30);
// //dataTable.Rows.Add("Jane Smith", 25);
// // 使用 ClosedXML 组件导出 Excel 文件
// using (XLWorkbook workbook = new XLWorkbook())
// {
// IXLWorksheet worksheet = workbook.AddWorksheet("MySheet");
// int row = 1; //行从1开始
// for (int i = 0; i < dataTable.Rows.Count; i++)
// {
// for (int j = 0; j < dataTable.Columns.Count; j++)
// {
// if (row == 1)//头标题
// worksheet.Cell(1, j + 1).Value = dataTable.Columns[j].ColumnName;
// //内容
// worksheet.Cell(row + 1, j + 1).Value = dataTable.Rows[i][j].ToString();
// // 设置单元格样式
// //worksheet.Cell(row, 2).Style.Font.Bold = true;
// //worksheet.Cell(row, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right;
// }
// row++;
// }
// // 将 Excel 文件保存到磁盘
// //string fileName = @"C:\temp\MyExcelFile.xlsx";
// workbook.SaveAs(saveFilePath);
// // 释放资源
// workbook.Dispose();
// }
// return true;
// }
// catch (Exception ex)
// {
// throw ex;
// }
//}
//public static bool test(string saveFilePath, DataTable dataTable1)
//{
// try
// {
// // 创建一个 DataTable 对象来存储数据
// DataTable dataTable = new DataTable("MyData");
// // 添加列到 DataTable
// dataTable.Columns.Add("Name", typeof(string));
// dataTable.Columns.Add("Age", typeof(int));
// // 向 DataTable 中添加数据行
// dataTable.Rows.Add("John Doe", 30);
// dataTable.Rows.Add("Jane Smith", 25);
// // 使用 ClosedXML 组件导出 Excel 文件
// using (XLWorkbook workbook = new XLWorkbook())
// {
// IXLWorksheet worksheet = workbook.AddWorksheet("MySheet");
// int row = 1;
// foreach (DataRow dataRow in dataTable.Rows)
// {
// worksheet.Cell(row, 1).Value = dataRow["Name"].ToString();
// worksheet.Cell(row, 2).Value = Convert.ToInt32(dataRow["Age"]);
// // 设置单元格样式
// worksheet.Cell(row, 2).Style.Font.Bold = true;
// worksheet.Cell(row, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right;
// row++;
// }
// // 将 Excel 文件保存到磁盘
// //string fileName = @"C:\temp\MyExcelFile.xlsx";
// workbook.SaveAs(saveFilePath);
// // 释放资源
// workbook.Dispose();
// }
// return true;
// }
// catch (Exception ex)
// {
// return false;
// }
//}
}
}
}

View File

@ -37,6 +37,13 @@
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.numericUpDown4 = new System.Windows.Forms.NumericUpDown();
this.numericUpDown3 = new System.Windows.Forms.NumericUpDown();
this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
this.numStopDis = new System.Windows.Forms.NumericUpDown();
this.label13 = new System.Windows.Forms.Label();
this.cbGetHD = new System.Windows.Forms.CheckBox();
this.label9 = new System.Windows.Forms.Label();
this.TrackBarTensionValue = new HZH_Controls.Controls.UCTrackBar();
this.label10 = new System.Windows.Forms.Label();
@ -46,6 +53,7 @@
this.label12 = new System.Windows.Forms.Label();
this.TrackBarLightValue = new HZH_Controls.Controls.UCTrackBar();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.btnColor = new System.Windows.Forms.Button();
this.tbLabelFile = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.cmbDefectModelFile = new System.Windows.Forms.ComboBox();
@ -59,13 +67,15 @@
this.cmbClasses = new System.Windows.Forms.ComboBox();
this.label17 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.numericUpDown3 = new System.Windows.Forms.NumericUpDown();
this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
this.numReelLen = new System.Windows.Forms.NumericUpDown();
this.label14 = new System.Windows.Forms.Label();
this.numDefectAreaLimit = new System.Windows.Forms.NumericUpDown();
this.numDefectCntLength = new System.Windows.Forms.NumericUpDown();
this.numDefectCountLimit = new System.Windows.Forms.NumericUpDown();
this.btnClearDefect_Path = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
this.textBox4 = new System.Windows.Forms.TextBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.btnAddWarn = new System.Windows.Forms.Button();
this.tbWarnDefect = new System.Windows.Forms.TextBox();
this.cbDefectName = new System.Windows.Forms.ComboBox();
this.label8 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
@ -79,16 +89,16 @@
this.DBDL = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.DBDH = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.OrAnd = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.DefectLength = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.DefectWarn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.dataGridView2 = new System.Windows.Forms.DataGridView();
this.Code2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Name2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.A = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.B = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.C = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.D = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.E = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.btnColor = new System.Windows.Forms.Button();
this.toolStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
@ -96,11 +106,17 @@
this.splitContainer1.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numStopDis)).BeginInit();
this.groupBox5.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numReelLen)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numDefectAreaLimit)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numDefectCntLength)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numDefectCountLimit)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.btnClearDefect_Path)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
@ -184,7 +200,7 @@
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(1224, 554);
this.splitContainer1.SplitterDistance = 327;
this.splitContainer1.SplitterDistance = 379;
this.splitContainer1.TabIndex = 40;
//
// tableLayoutPanel1
@ -201,7 +217,7 @@
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1224, 327);
this.tableLayoutPanel1.Size = new System.Drawing.Size(1224, 379);
this.tableLayoutPanel1.TabIndex = 0;
//
// groupBox2
@ -210,6 +226,13 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.BackColor = System.Drawing.Color.White;
this.groupBox2.Controls.Add(this.numericUpDown4);
this.groupBox2.Controls.Add(this.numericUpDown3);
this.groupBox2.Controls.Add(this.numericUpDown2);
this.groupBox2.Controls.Add(this.numericUpDown1);
this.groupBox2.Controls.Add(this.numStopDis);
this.groupBox2.Controls.Add(this.label13);
this.groupBox2.Controls.Add(this.cbGetHD);
this.groupBox2.Controls.Add(this.label9);
this.groupBox2.Controls.Add(this.TrackBarTensionValue);
this.groupBox2.Controls.Add(this.label10);
@ -224,15 +247,131 @@
this.groupBox2.Margin = new System.Windows.Forms.Padding(2);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Padding = new System.Windows.Forms.Padding(2);
this.groupBox2.Size = new System.Drawing.Size(403, 323);
this.groupBox2.Size = new System.Drawing.Size(403, 375);
this.groupBox2.TabIndex = 38;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "参数设置";
//
// numericUpDown4
//
this.numericUpDown4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.numericUpDown4.Increment = new decimal(new int[] {
5,
0,
0,
0});
this.numericUpDown4.Location = new System.Drawing.Point(324, 199);
this.numericUpDown4.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown4.Name = "numericUpDown4";
this.numericUpDown4.Size = new System.Drawing.Size(74, 26);
this.numericUpDown4.TabIndex = 66;
this.numericUpDown4.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// numericUpDown3
//
this.numericUpDown3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.numericUpDown3.Increment = new decimal(new int[] {
5,
0,
0,
0});
this.numericUpDown3.Location = new System.Drawing.Point(324, 144);
this.numericUpDown3.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown3.Name = "numericUpDown3";
this.numericUpDown3.Size = new System.Drawing.Size(74, 26);
this.numericUpDown3.TabIndex = 65;
this.numericUpDown3.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// numericUpDown2
//
this.numericUpDown2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.numericUpDown2.Increment = new decimal(new int[] {
5,
0,
0,
0});
this.numericUpDown2.Location = new System.Drawing.Point(324, 89);
this.numericUpDown2.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown2.Name = "numericUpDown2";
this.numericUpDown2.Size = new System.Drawing.Size(74, 26);
this.numericUpDown2.TabIndex = 64;
this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// numericUpDown1
//
this.numericUpDown1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.numericUpDown1.Increment = new decimal(new int[] {
5,
0,
0,
0});
this.numericUpDown1.Location = new System.Drawing.Point(324, 34);
this.numericUpDown1.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown1.Name = "numericUpDown1";
this.numericUpDown1.Size = new System.Drawing.Size(74, 26);
this.numericUpDown1.TabIndex = 63;
this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
//
// numStopDis
//
this.numStopDis.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)));
this.numStopDis.Increment = new decimal(new int[] {
5,
0,
0,
0});
this.numStopDis.Location = new System.Drawing.Point(206, 287);
this.numStopDis.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numStopDis.Name = "numStopDis";
this.numStopDis.Size = new System.Drawing.Size(122, 26);
this.numStopDis.TabIndex = 62;
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(32, 289);
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(145, 20);
this.label13.TabIndex = 56;
this.label13.Text = "厚度检测暂停距离(米)";
//
// cbGetHD
//
this.cbGetHD.AutoSize = true;
this.cbGetHD.Location = new System.Drawing.Point(36, 248);
this.cbGetHD.Name = "cbGetHD";
this.cbGetHD.Size = new System.Drawing.Size(140, 24);
this.cbGetHD.TabIndex = 54;
this.cbGetHD.Text = "开启暂停厚度检测";
this.cbGetHD.UseVisualStyleBackColor = true;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(32, 253);
this.label9.Location = new System.Drawing.Point(32, 199);
this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(37, 20);
@ -248,21 +387,22 @@
this.TrackBarTensionValue.IsShowTips = true;
this.TrackBarTensionValue.LineColor = System.Drawing.Color.Silver;
this.TrackBarTensionValue.LineWidth = 10F;
this.TrackBarTensionValue.Location = new System.Drawing.Point(111, 243);
this.TrackBarTensionValue.Location = new System.Drawing.Point(111, 184);
this.TrackBarTensionValue.MaxValue = 999F;
this.TrackBarTensionValue.MinValue = 0F;
this.TrackBarTensionValue.Name = "TrackBarTensionValue";
this.TrackBarTensionValue.Size = new System.Drawing.Size(249, 30);
this.TrackBarTensionValue.Size = new System.Drawing.Size(207, 52);
this.TrackBarTensionValue.TabIndex = 52;
this.TrackBarTensionValue.Text = "ucTrackBar5";
this.TrackBarTensionValue.TipsFormat = null;
this.TrackBarTensionValue.Value = 0F;
this.TrackBarTensionValue.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.TrackBarTensionValue.ValueChanged += new System.EventHandler(this.TrackBarLightValue_ValueChanged);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(32, 192);
this.label10.Location = new System.Drawing.Point(32, 144);
this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(37, 20);
@ -278,21 +418,22 @@
this.TrackBarGain.IsShowTips = true;
this.TrackBarGain.LineColor = System.Drawing.Color.Silver;
this.TrackBarGain.LineWidth = 10F;
this.TrackBarGain.Location = new System.Drawing.Point(111, 182);
this.TrackBarGain.MaxValue = 999F;
this.TrackBarGain.Location = new System.Drawing.Point(111, 131);
this.TrackBarGain.MaxValue = 20F;
this.TrackBarGain.MinValue = 0F;
this.TrackBarGain.Name = "TrackBarGain";
this.TrackBarGain.Size = new System.Drawing.Size(249, 30);
this.TrackBarGain.Size = new System.Drawing.Size(207, 49);
this.TrackBarGain.TabIndex = 50;
this.TrackBarGain.Text = "ucTrackBar6";
this.TrackBarGain.TipsFormat = null;
this.TrackBarGain.Value = 0F;
this.TrackBarGain.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.TrackBarGain.ValueChanged += new System.EventHandler(this.TrackBarLightValue_ValueChanged);
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(32, 127);
this.label11.Location = new System.Drawing.Point(32, 89);
this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(65, 20);
@ -308,21 +449,22 @@
this.TrackBarExposureTime.IsShowTips = true;
this.TrackBarExposureTime.LineColor = System.Drawing.Color.Silver;
this.TrackBarExposureTime.LineWidth = 10F;
this.TrackBarExposureTime.Location = new System.Drawing.Point(111, 117);
this.TrackBarExposureTime.MaxValue = 10000F;
this.TrackBarExposureTime.MinValue = 3F;
this.TrackBarExposureTime.Location = new System.Drawing.Point(111, 75);
this.TrackBarExposureTime.MaxValue = 1000F;
this.TrackBarExposureTime.MinValue = 0F;
this.TrackBarExposureTime.Name = "TrackBarExposureTime";
this.TrackBarExposureTime.Size = new System.Drawing.Size(249, 30);
this.TrackBarExposureTime.Size = new System.Drawing.Size(207, 52);
this.TrackBarExposureTime.TabIndex = 48;
this.TrackBarExposureTime.Text = "TrackBarExposureTime";
this.TrackBarExposureTime.TipsFormat = null;
this.TrackBarExposureTime.Value = 50F;
this.TrackBarExposureTime.Value = 0F;
this.TrackBarExposureTime.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.TrackBarExposureTime.ValueChanged += new System.EventHandler(this.TrackBarLightValue_ValueChanged);
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(32, 68);
this.label12.Location = new System.Drawing.Point(32, 34);
this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(65, 20);
@ -338,16 +480,17 @@
this.TrackBarLightValue.IsShowTips = true;
this.TrackBarLightValue.LineColor = System.Drawing.Color.Silver;
this.TrackBarLightValue.LineWidth = 10F;
this.TrackBarLightValue.Location = new System.Drawing.Point(111, 58);
this.TrackBarLightValue.Location = new System.Drawing.Point(111, 22);
this.TrackBarLightValue.MaxValue = 255F;
this.TrackBarLightValue.MinValue = 0F;
this.TrackBarLightValue.Name = "TrackBarLightValue";
this.TrackBarLightValue.Size = new System.Drawing.Size(249, 30);
this.TrackBarLightValue.Size = new System.Drawing.Size(207, 50);
this.TrackBarLightValue.TabIndex = 46;
this.TrackBarLightValue.Text = "ucTrackBar8";
this.TrackBarLightValue.TipsFormat = null;
this.TrackBarLightValue.Value = 0F;
this.TrackBarLightValue.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.TrackBarLightValue.ValueChanged += new System.EventHandler(this.TrackBarLightValue_ValueChanged);
//
// groupBox5
//
@ -372,17 +515,30 @@
this.groupBox5.Margin = new System.Windows.Forms.Padding(2);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Padding = new System.Windows.Forms.Padding(2);
this.groupBox5.Size = new System.Drawing.Size(403, 323);
this.groupBox5.Size = new System.Drawing.Size(403, 375);
this.groupBox5.TabIndex = 37;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "检测标准信息";
//
// btnColor
//
this.btnColor.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnColor.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnColor.BackgroundImage")));
this.btnColor.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.btnColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnColor.Location = new System.Drawing.Point(328, 122);
this.btnColor.Name = "btnColor";
this.btnColor.Size = new System.Drawing.Size(30, 25);
this.btnColor.TabIndex = 60;
this.btnColor.UseVisualStyleBackColor = true;
this.btnColor.Click += new System.EventHandler(this.btnColor_Click);
//
// tbLabelFile
//
this.tbLabelFile.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)));
this.tbLabelFile.Location = new System.Drawing.Point(125, 257);
this.tbLabelFile.Location = new System.Drawing.Point(125, 265);
this.tbLabelFile.Margin = new System.Windows.Forms.Padding(2);
this.tbLabelFile.Name = "tbLabelFile";
this.tbLabelFile.ReadOnly = true;
@ -392,7 +548,7 @@
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(54, 260);
this.label3.Location = new System.Drawing.Point(54, 268);
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(65, 20);
@ -513,13 +669,15 @@
// groupBox1
//
this.groupBox1.BackColor = System.Drawing.Color.White;
this.groupBox1.Controls.Add(this.numericUpDown3);
this.groupBox1.Controls.Add(this.numericUpDown2);
this.groupBox1.Controls.Add(this.numericUpDown1);
this.groupBox1.Controls.Add(this.numReelLen);
this.groupBox1.Controls.Add(this.label14);
this.groupBox1.Controls.Add(this.numDefectAreaLimit);
this.groupBox1.Controls.Add(this.numDefectCntLength);
this.groupBox1.Controls.Add(this.numDefectCountLimit);
this.groupBox1.Controls.Add(this.btnClearDefect_Path);
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Controls.Add(this.textBox4);
this.groupBox1.Controls.Add(this.comboBox1);
this.groupBox1.Controls.Add(this.btnAddWarn);
this.groupBox1.Controls.Add(this.tbWarnDefect);
this.groupBox1.Controls.Add(this.cbDefectName);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Controls.Add(this.label7);
this.groupBox1.Controls.Add(this.label6);
@ -531,98 +689,129 @@
this.groupBox1.Margin = new System.Windows.Forms.Padding(2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(2);
this.groupBox1.Size = new System.Drawing.Size(406, 323);
this.groupBox1.Size = new System.Drawing.Size(406, 375);
this.groupBox1.TabIndex = 35;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "告警配置";
//
// numericUpDown3
// numReelLen
//
this.numericUpDown3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.numReelLen.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)));
this.numericUpDown3.Location = new System.Drawing.Point(184, 49);
this.numericUpDown3.Maximum = new decimal(new int[] {
this.numReelLen.DecimalPlaces = 2;
this.numReelLen.Location = new System.Drawing.Point(184, 32);
this.numReelLen.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown3.Name = "numericUpDown3";
this.numericUpDown3.Size = new System.Drawing.Size(122, 26);
this.numericUpDown3.TabIndex = 63;
this.numReelLen.Name = "numReelLen";
this.numReelLen.Size = new System.Drawing.Size(122, 26);
this.numReelLen.TabIndex = 65;
//
// numericUpDown2
// label14
//
this.numericUpDown2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(26, 34);
this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(106, 20);
this.label14.TabIndex = 64;
this.label14.Text = "换卷长度提醒m";
//
// numDefectAreaLimit
//
this.numDefectAreaLimit.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)));
this.numericUpDown2.Location = new System.Drawing.Point(184, 108);
this.numericUpDown2.Maximum = new decimal(new int[] {
this.numDefectAreaLimit.DecimalPlaces = 2;
this.numDefectAreaLimit.Location = new System.Drawing.Point(184, 78);
this.numDefectAreaLimit.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown2.Name = "numericUpDown2";
this.numericUpDown2.Size = new System.Drawing.Size(122, 26);
this.numericUpDown2.TabIndex = 62;
this.numDefectAreaLimit.Name = "numDefectAreaLimit";
this.numDefectAreaLimit.Size = new System.Drawing.Size(122, 26);
this.numDefectAreaLimit.TabIndex = 63;
//
// numericUpDown1
// numDefectCntLength
//
this.numericUpDown1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.numDefectCntLength.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)));
this.numericUpDown1.Location = new System.Drawing.Point(184, 173);
this.numericUpDown1.Maximum = new decimal(new int[] {
this.numDefectCntLength.DecimalPlaces = 2;
this.numDefectCntLength.Location = new System.Drawing.Point(184, 126);
this.numDefectCntLength.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numericUpDown1.Name = "numericUpDown1";
this.numericUpDown1.Size = new System.Drawing.Size(122, 26);
this.numericUpDown1.TabIndex = 61;
this.numDefectCntLength.Name = "numDefectCntLength";
this.numDefectCntLength.Size = new System.Drawing.Size(122, 26);
this.numDefectCntLength.TabIndex = 62;
//
// numDefectCountLimit
//
this.numDefectCountLimit.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)));
this.numDefectCountLimit.Location = new System.Drawing.Point(184, 173);
this.numDefectCountLimit.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.numDefectCountLimit.Name = "numDefectCountLimit";
this.numDefectCountLimit.Size = new System.Drawing.Size(122, 26);
this.numDefectCountLimit.TabIndex = 61;
//
// btnClearDefect_Path
//
this.btnClearDefect_Path.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnClearDefect_Path.Image = ((System.Drawing.Image)(resources.GetObject("btnClearDefect_Path.Image")));
this.btnClearDefect_Path.Location = new System.Drawing.Point(371, 233);
this.btnClearDefect_Path.Location = new System.Drawing.Point(344, 237);
this.btnClearDefect_Path.Margin = new System.Windows.Forms.Padding(2);
this.btnClearDefect_Path.Name = "btnClearDefect_Path";
this.btnClearDefect_Path.Size = new System.Drawing.Size(21, 19);
this.btnClearDefect_Path.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.btnClearDefect_Path.TabIndex = 60;
this.btnClearDefect_Path.TabStop = false;
this.btnClearDefect_Path.Click += new System.EventHandler(this.btnClearDefect_Path_Click);
//
// button1
// btnAddWarn
//
this.button1.Location = new System.Drawing.Point(290, 266);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 31);
this.button1.TabIndex = 59;
this.button1.Text = "添加";
this.button1.UseVisualStyleBackColor = true;
this.btnAddWarn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnAddWarn.Location = new System.Drawing.Point(290, 266);
this.btnAddWarn.Name = "btnAddWarn";
this.btnAddWarn.Size = new System.Drawing.Size(75, 31);
this.btnAddWarn.TabIndex = 59;
this.btnAddWarn.Text = "添加";
this.btnAddWarn.UseVisualStyleBackColor = true;
this.btnAddWarn.Click += new System.EventHandler(this.btnAddWarn_Click);
//
// textBox4
// tbWarnDefect
//
this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.tbWarnDefect.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)));
this.textBox4.Location = new System.Drawing.Point(123, 233);
this.textBox4.Margin = new System.Windows.Forms.Padding(2);
this.textBox4.Name = "textBox4";
this.textBox4.ReadOnly = true;
this.textBox4.Size = new System.Drawing.Size(244, 26);
this.textBox4.TabIndex = 58;
this.tbWarnDefect.Location = new System.Drawing.Point(123, 233);
this.tbWarnDefect.Margin = new System.Windows.Forms.Padding(2);
this.tbWarnDefect.Name = "tbWarnDefect";
this.tbWarnDefect.ReadOnly = true;
this.tbWarnDefect.Size = new System.Drawing.Size(183, 26);
this.tbWarnDefect.TabIndex = 58;
//
// comboBox1
// cbDefectName
//
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(123, 269);
this.comboBox1.Margin = new System.Windows.Forms.Padding(2);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(141, 28);
this.comboBox1.TabIndex = 57;
this.cbDefectName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbDefectName.FormattingEnabled = true;
this.cbDefectName.Location = new System.Drawing.Point(123, 269);
this.cbDefectName.Margin = new System.Windows.Forms.Padding(2);
this.cbDefectName.Name = "cbDefectName";
this.cbDefectName.Size = new System.Drawing.Size(141, 28);
this.cbDefectName.TabIndex = 57;
//
// label8
//
@ -647,7 +836,7 @@
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(26, 110);
this.label6.Location = new System.Drawing.Point(26, 128);
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(134, 20);
@ -657,7 +846,7 @@
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(26, 51);
this.label5.Location = new System.Drawing.Point(26, 80);
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(97, 20);
@ -677,7 +866,7 @@
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.groupBox4);
this.splitContainer2.Size = new System.Drawing.Size(1224, 223);
this.splitContainer2.Size = new System.Drawing.Size(1224, 171);
this.splitContainer2.SplitterDistance = 634;
this.splitContainer2.TabIndex = 0;
//
@ -692,7 +881,7 @@
this.groupBox3.Margin = new System.Windows.Forms.Padding(2);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Padding = new System.Windows.Forms.Padding(2);
this.groupBox3.Size = new System.Drawing.Size(634, 223);
this.groupBox3.Size = new System.Drawing.Size(634, 171);
this.groupBox3.TabIndex = 35;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "检测标准设置";
@ -709,14 +898,15 @@
this.Area,
this.DBDL,
this.DBDH,
this.OrAnd});
this.OrAnd,
this.DefectLength,
this.DefectWarn});
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridView1.Location = new System.Drawing.Point(2, 21);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridView1.Size = new System.Drawing.Size(630, 200);
this.dataGridView1.Size = new System.Drawing.Size(630, 148);
this.dataGridView1.TabIndex = 49;
//
// Code
@ -724,36 +914,46 @@
this.Code.HeaderText = "名称";
this.Code.Name = "Code";
this.Code.ReadOnly = true;
this.Code.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// ZXD
//
this.ZXD.HeaderText = "置信度";
this.ZXD.Name = "ZXD";
this.ZXD.ReadOnly = true;
this.ZXD.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Area
//
this.Area.HeaderText = "面积";
this.Area.HeaderText = "面积(mm)";
this.Area.Name = "Area";
this.Area.ReadOnly = true;
this.Area.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// DBDL
//
this.DBDL.HeaderText = "对比度(下限)";
this.DBDL.Name = "DBDL";
this.DBDL.ReadOnly = true;
this.DBDL.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// DBDH
//
this.DBDH.HeaderText = "对比度(上限)";
this.DBDH.Name = "DBDH";
this.DBDH.ReadOnly = true;
this.DBDH.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// OrAnd
//
this.OrAnd.HeaderText = "或向选择";
this.OrAnd.Name = "OrAnd";
this.OrAnd.ReadOnly = true;
//
// DefectLength
//
this.DefectLength.HeaderText = "分布长度(m)";
this.DefectLength.Name = "DefectLength";
//
// DefectWarn
//
this.DefectWarn.HeaderText = "报警个数";
this.DefectWarn.Name = "DefectWarn";
//
// groupBox4
//
@ -766,7 +966,7 @@
this.groupBox4.Margin = new System.Windows.Forms.Padding(2);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(2);
this.groupBox4.Size = new System.Drawing.Size(586, 223);
this.groupBox4.Size = new System.Drawing.Size(586, 171);
this.groupBox4.TabIndex = 36;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "等级判定";
@ -779,7 +979,6 @@
this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Code2,
this.Name2,
this.A,
this.B,
this.C,
@ -788,70 +987,49 @@
this.dataGridView2.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridView2.Location = new System.Drawing.Point(2, 21);
this.dataGridView2.Name = "dataGridView2";
this.dataGridView2.ReadOnly = true;
this.dataGridView2.RowTemplate.Height = 23;
this.dataGridView2.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridView2.Size = new System.Drawing.Size(582, 200);
this.dataGridView2.Size = new System.Drawing.Size(582, 148);
this.dataGridView2.TabIndex = 49;
//
// Code2
//
this.Code2.HeaderText = "Code";
this.Code2.HeaderText = "名称";
this.Code2.Name = "Code2";
this.Code2.ReadOnly = true;
this.Code2.Visible = false;
//
// Name2
//
this.Name2.HeaderText = "名称";
this.Name2.Name = "Name2";
this.Name2.ReadOnly = true;
this.Code2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// A
//
this.A.HeaderText = "A";
this.A.Name = "A";
this.A.ReadOnly = true;
this.A.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// B
//
this.B.HeaderText = "B";
this.B.Name = "B";
this.B.ReadOnly = true;
this.B.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// C
//
this.C.HeaderText = "C";
this.C.Name = "C";
this.C.ReadOnly = true;
this.C.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// D
//
this.D.HeaderText = "D";
this.D.Name = "D";
this.D.ReadOnly = true;
this.D.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// E
//
this.E.HeaderText = "E";
this.E.Name = "E";
this.E.ReadOnly = true;
this.E.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.E.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// btnColor
//
this.btnColor.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnColor.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnColor.BackgroundImage")));
this.btnColor.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.btnColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnColor.Location = new System.Drawing.Point(328, 122);
this.btnColor.Name = "btnColor";
this.btnColor.Size = new System.Drawing.Size(30, 25);
this.btnColor.TabIndex = 60;
this.btnColor.UseVisualStyleBackColor = true;
this.btnColor.Click += new System.EventHandler(this.btnColor_Click);
//
// ProductInfoFrm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@ -873,13 +1051,19 @@
this.tableLayoutPanel1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numStopDis)).EndInit();
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numReelLen)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numDefectAreaLimit)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numDefectCntLength)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numDefectCountLimit)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.btnClearDefect_Path)).EndInit();
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel2.ResumeLayout(false);
@ -928,32 +1112,42 @@
private System.Windows.Forms.Label label4;
private System.Windows.Forms.ComboBox cmbClasses;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.NumericUpDown numericUpDown3;
private System.Windows.Forms.NumericUpDown numericUpDown2;
private System.Windows.Forms.NumericUpDown numericUpDown1;
private System.Windows.Forms.NumericUpDown numDefectAreaLimit;
private System.Windows.Forms.NumericUpDown numDefectCntLength;
private System.Windows.Forms.NumericUpDown numDefectCountLimit;
private System.Windows.Forms.PictureBox btnClearDefect_Path;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox4;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.Button btnAddWarn;
private System.Windows.Forms.TextBox tbWarnDefect;
private System.Windows.Forms.ComboBox cbDefectName;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.DataGridView dataGridView2;
private System.Windows.Forms.Button btnColor;
private System.Windows.Forms.DataGridViewTextBoxColumn Code2;
private System.Windows.Forms.DataGridViewTextBoxColumn A;
private System.Windows.Forms.DataGridViewTextBoxColumn B;
private System.Windows.Forms.DataGridViewTextBoxColumn C;
private System.Windows.Forms.DataGridViewTextBoxColumn D;
private System.Windows.Forms.DataGridViewTextBoxColumn E;
private System.Windows.Forms.CheckBox cbGetHD;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.NumericUpDown numStopDis;
private System.Windows.Forms.DataGridViewTextBoxColumn Code;
private System.Windows.Forms.DataGridViewTextBoxColumn ZXD;
private System.Windows.Forms.DataGridViewTextBoxColumn Area;
private System.Windows.Forms.DataGridViewTextBoxColumn DBDL;
private System.Windows.Forms.DataGridViewTextBoxColumn DBDH;
private System.Windows.Forms.DataGridViewCheckBoxColumn OrAnd;
private System.Windows.Forms.DataGridView dataGridView2;
private System.Windows.Forms.DataGridViewTextBoxColumn Code2;
private System.Windows.Forms.DataGridViewTextBoxColumn Name2;
private System.Windows.Forms.DataGridViewTextBoxColumn A;
private System.Windows.Forms.DataGridViewTextBoxColumn B;
private System.Windows.Forms.DataGridViewTextBoxColumn C;
private System.Windows.Forms.DataGridViewTextBoxColumn D;
private System.Windows.Forms.DataGridViewTextBoxColumn E;
private System.Windows.Forms.Button btnColor;
private System.Windows.Forms.DataGridViewTextBoxColumn DefectLength;
private System.Windows.Forms.DataGridViewTextBoxColumn DefectWarn;
private System.Windows.Forms.NumericUpDown numericUpDown4;
private System.Windows.Forms.NumericUpDown numericUpDown3;
private System.Windows.Forms.NumericUpDown numericUpDown2;
private System.Windows.Forms.NumericUpDown numericUpDown1;
private System.Windows.Forms.NumericUpDown numReelLen;
private System.Windows.Forms.Label label14;
}
}

View File

@ -1,5 +1,7 @@
using GeBoShi.SysCtrl;
using HZH_Controls.Controls;
using Models;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@ -7,9 +9,11 @@ using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace GeBoShi.UI.Product
{
@ -34,7 +38,7 @@ namespace GeBoShi.UI.Product
dataGridView1.RowHeadersWidth = dataGridView2.RowHeadersWidth = 50;
//dataGridView1.ColumnHeadersHeightSizeMode = dataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dataGridView1.RowHeadersWidthSizeMode = dataGridView2.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;//数据量过百绑定太变
dataGridView1.RowTemplate.Height = dataGridView2.RowTemplate.Height = 30;
#endregion
initData();
@ -50,11 +54,29 @@ namespace GeBoShi.UI.Product
cmbClasses.Text = model.Material;
tbColorName.Text = model.ColorName;
int[] rgb = new int[3];
if (!string.IsNullOrEmpty(model.ColorValue))
{
for (int i = 0; i < rgb.Length; i++)
rgb[i] = Convert.ToInt32(model.ColorValue.Split(',')[i]);
tbColorName.ForeColor = Color.FromArgb(rgb[0], rgb[1], rgb[2]);
}
tbSpec.Text = model.Spec;
TrackBarLightValue.Value = model.LightValue;
TrackBarExposureTime.Value = (int)model.ExposureTime;
TrackBarGain.Value = (int)model.Gain;
TrackBarTensionValue.Value = (int)model.TensionValue;
numStopDis.Value = (decimal)model.ThicknessDetectionStopDis;
numReelLen.Value = (decimal)model.residueWarnningLen;
numDefectAreaLimit.Value = (decimal)model.DefectAreaLimit;
numDefectCntLength.Value = (decimal)model.DefectCntLength;
numDefectCountLimit.Value = (decimal)model.DefectCountLimit;
tbWarnDefect.Text = model.WarnDefect;
cbGetHD.Checked = model.OpenThicknessDetection;
numStopDis.Value = (int)model.ThicknessDetectionStopDis;
}
}
@ -86,6 +108,22 @@ namespace GeBoShi.UI.Product
}
if (!string.IsNullOrEmpty(errorStr))
MessageBox.Show("模型缺少词典文件:" + errorStr, "警告");
//加载材质
string configPath = ConfMgr.Instance.ConfigDir + $"\\material.json";
if (File.Exists(configPath))
{
string lsTmp = File.ReadAllText(configPath);
JArray defectItemList = JArray.Parse(lsTmp);
cmbClasses.Items.Clear();
foreach (JObject item in defectItemList)
{
string name = item.Value<string>("name");
cmbClasses.Items.Add(name);
}
}
else
MessageBox.Show("模型材质文件:" + configPath, "警告");
}
private void cmbClasses_SelectedIndexChanged(object sender, EventArgs e)
@ -117,12 +155,179 @@ namespace GeBoShi.UI.Product
private void tsbtnSave_Click(object sender, EventArgs e)
{
try
{
if (this.cmbClasses.SelectedIndex < 0) throw new Exception("请选择材质!");
if (string.IsNullOrEmpty(this.txtName.Text)) throw new Exception("请填写名称!");
if (string.IsNullOrEmpty(this.tbColorName.Text)) throw new Exception("请填写颜色!");
if (this.cmbDefectModelFile.SelectedIndex < 0) throw new Exception("请选择模型!");
model.Name = txtName.Text;
model.Material = cmbClasses.Text;
model.ColorName = tbColorName.Text;
model.ModelName = cmbDefectModelFile.Text;
model.Spec = tbSpec.Text;
model.LightValue = (int)TrackBarLightValue.Value;
model.ExposureTime = (double)TrackBarExposureTime.Value;
model.Gain = (double)TrackBarGain.Value;
model.TensionValue = (double)TrackBarTensionValue.Value;
model.OpenThicknessDetection = cbGetHD.Checked;
model.ThicknessDetectionStopDis = (int)numStopDis.Value;
model.DefectAreaLimit = (int)numDefectAreaLimit.Value;
model.DefectCntLength = (double)numDefectCntLength.Value;
model.DefectCountLimit = (int)numDefectCountLimit.Value;
model.WarnDefect = tbWarnDefect.Text;
model.residueWarnningLen = (double)numReelLen.Value;
//缺陷阈值
if (model.QualifiedLimitList == null)
model.QualifiedLimitList = new List<Models.QualifiedLimit>();
else
model.QualifiedLimitList.Clear();
QualifiedLimit qualifiedLimit = new QualifiedLimit();
string configPath = ConfMgr.Instance.SysConfigParams.AIModelPath + $"\\{tbLabelFile.Text}";
string lsTmp = File.ReadAllText(configPath);
JArray defectItemList = JArray.Parse(lsTmp);
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
string code2 = dataGridView1.Rows[i].Cells["Code"].Value.ToString();
string nameCode = defectItemList.FirstOrDefault(x => x.Value<string>("code") == code2).Value<string>("name");
qualifiedLimit = new Models.QualifiedLimit()
{
Code = dataGridView1.Rows[i].Cells["Code"].Value.ToString(),
ZXD = Utils.IsDecimal(dataGridView1.Rows[i].Cells["ZXD"].Value) ? Convert.ToDouble(dataGridView1.Rows[i].Cells["ZXD"].Value) : 0,
Area = Utils.IsDecimal(dataGridView1.Rows[i].Cells["Area"].Value) ? Convert.ToDouble(dataGridView1.Rows[i].Cells["Area"].Value) : 0,
ContrastLower = Utils.IsDecimal(dataGridView1.Rows[i].Cells["DBDL"].Value) ? Utils.PercentToContrast(Convert.ToDouble(dataGridView1.Rows[i].Cells["DBDL"].Value)) : 0,
ContrastTop = Utils.IsDecimal(dataGridView1.Rows[i].Cells["DBDH"].Value) ? Utils.PercentToContrast(Convert.ToDouble(dataGridView1.Rows[i].Cells["DBDH"].Value)) : 0,
IsOR = Convert.ToBoolean(dataGridView1.Rows[i].Cells["OrAnd"].Value),
NameCode = nameCode,
DefectWarnLength = Utils.IsNumber(dataGridView1.Rows[i].Cells["DefectLength"].Value) ? Convert.ToInt32(dataGridView1.Rows[i].Cells["DefectLength"].Value) : 0,
DefectWarnCnt = Utils.IsDecimal(dataGridView1.Rows[i].Cells["DefectWarn"].Value) ? Convert.ToInt32(dataGridView1.Rows[i].Cells["DefectWarn"].Value) : 0,
ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code
};
if (qualifiedLimit.ContrastLower + qualifiedLimit.ContrastTop > 0 && qualifiedLimit.ContrastTop < qualifiedLimit.ContrastLower)
throw new Exception($"检测标准中第{i + 1}行中对比度上限值({qualifiedLimit.ContrastTop})不可小于下限值({qualifiedLimit.ContrastLower})");
model.QualifiedLimitList.Add(qualifiedLimit);
}
//产品等级
if (model.GradeLimitList == null)
model.GradeLimitList = new List<Models.GradeLimit>();
else
model.GradeLimitList.Clear();
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
model.GradeLimitList.Add(
new Models.GradeLimit()
{
Code = dataGridView2.Rows[i].Cells["Code2"].Value.ToString(),
A = Utils.IsNumber(dataGridView2.Rows[i].Cells["A"].Value) ? Convert.ToInt32(dataGridView2.Rows[i].Cells["A"].Value) : 0,
B = Utils.IsNumber(dataGridView2.Rows[i].Cells["B"].Value) ? Convert.ToInt32(dataGridView2.Rows[i].Cells["B"].Value) : 0,
C = Utils.IsNumber(dataGridView2.Rows[i].Cells["C"].Value) ? Convert.ToInt32(dataGridView2.Rows[i].Cells["C"].Value) : 0,
D = Utils.IsNumber(dataGridView2.Rows[i].Cells["D"].Value) ? Convert.ToInt32(dataGridView2.Rows[i].Cells["D"].Value) : 0,
E = Utils.IsNumber(dataGridView2.Rows[i].Cells["E"].Value) ? Convert.ToInt32(dataGridView2.Rows[i].Cells["E"].Value) : 0,
ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code
});
}
//
model.ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code;
bool result;
if (model.Id == 0)
{
model.CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code;
result = service.InsertNav(model);
}
else
{
result = service.UpdateNav(model);
}
if (!result)
throw new Exception("数据保存失败!");
else
MessageBox.Show("保存成功!", "保存");
}
catch (Exception ex)
{
MessageBox.Show("保存出错:" + ex.Message, "警告");
}
}
private void cmbDefectModelFile_TextChanged(object sender, EventArgs e)
{
try
{
tbLabelFile.Text = cmbDefectModelFile.Text.Replace(".trt", ".json");
//加载缺陷
string configPath = ConfMgr.Instance.SysConfigParams.AIModelPath + $"\\{tbLabelFile.Text}";
string lsTmp = File.ReadAllText(configPath);
JArray defectItemList = JArray.Parse(lsTmp);
//加行
dataGridView1.Rows.Clear();
dataGridView2.Rows.Clear();
cbDefectName.Items.Clear();
foreach (JObject item in defectItemList)
{
string code = item.Value<string>("code");
string name = item.Value<string>("name");
//color = item.Value<string>("color");
dataGridView1.Rows.Add();
dataGridView1.Rows[dataGridView1.RowCount - 1].HeaderCell.Value = name;
dataGridView1[0, dataGridView1.RowCount - 1].Value = code;
dataGridView2.Rows.Add();
dataGridView2.Rows[dataGridView2.RowCount - 1].HeaderCell.Value = name;
dataGridView2[0, dataGridView2.RowCount - 1].Value = code;
cbDefectName.Items.Add(name);
}
//模型是否是产品模型
if (model.ModelName == cmbDefectModelFile.Text)
{
//加载参数
string code;
QualifiedLimit item1;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
code = dataGridView1.Rows[i].Cells["Code"].Value.ToString();
item1 = model.QualifiedLimitList.FirstOrDefault(m => m.Code == code);
if (item1 != null)
{
dataGridView1.Rows[i].Cells["ZXD"].Value = item1.ZXD;
dataGridView1.Rows[i].Cells["Area"].Value = item1.Area;
dataGridView1.Rows[i].Cells["DBDH"].Value = Utils.ContrastToPercent(item1.ContrastTop);
dataGridView1.Rows[i].Cells["DBDL"].Value = Utils.ContrastToPercent(item1.ContrastLower);
dataGridView1.Rows[i].Cells["OrAnd"].Value = item1.IsOR;
dataGridView1.Rows[i].Cells["DefectLength"].Value = item1.DefectWarnLength;
dataGridView1.Rows[i].Cells["DefectWarn"].Value = item1.DefectWarnCnt;
}
}
GradeLimit item2;
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
code = dataGridView2.Rows[i].Cells["Code2"].Value.ToString();
item2 = model.GradeLimitList.FirstOrDefault(m => m.Code == code);
if (item2 != null)
{
dataGridView2.Rows[i].Cells["A"].Value = item2.A;
dataGridView2.Rows[i].Cells["B"].Value = item2.B;
dataGridView2.Rows[i].Cells["C"].Value = item2.C;
dataGridView2.Rows[i].Cells["D"].Value = item2.D;
dataGridView2.Rows[i].Cells["E"].Value = item2.E;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("载入出错:" + ex.Message, "警告");
}
}
private void btnColor_Click(object sender, EventArgs e)
@ -137,5 +342,62 @@ namespace GeBoShi.UI.Product
tbColorName.ForeColor = selectedColor;
}
}
private void btnClearDefect_Path_Click(object sender, EventArgs e)
{
tbWarnDefect.Text = "";
}
private void btnAddWarn_Click(object sender, EventArgs e)
{
if(tbWarnDefect.Text == "")
{
tbWarnDefect.Text += cbDefectName.Text;
}
else
tbWarnDefect.Text += $",{cbDefectName.Text}";
}
private void TrackBarLightValue_ValueChanged(object sender, EventArgs e)
{
UCTrackBar trackBar = (UCTrackBar)sender;
if(trackBar.Name == "TrackBarLightValue")
{
numericUpDown1.Value = (decimal)trackBar.Value;
}
else if (trackBar.Name == "TrackBarExposureTime")
{
numericUpDown2.Value = (decimal)trackBar.Value;
}
else if (trackBar.Name == "TrackBarGain")
{
numericUpDown3.Value = (decimal)trackBar.Value;
}
else if (trackBar.Name == "TrackBarTensionValue")
{
numericUpDown4.Value = (decimal)trackBar.Value;
}
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
NumericUpDown num = (NumericUpDown)sender;
if (num.Name == "numericUpDown1")
{
TrackBarLightValue.Value = (float)num.Value > TrackBarLightValue.MaxValue? TrackBarLightValue.MaxValue : (float)num.Value;
}
else if (num.Name == "numericUpDown2")
{
TrackBarExposureTime.Value = (float)num.Value > TrackBarExposureTime.MaxValue ? TrackBarExposureTime.MaxValue : (float)num.Value;
}
else if (num.Name == "numericUpDown3")
{
TrackBarGain.Value = (float)num.Value > TrackBarGain.MaxValue ? TrackBarGain.MaxValue : (float)num.Value;
}
else if (num.Name == "numericUpDown4")
{
TrackBarTensionValue.Value = (float)num.Value > TrackBarTensionValue.MaxValue ? TrackBarTensionValue.MaxValue : (float)num.Value;
}
}
}
}

View File

@ -140,6 +140,23 @@
/iY4EZIJDhw19sXw0xxiqQlOgmTCeYGY3xWcAMmE83aHTAF2XzgBkgl2uD1uK4xHAKspnAQpjHhNr/il
xRVOhBRCfPyLK5wMaTfWQYSPluECSCHGZ+9ZXEndgKKTwNt1/tHAJlI0sHnsTJIGIh5c7Lq/f9Aa9oDs
Z3ZiBQO2fqQo3R8T+TKw9dOPUDZPgkk0emXD9mCFLPsAVd5Z/YQOzbIAAAAASUVORK5CYII=
</value>
</data>
<data name="btnClearDefect_Path.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
DAAACwwBP0AiyAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAJRSURB
VFhHxZfNTsMwEISBtyoXKM3TwIUDTa9U4h8BT8CDAiphd+J118nENlCEpU9q7dmZrZ2mzZ6Mg38mfdN1
XUTGfpjfBfsDbx06HwVY+Fgujjbt4vR9uTgcCH8DvN+Wi9mmbc4k49h5Q4DuPtvmpVs1nfG5aq530ATC
4ZV6v5r3gb6QT3zsBU54o+tBzAImsTp4EG/JnIuuF8q2nzORYjvxnSZcePLJPZop2rgDMyYy5HiwE2HQ
UEcfrjXEy9BM1WpBfw1kulU2q+a2ogmEQ0s8DNtVHUnh1HkZ8qnuVBeKffB221VDag1k9PUYY4PCTsj6
qAlXWwofXk/bBmxCF2ULSztxH0wwEK5zRGvAc1sT83w4UFEwzJ9j2zw67SPTGPAK2kFe8iYSjctbeqmw
NQMePFwZTURqm8hRCFfoZCQ2UThfBmry4QqdTIhNrPLn7IG2HK7QyRGuiex5K9DUhSt0coRrYM1CPdDs
sgEX/swCGdDWNUEnIz8JNyqboJPAhSd/VL4DavNN0MnqcPmqrRW2ZhSaGE1sw9vmiRkafovxmmgMeAXt
IC95g4lgmL+3h3AbVU2Ee0MYMS+G62IwemAGhqyPttTV5o9MvdPa2IAZZG+5LNyw+Yomkp9yLba/ZFes
wJD1qXOM2Dq0xMNAVu/TF71fnBwyoSEFtfd230T2OtJM0fcFhb/lw3Mr4pqYvJ6Gf8unHkxqflIprgl6
XWmm6CDGEOGrF8h3F+f0k3AjNqFe3luyZB0jEcqD41wfIN8u/uDhVDzDw+m8z+v2vgCLN08Z7ifCRgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="btnColor.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -169,23 +186,6 @@
K2cfqLqgmoeQmwnBQPckpQbPu4oKsh9+Tv3Nx3OKr6JkG7ZfcBPBQEMOZXcTB48zIDJnZPldDxkoFd8p
oxowUlwRNwPIGMJqMCzeD//pp5k9LCMAZiCMNfDs0V5KtnVxQYA2xgQUPzadTyxcHDCCV2fG51U2fHLl
fcD67BdP+ZbfV4mf5xA9xM9zSfoH/G0ZLUBVVuQAAAAASUVORK5CYII=
</value>
</data>
<data name="btnClearDefect_Path.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
DAAACwwBP0AiyAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAJRSURB
VFhHxZfNTsMwEISBtyoXKM3TwIUDTa9U4h8BT8CDAiphd+J118nENlCEpU9q7dmZrZ2mzZ6Mg38mfdN1
XUTGfpjfBfsDbx06HwVY+Fgujjbt4vR9uTgcCH8DvN+Wi9mmbc4k49h5Q4DuPtvmpVs1nfG5aq530ATC
4ZV6v5r3gb6QT3zsBU54o+tBzAImsTp4EG/JnIuuF8q2nzORYjvxnSZcePLJPZop2rgDMyYy5HiwE2HQ
UEcfrjXEy9BM1WpBfw1kulU2q+a2ogmEQ0s8DNtVHUnh1HkZ8qnuVBeKffB221VDag1k9PUYY4PCTsj6
qAlXWwofXk/bBmxCF2ULSztxH0wwEK5zRGvAc1sT83w4UFEwzJ9j2zw67SPTGPAK2kFe8iYSjctbeqmw
NQMePFwZTURqm8hRCFfoZCQ2UThfBmry4QqdTIhNrPLn7IG2HK7QyRGuiex5K9DUhSt0coRrYM1CPdDs
sgEX/swCGdDWNUEnIz8JNyqboJPAhSd/VL4DavNN0MnqcPmqrRW2ZhSaGE1sw9vmiRkafovxmmgMeAXt
IC95g4lgmL+3h3AbVU2Ee0MYMS+G62IwemAGhqyPttTV5o9MvdPa2IAZZG+5LNyw+Yomkp9yLba/ZFes
wJD1qXOM2Dq0xMNAVu/TF71fnBwyoSEFtfd230T2OtJM0fcFhb/lw3Mr4pqYvJ6Gf8unHkxqflIprgl6
XWmm6CDGEOGrF8h3F+f0k3AjNqFe3luyZB0jEcqD41wfIN8u/uDhVDzDw+m8z+v2vgCLN08Z7ifCRgAA
AABJRU5ErkJggg==
</value>
</data>
<metadata name="Code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@ -206,10 +206,55 @@
<metadata name="OrAnd.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DefectLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DefectWarn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZXD.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Area.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DBDL.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DBDH.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OrAnd.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DefectLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DefectWarn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Code2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Name2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="A.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="B.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="C.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="D.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="E.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Code2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="A.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@ -110,6 +110,12 @@
this.tbDefectPath = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.skinTabPage6 = new CCWin.SkinControl.SkinTabPage();
this.groupBox9 = new System.Windows.Forms.GroupBox();
this.panel10 = new System.Windows.Forms.Panel();
this.cbMY2 = new System.Windows.Forms.CheckBox();
this.cbMX2 = new System.Windows.Forms.CheckBox();
this.cbMY1 = new System.Windows.Forms.CheckBox();
this.cbMX1 = new System.Windows.Forms.CheckBox();
this.groupBox23 = new System.Windows.Forms.GroupBox();
this.panel23 = new System.Windows.Forms.Panel();
this.tbPdtPath = new System.Windows.Forms.TextBox();
@ -210,6 +216,8 @@
((System.ComponentModel.ISupportInitialize)(this.btnClearDefect_Path)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numDefect_Path_AutoClear)).BeginInit();
this.skinTabPage6.SuspendLayout();
this.groupBox9.SuspendLayout();
this.panel10.SuspendLayout();
this.groupBox23.SuspendLayout();
this.panel23.SuspendLayout();
this.groupBox14.SuspendLayout();
@ -264,7 +272,7 @@
this.skinTabControl1.PageNorml = null;
this.skinTabControl1.PageNormlTxtColor = System.Drawing.Color.White;
this.skinTabControl1.SelectedIndex = 1;
this.skinTabControl1.Size = new System.Drawing.Size(819, 477);
this.skinTabControl1.Size = new System.Drawing.Size(819, 517);
this.skinTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.skinTabControl1.TabIndex = 25;
//
@ -278,7 +286,7 @@
this.skinTabPage1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.skinTabPage1.Location = new System.Drawing.Point(0, 36);
this.skinTabPage1.Name = "skinTabPage1";
this.skinTabPage1.Size = new System.Drawing.Size(819, 441);
this.skinTabPage1.Size = new System.Drawing.Size(819, 481);
this.skinTabPage1.TabIndex = 0;
this.skinTabPage1.TabItemImage = null;
this.skinTabPage1.Text = "功能设置";
@ -334,7 +342,7 @@
this.skinTabPage2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.skinTabPage2.Location = new System.Drawing.Point(0, 36);
this.skinTabPage2.Name = "skinTabPage2";
this.skinTabPage2.Size = new System.Drawing.Size(819, 441);
this.skinTabPage2.Size = new System.Drawing.Size(819, 481);
this.skinTabPage2.TabIndex = 1;
this.skinTabPage2.TabItemImage = null;
this.skinTabPage2.Text = "设备与通信";
@ -375,11 +383,6 @@
// numCamDev2
//
this.numCamDev2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.numCamDev2.Increment = new decimal(new int[] {
100,
0,
0,
0});
this.numCamDev2.Location = new System.Drawing.Point(373, 9);
this.numCamDev2.Maximum = new decimal(new int[] {
1000000000,
@ -405,11 +408,6 @@
// numCamIndex2
//
this.numCamIndex2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.numCamIndex2.Increment = new decimal(new int[] {
100,
0,
0,
0});
this.numCamIndex2.Location = new System.Drawing.Point(103, 9);
this.numCamIndex2.Maximum = new decimal(new int[] {
1000000000,
@ -491,11 +489,6 @@
// numCamDev
//
this.numCamDev.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.numCamDev.Increment = new decimal(new int[] {
100,
0,
0,
0});
this.numCamDev.Location = new System.Drawing.Point(373, 9);
this.numCamDev.Maximum = new decimal(new int[] {
1000000000,
@ -521,11 +514,6 @@
// numCamIndex
//
this.numCamIndex.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.numCamIndex.Increment = new decimal(new int[] {
100,
0,
0,
0});
this.numCamIndex.Location = new System.Drawing.Point(103, 9);
this.numCamIndex.Maximum = new decimal(new int[] {
1000000000,
@ -791,7 +779,7 @@
this.skinTabPage3.Dock = System.Windows.Forms.DockStyle.Fill;
this.skinTabPage3.Location = new System.Drawing.Point(0, 36);
this.skinTabPage3.Name = "skinTabPage3";
this.skinTabPage3.Size = new System.Drawing.Size(819, 441);
this.skinTabPage3.Size = new System.Drawing.Size(819, 481);
this.skinTabPage3.TabIndex = 6;
this.skinTabPage3.TabItemImage = null;
this.skinTabPage3.Text = "云端与MES上传";
@ -970,7 +958,7 @@
this.skinTabPage4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.skinTabPage4.Location = new System.Drawing.Point(0, 36);
this.skinTabPage4.Name = "skinTabPage4";
this.skinTabPage4.Size = new System.Drawing.Size(819, 441);
this.skinTabPage4.Size = new System.Drawing.Size(819, 481);
this.skinTabPage4.TabIndex = 3;
this.skinTabPage4.TabItemImage = null;
this.skinTabPage4.Text = "图像保存";
@ -1335,6 +1323,7 @@
// skinTabPage6
//
this.skinTabPage6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(8)))), ((int)(((byte)(31)))), ((int)(((byte)(120)))));
this.skinTabPage6.Controls.Add(this.groupBox9);
this.skinTabPage6.Controls.Add(this.groupBox23);
this.skinTabPage6.Controls.Add(this.groupBox14);
this.skinTabPage6.Controls.Add(this.groupBox13);
@ -1344,11 +1333,90 @@
this.skinTabPage6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.skinTabPage6.Location = new System.Drawing.Point(0, 36);
this.skinTabPage6.Name = "skinTabPage6";
this.skinTabPage6.Size = new System.Drawing.Size(819, 441);
this.skinTabPage6.Size = new System.Drawing.Size(819, 481);
this.skinTabPage6.TabIndex = 5;
this.skinTabPage6.TabItemImage = null;
this.skinTabPage6.Text = "系统设置";
//
// groupBox9
//
this.groupBox9.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(8)))), ((int)(((byte)(31)))), ((int)(((byte)(120)))));
this.groupBox9.Controls.Add(this.panel10);
this.groupBox9.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox9.ForeColor = System.Drawing.SystemColors.ControlLightLight;
this.groupBox9.Location = new System.Drawing.Point(2, 408);
this.groupBox9.Margin = new System.Windows.Forms.Padding(2);
this.groupBox9.Name = "groupBox9";
this.groupBox9.Padding = new System.Windows.Forms.Padding(2);
this.groupBox9.Size = new System.Drawing.Size(807, 66);
this.groupBox9.TabIndex = 38;
this.groupBox9.TabStop = false;
this.groupBox9.Text = "相机采图";
//
// panel10
//
this.panel10.BackColor = System.Drawing.Color.White;
this.panel10.Controls.Add(this.cbMY2);
this.panel10.Controls.Add(this.cbMX2);
this.panel10.Controls.Add(this.cbMY1);
this.panel10.Controls.Add(this.cbMX1);
this.panel10.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel10.Location = new System.Drawing.Point(2, 16);
this.panel10.Margin = new System.Windows.Forms.Padding(2);
this.panel10.Name = "panel10";
this.panel10.Size = new System.Drawing.Size(803, 48);
this.panel10.TabIndex = 0;
//
// cbMY2
//
this.cbMY2.AutoSize = true;
this.cbMY2.ForeColor = System.Drawing.SystemColors.ControlText;
this.cbMY2.Location = new System.Drawing.Point(557, 19);
this.cbMY2.Margin = new System.Windows.Forms.Padding(2);
this.cbMY2.Name = "cbMY2";
this.cbMY2.Size = new System.Drawing.Size(132, 16);
this.cbMY2.TabIndex = 11;
this.cbMY2.Text = "相机2图像Y方向翻转";
this.cbMY2.UseVisualStyleBackColor = true;
//
// cbMX2
//
this.cbMX2.AutoSize = true;
this.cbMX2.ForeColor = System.Drawing.SystemColors.ControlText;
this.cbMX2.Location = new System.Drawing.Point(397, 19);
this.cbMX2.Margin = new System.Windows.Forms.Padding(2);
this.cbMX2.Name = "cbMX2";
this.cbMX2.Size = new System.Drawing.Size(132, 16);
this.cbMX2.TabIndex = 10;
this.cbMX2.Text = "相机2图像X方向翻转";
this.cbMX2.UseVisualStyleBackColor = true;
//
// cbMY1
//
this.cbMY1.AutoSize = true;
this.cbMY1.ForeColor = System.Drawing.SystemColors.ControlText;
this.cbMY1.Location = new System.Drawing.Point(239, 19);
this.cbMY1.Margin = new System.Windows.Forms.Padding(2);
this.cbMY1.Name = "cbMY1";
this.cbMY1.Size = new System.Drawing.Size(132, 16);
this.cbMY1.TabIndex = 9;
this.cbMY1.Text = "相机1图像Y方向翻转";
this.cbMY1.UseVisualStyleBackColor = true;
//
// cbMX1
//
this.cbMX1.AutoSize = true;
this.cbMX1.ForeColor = System.Drawing.SystemColors.ControlText;
this.cbMX1.Location = new System.Drawing.Point(79, 19);
this.cbMX1.Margin = new System.Windows.Forms.Padding(2);
this.cbMX1.Name = "cbMX1";
this.cbMX1.Size = new System.Drawing.Size(132, 16);
this.cbMX1.TabIndex = 8;
this.cbMX1.Text = "相机1图像X方向翻转";
this.cbMX1.UseVisualStyleBackColor = true;
//
// groupBox23
//
this.groupBox23.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
@ -1867,7 +1935,7 @@
this.skinTabPage8.Dock = System.Windows.Forms.DockStyle.Fill;
this.skinTabPage8.Location = new System.Drawing.Point(0, 36);
this.skinTabPage8.Name = "skinTabPage8";
this.skinTabPage8.Size = new System.Drawing.Size(819, 441);
this.skinTabPage8.Size = new System.Drawing.Size(819, 481);
this.skinTabPage8.TabIndex = 8;
this.skinTabPage8.TabItemImage = null;
this.skinTabPage8.Text = "打印设置";
@ -2218,7 +2286,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(819, 579);
this.ClientSize = new System.Drawing.Size(819, 619);
this.Controls.Add(this.skinTabControl1);
this.Controls.Add(this.toolStrip1);
this.Controls.Add(this.uiTitel1);
@ -2271,6 +2339,9 @@
((System.ComponentModel.ISupportInitialize)(this.btnClearDefect_Path)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numDefect_Path_AutoClear)).EndInit();
this.skinTabPage6.ResumeLayout(false);
this.groupBox9.ResumeLayout(false);
this.panel10.ResumeLayout(false);
this.panel10.PerformLayout();
this.groupBox23.ResumeLayout(false);
this.panel23.ResumeLayout(false);
this.panel23.PerformLayout();
@ -2454,5 +2525,11 @@
private System.Windows.Forms.CheckBox chkSave3;
private System.Windows.Forms.CheckBox chkSave2;
private System.Windows.Forms.CheckBox chkSave1;
private System.Windows.Forms.GroupBox groupBox9;
private System.Windows.Forms.Panel panel10;
private System.Windows.Forms.CheckBox cbMY1;
private System.Windows.Forms.CheckBox cbMX1;
private System.Windows.Forms.CheckBox cbMY2;
private System.Windows.Forms.CheckBox cbMX2;
}
}

View File

@ -130,6 +130,11 @@ namespace GeBoShi.UI.SysSet
tbCloudPassword.Text = ConfMgr.Instance.SysConfigParams.CloudPassword;
////////////////////////////////////////
///
this.cbMX1.Checked = ConfMgr.Instance.SysConfigParams.Cam1_flipX;
this.cbMY1.Checked = ConfMgr.Instance.SysConfigParams.Cam1_flipY;
this.cbMX2.Checked = ConfMgr.Instance.SysConfigParams.Cam2_flipX;
this.cbMY2.Checked = ConfMgr.Instance.SysConfigParams.Cam2_flipY;
}
private void GetParamsSave()
@ -209,6 +214,13 @@ namespace GeBoShi.UI.SysSet
configParams.CloudUser = this.tbCloudUser.Text;
configParams.CloudPassword = this.tbCloudPassword.Text;
///////////////////////////////////////////
///
configParams.Cam1_flipX = this.cbMX1.Checked;
configParams.Cam1_flipY = this.cbMY1.Checked;
configParams.Cam2_flipX = this.cbMX2.Checked;
configParams.Cam2_flipY = this.cbMY2.Checked;
ConfMgr.Instance.WriteSysConfParams(configParams);
}

View File

@ -255,17 +255,17 @@
<data name="tsbtnDatImport.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJWSURBVFhHvZc9SyNRGIXzI/wBa7OoCGGIO34zfkVIcP2K
YEQWP4ogKggusrCgsbRIodultt5mwcLKwkbE/2BlZScKosjVZ5xXrpOZZJLc2QNnYDL3nnPm3vtOeBP1
YnLtl5Vd3i698dTJ5G56Z5bu28eyz6lUSgkHHOeF3/pHM0+MGcr9uGRO8Uq1eDL1I51f+2vb9uPg+HcF
F3bLavP4yuXOyY3L4oVyKfc8Wz38544dzxfccGig5cnWxsjcSkef4zxgipiYNEJCoUEYNNH2bMLBQN4k
SLAZEgRtzyYcLFuQgAmi7dmEg0H6/poimpEDsP/TG/tGgrCdaKEZOQAT2TOpAA6RVAGhhLoR91IFUEyZ
yz1j6grgF5bSklCQsUIxwxhi6g/5KUAymfzy9sO1LiJEzD/ZBNH27N8hIVpnds4SR0oJe7fKsYSoCAD+
Vwh0AgOAsBDdG3+aDlFRBVyq8Wu28BEAtk9tKrunT839LJmpAveiGURhV6GkegaH1GhuyRUV6sHFrGYV
NBIAmjgTTQWwfr9/mIKEo7LhACbMWbmPANXYOTxt1LyiCoJAGVqWddaWnj/XzVsXD9Q3u9s9XLH9F4SZ
y5uLsPH/AlDLXJ9sgp8CiLn+FsI4zCHann04GORfOhNEM3IAVoB9NBEkUhXoYBATOURMgrFWgR8SwC8c
SxUEwR/AJCMFGJ6aveVtgwSaIasYqTEx2ZpBtoGtQbM/PZHxbKqDb8Tk+l55ZDZ/p+8tgfSDqJtAnunn
hSWvuzn1Q9pzWu6w9hzq7TmtfHB7nki8Av1aq01yIVmPAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJYSURBVFhHvZc9SyNRGIXzI/wBplk/EMIQHb9Wxo+NkKBG
jWAWWXS3CKKC4CLCwuqWW6RQu9TWNoKFlYWNiP/Bymq7RUFclqvPOK9cJzPJJLnjgTMwmXvPOXPvfSe8
iUYxs7pj5Va2ys88c7KF28G55buOT7l/6XRaCT86zn9+G57IPjJmtPDlijl716rNk2kcmeLqsW3bDyOT
0wp+/llRG0fXLrdPb13uXSqXcs+zb/sn7tjJYskNhwZanmx9jC987R5ynHtMEROTZkgoNAiDJtqeTTgY
yJsECbZCgqDt2YSDZQsSMEG0PZtwMEjfX1NEM3IA9n92/ZeRIGwnWmhGDsBE9kwqgEMkVUAooW7EvVQB
FFPmcs+YhgL4haW0JBRkrFDMMIaY+kO+CZBKpdqff7jRRYSI+SebINqe/QskRHJu+zxxoJRwcLMSS4iq
AOC9QqATGACEhehfP2w5RFUVcKnFD7nSawDYld9Q9sCQWvheNlMF7kUziMLeUlkNjIyqicKyKyrUg4tZ
3SpoJgA0cSZaCmD9ePkwBQlHZdMBTJizcq8BarFnbNaoeVUVBIEytCzrvDOzeKGbJ5d+qz673z1csf0X
hJnLm4uw8f8CUM9cn2yCbwKIuf4WwjjMIdqefTgY5F86E0QzcgBWgH00ESRSFehgEBM5REyCsVaBHxLA
LxxLFQTBH8AkIwUYy8//4W2DBFohqxipMTHZmkG2ga1BczgzlfVsaoNvxMzabmV8vvhX31sC6QdRN4E8
088LS95wc+qHtOe03GHtOdTbc1r54PY8kXgCvU6rRS9l/GkAAAAASUVORK5CYII=
</value>
</data>
<data name="tsbtnExit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@ -0,0 +1,74 @@
[
{
"id": 0,
"code": "jb",
"name": "浆斑",
"color": "Red"
},
{
"id": 1,
"code": "wy",
"name": "污印",
"color": "Lime"
},
{
"id": 2,
"code": "mj",
"name": "棉结",
"color": "DarkViolet"
},
{
"id": 3,
"code": "hy",
"name": "黄印",
"color": "Magenta"
},
{
"id": 4,
"code": "lj",
"name": "垃圾",
"color": "Orange"
},
{
"id": 5,
"code": "yss",
"name": "异色丝",
"color": "Brown"
},
{
"id": 6,
"code": "zy",
"name": "皱印",
"color": "Olive"
},
{
"id": 7,
"code": "wc",
"name": "蚊虫",
"color": "PaleGreen"
},
{
"id": 8,
"code": "cs",
"name": "擦伤",
"color": "CadetBlue"
},
{
"id": 9,
"code": "cy",
"name": "重影",
"color": "Aqua"
},
{
"id": 10,
"code": "tcy",
"name": "停车印",
"color": "YellowGreen"
},
{
"id": 11,
"code": "jt",
"name": "接头",
"color": "Blue"
}
]

View File

@ -0,0 +1,74 @@
[
{
"id": 0,
"code": "jb",
"name": "浆斑",
"color": "Red"
},
{
"id": 1,
"code": "wy",
"name": "污印",
"color": "Lime"
},
{
"id": 2,
"code": "mj",
"name": "棉结",
"color": "DarkViolet"
},
{
"id": 3,
"code": "hy",
"name": "黄印",
"color": "Magenta"
},
{
"id": 4,
"code": "lj",
"name": "垃圾",
"color": "Orange"
},
{
"id": 5,
"code": "yss",
"name": "异色丝",
"color": "Brown"
},
{
"id": 6,
"code": "zy",
"name": "皱印",
"color": "Olive"
},
{
"id": 7,
"code": "wc",
"name": "蚊虫",
"color": "PaleGreen"
},
{
"id": 8,
"code": "cs",
"name": "擦伤",
"color": "CadetBlue"
},
{
"id": 9,
"code": "cy",
"name": "重影",
"color": "Aqua"
},
{
"id": 10,
"code": "tcy",
"name": "停车印",
"color": "YellowGreen"
},
{
"id": 11,
"code": "jt",
"name": "接头",
"color": "Blue"
}
]

View File

@ -3,17 +3,17 @@
SaveAllImg=False
[DefectSrcImag]
SavePath=D:\Image\DefectSrcImag
AutoSave=True
AutoSave=False
AutoDelete=True
AutoDeleteDays=3
[DefectSmallImag]
SavePath=D:\Image\DefectSmallImag
AutoSave=True
AutoSave=False
AutoDelete=True
AutoDeleteDays=3
[DefectSplicImag]
SavePath=D:\Image\DefectSplicImag
AutoSave=True
AutoSave=False
AutoDelete=True
AutoDeleteDays=3
[Log]
@ -23,16 +23,18 @@ AutoDeleteDays=0
[SysFunction]
OpenBuzzer=True
OpenDoor=True
OpenIO=False
OpenPLC=True
[Dev]
LightCom=COM1
LightComBaud=9600
IODevName=
IODevName=1111
IOCfgPath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ConfigFiles\IOCard_default.xml
[Sys]
AIModelPath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ConfigFiles\Models
AIModelPath=E:\D\Models
ProductPath=E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ConfigFiles\Project
[ShowMainWin]
ShowResetBtn=True
ShowResetBtn=False
ShowBuzz=False
ShowDoorAlm=False
[CloudAndMES]
@ -52,3 +54,21 @@ LabelPrinterName=
[ExcelPrint]
EnableExcelPrint=False
ExcelPrinterName=
[ERP]
ErpDBConStr=
ErpSql=
[Customer]
CustomerName=
[FLIP]
Cam1_flipX=False
Cam1_flipY=False
Cam2_flipX=False
Cam2_flipY=False
[CMPX]
Cm2px_x=90
Cm2px_y=90
MidCoin=100
HolePx=100
LCrop=0
RCrop=0
Expand_pixel=50

View File

@ -0,0 +1,20 @@
[
{
"id": 0,
"code": "rm",
"name": "绒面",
"color": "Red"
},
{
"id": 1,
"code": "frm",
"name": "非绒面",
"color": "Lime"
},
{
"id": 2,
"code": "gh",
"name": "光滑",
"color": "Black"
}
]

View File

@ -0,0 +1,132 @@
[GENERAL]
VLCF_REV =01010025
[SIGNAL DESCRIPTION]
PIXEL_DEPTH =24
SCAN_TYPE =0
TAP_NUMBER =3
TAP_ARRANGEMENT =1
BAYER_PATTERN =0
PIXEL_CLOCK =80.00
DATA_VALID_ENABLE =0
CC1_SOURCE =1
CC2_SOURCE =0
CC3_SOURCE =0
CC4_SOURCE =0
[IMAGE]
IMAGE_WIDTH =8190
IMAGE_HEIGHT =4096
IMAGE_TYPE =1
[IO CONTROL]
GRAB_MODE =0
INTERNAL_TRIGGER_FREQUENCY =9000.0
GENERAL_INPUT1_SAMPLE_MODE =0
GENERAL_INPUT2_SAMPLE_MODE =0
GENERAL_INPUT1_PROTECT_MODE =0
GENERAL_INPUT2_PROTECT_MODE =0
GENERAL_INPUT1_MINIMUM_INTERVAL =1.00
GENERAL_INPUT2_MINIMUM_INTERVAL =1.00
SHAFTENCODER1_PULSE_DROP =10
SHAFTENCODER1_PROTECT_MODE =0
SHAFTENCODER1_MINIMUM_INTERVAL =1.00
INTEGRATION_TRIGGER_SOURCE =5
STROBE_TRIGGER_SOURCE =1
BOARD_SYNC_OUTPUT1_SOURCE =2
BOARD_SYNC_OUTPUT2_SOURCE =5
GRAB_TRIGGER_SOURCE =0
GENERAL_OUTPUT1_SOURCE =3
GENERAL_OUTPUT2_SOURCE =6
[ADVANCED IO CONTROL]
INTEGRATION_METHOD =0
INTEGRATION_PARAM1 =0
INTEGRATION_PARAM2 =5
INTEGRATION_PARAM3 =0
INTEGRATION_PARAM4 =1
INTEGRATION_POLARITY1 =0
INTEGRATION_POLARITY2 =0
STROBE_METHOD =0
STROBE_PARAM1 =0.0
STROBE_PARAM2 =1.0
STROBE_PARAM3 =0.0
STROBE_PARAM4 =1.0
STROBE_POLARITY1 =0
GENERALOUTPUT1_POLARITY =0
GENERALOUTPUT1_DELAY =0.0
GENERALOUTPUT2_POLARITY =0
GENERALOUTPUT2_DELAY =0.0
TIMEOUT =300000
GENERALINPUT1_TRIGGER_MODE =0
GENERALINPUT2_TRIGGER_MODE =0
BOARD_SYNC1_TRIGGER_MODE =0
BOARD_SYNC2_TRIGGER_MODE =0
SHAFT_ENCODER_CHANNEL =0
SHAFT_ENCODER_MULTIPLY_FACTOR =2
IMAGE_OFFSET_X =0
GENERAL_INPUT1_POLARITY =0
GENERAL_INPUT1_MIN_WIDTH =1000
GENERAL_INPUT2_POLARITY =0
GENERAL_INPUT2_MIN_WIDTH =1000
SOFTWARE_TRIGGER_WIDTH =8
SOFTWARE_TRIGGER_PERIOD =10
SOFTWARE_TRIGGER_COUNT =1
SOFTWARE_TRIGGER_DELAY =0
SOFTWARE_TRIGGER_POLARITY =0
CHECK_FVAL_SIGNAL =0
SOFTWARE_TRIGGER_SYNC_MODE =1
HARDWARE_TRIGGER_GENERAL_INPUT1_DELAY =0
HARDWARE_TRIGGER_GENERAL_INPUT2_DELAY =0
IMAGE_ROI_OFFSET_X =0
CXP_TRIGGER_OUTPUT_SELECTOR =0
CXP_TEST_IMAGE =0
SHAFT_ENCODER1_MIN_WIDTH=50
SHAFT_ENCODER1_VALID_DIRECTION=1
SHAFT_ENCODER1_REVERSE_COMPENSATION=0
GRABBER_OUTTER_MODE_FRAME_COUNT=1
GENERAL_OUTPUT1_THRESHOLD =0
GENERAL_OUTPUT2_THRESHOLD =0
SHAFT_ENCODER_DEBOUNCE =2000
SHAFT_ENCODER_TICK_MODE =0
SHAFT_ENCODER_TICK_MAX =65535
SHAFT_ENCODER_TICK_REVERSE_MODE =0
SHAFT_ENCODER_TICK_REVERSE_MAX =0
GENERAL_INPUT_THRESHOLD =0
HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_MODE =1
HARDWARE_TRIGGER_GENERAL_INPUT1_DELAY_LINES =0
HARDWARE_TRIGGER_GENERAL_INPUT2_DELAY_LINES =0
GENERAL_OUTPUT1_SOURCE_CHANNEL =0
GENERAL_OUTPUT2_SOURCE_CHANNEL =0
GENERAL_INPUT1_TYPE =1
GENERAL_INPUT2_TYPE =1
EXERNAL_LINE_TIMEOUT_FACTOR =256
SHAFT_ENCODER_QUAD_FREQUENCY_SOURCE_TYPE =0
LINE_VALID_FILTER =0
FRAME_ACTIVE_MODE =0
JPEG_COMPRESS_ENABLE =0
JPEG_COMPRESS_QUALITY =50
RECV_INVALID_DATA_IN_FRAME_TRIG_MODE =0
SHAFT_ENCODER1_REVERSE_COMPENSATION_LIMIT=2000
FRAME_BURST_COUNT =0
FRAME_BURST_PERIOD =1000
SHAFT_ENCODER1_CLOCK_DUTY_TYPE =0
SHAFT_ENCODER1_CLOCK_DUTY_WIDTH =0
VALID_COLUMN =0
SIGNAL_ENHANCE_MODE =3
LONG_DISTANCE_TRANSMISSION =0
TRIG_EDGE_MODE =0
DATA_PACKED_TRANSFER =0
CXP_TRIG_LEVEL =0
CL_ENABLE_AUTO_WINDOW =0
BOARD_SYNC1_POLARITY =0
BOARD_SYNC2_POLARITY =0
WATCHDOG_TIMEOUT =1000
WATCHDOG_OUTPUT_TIME =1000
MULTIPLE_LIGHT_COUNT =1
THUMBNAIL_SIZE_FACTOR =0
RGBD_EXTENDED_MODE =0
CXP_CAMERA_SYNC_TRIGGER_SOURCE =0
CXP_CAMERA_SYNC_TRIGGER_SOURCE_CHANNEL =0
==========================prm_map================================

View File

@ -0,0 +1,132 @@
[GENERAL]
VLCF_REV =01010025
[SIGNAL DESCRIPTION]
PIXEL_DEPTH =24
SCAN_TYPE =0
TAP_NUMBER =3
TAP_ARRANGEMENT =1
BAYER_PATTERN =0
PIXEL_CLOCK =80.00
DATA_VALID_ENABLE =0
CC1_SOURCE =9
CC2_SOURCE =0
CC3_SOURCE =0
CC4_SOURCE =0
[IMAGE]
IMAGE_WIDTH =8190
IMAGE_HEIGHT =4096
IMAGE_TYPE =1
[IO CONTROL]
GRAB_MODE =0
INTERNAL_TRIGGER_FREQUENCY =9000.0
GENERAL_INPUT1_SAMPLE_MODE =0
GENERAL_INPUT2_SAMPLE_MODE =0
GENERAL_INPUT1_PROTECT_MODE =0
GENERAL_INPUT2_PROTECT_MODE =0
GENERAL_INPUT1_MINIMUM_INTERVAL =1.00
GENERAL_INPUT2_MINIMUM_INTERVAL =1.00
SHAFTENCODER1_PULSE_DROP =10
SHAFTENCODER1_PROTECT_MODE =0
SHAFTENCODER1_MINIMUM_INTERVAL =1.00
INTEGRATION_TRIGGER_SOURCE =5
STROBE_TRIGGER_SOURCE =1
BOARD_SYNC_OUTPUT1_SOURCE =0
BOARD_SYNC_OUTPUT2_SOURCE =0
GRAB_TRIGGER_SOURCE =3
GENERAL_OUTPUT1_SOURCE =6
GENERAL_OUTPUT2_SOURCE =6
[ADVANCED IO CONTROL]
INTEGRATION_METHOD =0
INTEGRATION_PARAM1 =0
INTEGRATION_PARAM2 =5
INTEGRATION_PARAM3 =0
INTEGRATION_PARAM4 =1
INTEGRATION_POLARITY1 =0
INTEGRATION_POLARITY2 =0
STROBE_METHOD =0
STROBE_PARAM1 =0.0
STROBE_PARAM2 =1.0
STROBE_PARAM3 =0.0
STROBE_PARAM4 =1.0
STROBE_POLARITY1 =0
GENERALOUTPUT1_POLARITY =0
GENERALOUTPUT1_DELAY =0.0
GENERALOUTPUT2_POLARITY =0
GENERALOUTPUT2_DELAY =0.0
TIMEOUT =300000
GENERALINPUT1_TRIGGER_MODE =0
GENERALINPUT2_TRIGGER_MODE =0
BOARD_SYNC1_TRIGGER_MODE =0
BOARD_SYNC2_TRIGGER_MODE =0
SHAFT_ENCODER_CHANNEL =0
SHAFT_ENCODER_MULTIPLY_FACTOR =2
IMAGE_OFFSET_X =0
GENERAL_INPUT1_POLARITY =0
GENERAL_INPUT1_MIN_WIDTH =1000
GENERAL_INPUT2_POLARITY =0
GENERAL_INPUT2_MIN_WIDTH =1000
SOFTWARE_TRIGGER_WIDTH =8
SOFTWARE_TRIGGER_PERIOD =10
SOFTWARE_TRIGGER_COUNT =1
SOFTWARE_TRIGGER_DELAY =0
SOFTWARE_TRIGGER_POLARITY =0
CHECK_FVAL_SIGNAL =0
SOFTWARE_TRIGGER_SYNC_MODE =1
HARDWARE_TRIGGER_GENERAL_INPUT1_DELAY =0
HARDWARE_TRIGGER_GENERAL_INPUT2_DELAY =0
IMAGE_ROI_OFFSET_X =0
CXP_TRIGGER_OUTPUT_SELECTOR =0
CXP_TEST_IMAGE =0
SHAFT_ENCODER1_MIN_WIDTH=50
SHAFT_ENCODER1_VALID_DIRECTION=1
SHAFT_ENCODER1_REVERSE_COMPENSATION=0
GRABBER_OUTTER_MODE_FRAME_COUNT=1
GENERAL_OUTPUT1_THRESHOLD =0
GENERAL_OUTPUT2_THRESHOLD =0
SHAFT_ENCODER_DEBOUNCE =2000
SHAFT_ENCODER_TICK_MODE =0
SHAFT_ENCODER_TICK_MAX =65535
SHAFT_ENCODER_TICK_REVERSE_MODE =0
SHAFT_ENCODER_TICK_REVERSE_MAX =0
GENERAL_INPUT_THRESHOLD =0
HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_MODE =1
HARDWARE_TRIGGER_GENERAL_INPUT1_DELAY_LINES =0
HARDWARE_TRIGGER_GENERAL_INPUT2_DELAY_LINES =0
GENERAL_OUTPUT1_SOURCE_CHANNEL =0
GENERAL_OUTPUT2_SOURCE_CHANNEL =0
GENERAL_INPUT1_TYPE =1
GENERAL_INPUT2_TYPE =1
EXERNAL_LINE_TIMEOUT_FACTOR =256
SHAFT_ENCODER_QUAD_FREQUENCY_SOURCE_TYPE =0
LINE_VALID_FILTER =0
FRAME_ACTIVE_MODE =0
JPEG_COMPRESS_ENABLE =0
JPEG_COMPRESS_QUALITY =50
RECV_INVALID_DATA_IN_FRAME_TRIG_MODE =0
SHAFT_ENCODER1_REVERSE_COMPENSATION_LIMIT=2000
FRAME_BURST_COUNT =0
FRAME_BURST_PERIOD =1000
SHAFT_ENCODER1_CLOCK_DUTY_TYPE =0
SHAFT_ENCODER1_CLOCK_DUTY_WIDTH =0
VALID_COLUMN =0
SIGNAL_ENHANCE_MODE =3
LONG_DISTANCE_TRANSMISSION =0
TRIG_EDGE_MODE =0
DATA_PACKED_TRANSFER =0
CXP_TRIG_LEVEL =0
CL_ENABLE_AUTO_WINDOW =0
BOARD_SYNC1_POLARITY =0
BOARD_SYNC2_POLARITY =0
WATCHDOG_TIMEOUT =1000
WATCHDOG_OUTPUT_TIME =1000
MULTIPLE_LIGHT_COUNT =1
THUMBNAIL_SIZE_FACTOR =0
RGBD_EXTENDED_MODE =0
CXP_CAMERA_SYNC_TRIGGER_SOURCE =0
CXP_CAMERA_SYNC_TRIGGER_SOURCE_CHANNEL =0
==========================prm_map================================

View File

@ -0,0 +1,50 @@
2024-04-29 13:30:48
Global捕获到未处理异常System.ArgumentException
异常信息:未能找到名为 Code2 的列。
参数名: columnName
异常堆栈: 在 System.Windows.Forms.DataGridViewCellCollection.get_Item(String columnName)
在 GeBoShi.UI.Product.ProductInfoFrm.cmbDefectModelFile_TextChanged(Object sender, EventArgs e) 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\UI\Product\ProductInfoFrm.cs:行号 287
在 System.Windows.Forms.Control.OnTextChanged(EventArgs e)
在 System.Windows.Forms.ComboBox.OnTextChanged(EventArgs e)
在 System.Windows.Forms.Control.set_Text(String value)
在 System.Windows.Forms.ComboBox.set_Text(String value)
在 System.Windows.Forms.ComboBox.UpdateText()
在 System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
在 System.Windows.Forms.ComboBox.set_SelectedItem(Object value)
在 GeBoShi.UI.Product.ProductInfoFrm..ctor(Product m) 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\UI\Product\ProductInfoFrm.cs:行号 50
在 GeBoShi.UI.Product.ProductListFrm.dataGridView1_CellDoubleClick(Object sender, DataGridViewCellEventArgs e) 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\UI\Product\ProductListFrm.cs:行号 156
在 System.Windows.Forms.DataGridView.OnCellDoubleClick(DataGridViewCellEventArgs e)
在 System.Windows.Forms.DataGridView.OnDoubleClick(EventArgs e)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2024-05-08 15:53:36
Global捕获到未处理异常System.ArgumentOutOfRangeException
异常信息InvalidArgument=“0”的值对于“index”无效。
参数名: index
异常堆栈: 在 System.Windows.Forms.ComboBox.ObjectCollection.get_Item(Int32 index)
在 System.Windows.Forms.ComboBox.get_Text()
在 System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
在 System.Windows.Forms.ComboBox.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2024-05-08 15:53:51
Global捕获到未处理异常System.ArgumentOutOfRangeException
异常信息InvalidArgument=“0”的值对于“index”无效。
参数名: index
异常堆栈: 在 System.Windows.Forms.ComboBox.ObjectCollection.get_Item(Int32 index)
在 System.Windows.Forms.ComboBox.get_Text()
在 GeBoShi.Main.cobList_TextUpdate(Object sender, EventArgs e) 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\Main.cs:行号 424
在 System.Windows.Forms.ComboBox.OnTextUpdate(EventArgs e)
在 System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
在 System.Windows.Forms.ComboBox.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2024-05-08 16:01:27
Global捕获到未处理异常System.InvalidOperationException
异常信息:集合已修改;可能无法执行枚举操作。
异常堆栈: 在 System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
在 System.Collections.Generic.List`1.Enumerator.MoveNextRare()
在 GeBoShi.Main.<>c__DisplayClass40_0.<ShowUIEvent>b__0()

View File

@ -4,12 +4,30 @@
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
@ -22,12 +40,6 @@
<bindingRedirect oldVersion="0.0.0.0-1.0.102.0" newVersion="1.0.102.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -3,10 +3,8 @@ E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\GeBoShi.pdb
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\CSkin.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MaiMuControl.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\S7.Net.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MQTTnet.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\halcondotnet.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\OpenCvSharp.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Yolo5.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Newtonsoft.Json.dll
@ -40,7 +38,6 @@ E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\ImageBox.dll.config
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\OpenCvSharp.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\Newtonsoft.Json.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BouncyCastle.Crypto.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\MySql.Data.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\System.Memory.xml
@ -84,3 +81,4 @@ E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\obj\Debug\GeBoShi.UI.Product.ProductListFrm.resources
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BouncyCastle.Cryptography.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\BouncyCastle.Cryptography.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\GeBoShi\bin\Debug\SixLabors.Fonts.dll

View File

@ -4,12 +4,30 @@
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
@ -22,12 +40,6 @@
<bindingRedirect oldVersion="0.0.0.0-1.0.102.0" newVersion="1.0.102.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />

View File

@ -14,6 +14,7 @@ using LeatherApp.Utils;
using Models;
using OpenCvSharp;
using OpenCvSharp.Extensions;
using SqlSugar;
namespace LeatherApp.Device
{
@ -97,6 +98,17 @@ namespace LeatherApp.Device
}
public bool start()
{
List<DefectLabelInfo> DefectLabelInfoList = new List<DefectLabelInfo>();
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 1953, y = 429, w = 200, h = 200, classId = 1, confidence = 0.8, contrast = 0.9, i = 0, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() {x = 1953,y = 929,w=900,h = 400,classId = 11,confidence = 0.8, contrast = 0.9, i = 0,j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 3169, y = 1029, w = 900, h = 400, classId = 11, confidence = 0.8, contrast = 0.9, i = 1, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 4721, y = 919, w = 900, h = 400, classId = 11, confidence = 0.8, contrast = 0.9, i = 2, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 6145, y = 829, w = 900, h = 400, classId = 11, confidence = 0.8, contrast = 0.9, i = 3, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 8073, y = 929, w = 900, h = 400, classId = 11, confidence = 0.8, contrast = 0.9, i = 4, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 9407, y = 929, w = 900, h = 400, classId = 11, confidence = 0.8, contrast = 0.9, i = 5, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 10801, y = 999, w = 900, h = 400, classId = 11, confidence = 0.8, contrast = 0.9, i = 6, j = 0 });
DefectLabelInfoList.Add(new DefectLabelInfo() { x = 12465, y = 629, w = 900, h = 800, classId = 11, confidence = 0.8, contrast = 0.9, i = 7, j = 0 });
DefectLabelInfoList = HeBingDefect(16384, DefectLabelInfoList);
try
{
//detector = CreateDetector(Config.model_path, Config.labels_path, true, 6);
@ -302,6 +314,7 @@ namespace LeatherApp.Device
task.resultInfo = ex.Message;
callback(task);
}
Thread.Sleep(5);
}
}
//推理
@ -369,6 +382,7 @@ namespace LeatherApp.Device
task.resultInfo = ex.Message;
callback(task);
}
Thread.Sleep(5);
}
}
@ -389,6 +403,149 @@ namespace LeatherApp.Device
public int j { get; set; }//缺陷index
}
private double ContrastLow = 0.8;
private double ContrastTop = 1.2;
//private double ContrastToPercent(double val)
//{
// if (val < ContrastLow)
// return 0;
// else if (val > ContrastTop)
// return 100;
// double temp = 100 / (ContrastTop - ContrastLow);
// return temp * (val - ContrastLow);
//}
//private double PercentToContrast(double val)
//{
// double temp = val * (ContrastTop - ContrastLow);
// return temp + ContrastLow;
//}
private double ContrastToPercent(double val)
{
if (val < ContrastLow)
return 0;
else if (val > ContrastTop)
return 100;
double temp = 100 / (ContrastTop - ContrastLow);
return Math.Round(temp * (val - ContrastLow), 2);
}
private double PercentToContrast(double val)
{
double tt = 1;
if (val > 100)
tt = 100;
else if (val < 0)
tt = 0;
else
tt = val;
double temp = tt / 100 * (ContrastTop - ContrastLow);
return temp + ContrastLow;
}
private List<DefectLabelInfo> HeBingDefect(int Width, List<DefectLabelInfo> DefectLabelInfoList)
{
List<DefectLabelInfo> outList = new List<DefectLabelInfo>();
List<DefectLabelInfo> HeBingList = new List<DefectLabelInfo>();
List<DefectLabelInfo> XcHeBingList = new List<DefectLabelInfo>();
List<int> xPos = new List<int>();
List<double> ZXD = new List<double>();
List<DefectLabelInfo> HeBingList2 = new List<DefectLabelInfo>();
List<DefectLabelInfo> XcHeBingList2 = new List<DefectLabelInfo>();
List<int> xPos2 = new List<int>();
List<double> ZXD2 = new List<double>();
DefectLabelInfo stpoint = DefectLabelInfoList[0];
int colNum = Width / image_width;
//寻找在一条线上
for (int q = 0; q < DefectLabelInfoList.Count; q++)
{
if (Config.getDefectCode(DefectLabelInfoList[q].classId) == "jietou")
{
int max = stpoint.y + 500;
int min = stpoint.y - 500 > 0? stpoint.y - 500:0;
if (DefectLabelInfoList[q].y >= min && DefectLabelInfoList[q].y <= max)
{
HeBingList.Add(DefectLabelInfoList[q]);
xPos.Add(DefectLabelInfoList[q].x);
ZXD.Add(DefectLabelInfoList[q].confidence);
}
else
XcHeBingList.Add(DefectLabelInfoList[q]);
}
else if (Config.getDefectCode(DefectLabelInfoList[q].classId) == "hengdang")
{
int max = stpoint.y + 500;
int min = stpoint.y - 500 > 0 ? stpoint.y - 500 : 0;
if (DefectLabelInfoList[q].y >= min && DefectLabelInfoList[q].y <= max)
{
HeBingList2.Add(DefectLabelInfoList[q]);
xPos2.Add(DefectLabelInfoList[q].x);
ZXD2.Add(DefectLabelInfoList[q].confidence);
}
else
XcHeBingList2.Add(DefectLabelInfoList[q]);
}
else
outList.Add(DefectLabelInfoList[q]);
}
//递归下次合并数据
List<DefectLabelInfo> dg1 = new List<DefectLabelInfo>();
List<DefectLabelInfo> dg2 = new List<DefectLabelInfo>();
if (XcHeBingList.Count >0)
dg1 = HeBingDefect(Width, XcHeBingList);
if (XcHeBingList2.Count > 0)
dg2 = HeBingDefect(Width, XcHeBingList2);
//多个jietou合并
if (HeBingList.Count>0)
{
var stIt = HeBingList.Find(x => x.x == xPos.Min());
var edIt = HeBingList.Find(x => x.x == xPos.Max());
var eZXD = HeBingList.Find(x => x.confidence == ZXD.Max());
int newW = Math.Abs(((edIt.i % colNum) * image_width + edIt.x) - ((stIt.i % colNum) * image_width + stIt.x)) + edIt.w;
outList.Add(new DefectLabelInfo() {
x=stIt.x,
y=edIt.y,
w = newW, //多图叠加
h = edIt.h,
classId = eZXD.classId,
confidence = eZXD.confidence,
contrast = eZXD.contrast,
cmH = Math.Round(edIt.h * 1.0 / Config.cm2px_y, 2),
cmW = Math.Round(newW * 1.0 / Config.cm2px_x, 2),
i = stIt.i,
j = stIt.j,
});
}
//多个hengdang合并
if (HeBingList2.Count > 0)
{
var stIt = HeBingList2.Find(x => x.x == xPos2.Min());
var edIt = HeBingList2.Find(x => x.x == xPos2.Max());
var eZXD = HeBingList2.Find(x => x.confidence == ZXD2.Max());
int newW = Math.Abs(((edIt.i % colNum) * image_width + edIt.x) - ((stIt.i % colNum) * image_width + stIt.x)) + edIt.w;
outList.Add(new DefectLabelInfo()
{
x = stIt.x,
y = edIt.y,
w = newW, //多图叠加
h = edIt.h,
classId = eZXD.classId,
confidence = eZXD.confidence,
contrast = eZXD.contrast,
cmH = Math.Round(edIt.h * 1.0 / Config.cm2px_y, 2),
cmW = Math.Round(newW * 1.0 / Config.cm2px_x, 2),
i = stIt.i,
j = stIt.j,
});
}
outList = outList.Concat(dg1).ToList<DefectLabelInfo>();//保留重复项
outList = outList.Concat(dg2).ToList<DefectLabelInfo>();//保留重复项
return outList;
}
//打标
private void run3()
{
@ -442,8 +599,10 @@ namespace LeatherApp.Device
//y = image_hight-y-h;//转到右下角为原点
count++;
var cmW = Math.Round(w * task.widthRatio / Config.cm2px_x, 2);
var cmH = Math.Round(h * task.widthRatio / Config.cm2px_y, 2);
//var cmW = Math.Round(w * task.widthRatio / Config.cm2px_x, 2);
//var cmH = Math.Round(h * task.widthRatio / Config.cm2px_y, 2);
var cmW = Math.Round(w * 1.0 / Config.cm2px_x, 2);
var cmH = Math.Round(h * 1.0 / Config.cm2px_y, 2);
// 打印输出信息
//task.resultInfo += $"----{i}----col:{i % colNum}/{colNum} row:{i / colNum}/{colNum}-----------\n目标:{j + 1} 类别ID:{classId} 置信度:{confidence} 对比度:{contrast} 坐标:({x},{y})-({x + w},{y + h}) 宽高:w={w},h={h}; \n";
@ -455,9 +614,11 @@ namespace LeatherApp.Device
h = (int)task.output[index + 3],
classId = (int)task.output[index + 4],
confidence = Math.Round(task.output[index + 5], 2), //置信度
contrast = Math.Round(task.output[index + 6], 3),//对比度
cmW = Math.Round(w * task.widthRatio / Config.cm2px_x, 2),
cmH = Math.Round(h * task.widthRatio / Config.cm2px_y, 2),
contrast = ContrastToPercent( Math.Round(task.output[index + 6], 3)),//对比度
//cmW = Math.Round(w * task.widthRatio / Config.cm2px_x, 2),
//cmH = Math.Round(h * task.widthRatio / Config.cm2px_y, 2),
cmW = Math.Round(w * 1.0 / Config.cm2px_x, 2),
cmH = Math.Round(h * 1.0 / Config.cm2px_y, 2),
i = i,
j = j,
});
@ -581,6 +742,13 @@ namespace LeatherApp.Device
#endif
}
#region
liStep++;
if (DefectLabelInfoList.Count >0)
DefectLabelInfoList = HeBingDefect(task.bmp.Width, DefectLabelInfoList);
liStep++;
#endregion
//结果过滤
#region
//降序排序,先得到是否有接头检出
@ -609,26 +777,28 @@ namespace LeatherApp.Device
var ContrastTotal = qualifiedLimit.ContrastTop + qualifiedLimit.ContrastLower;
if (qualifiedLimit.IsOR)
{
if (!(
(qualifiedLimit.Area <= 0 || DefectLabelInfoListByClassID[q].cmW * DefectLabelInfoListByClassID[q].cmH >= qualifiedLimit.Area) ||
(ContrastTotal <= 0 || (DefectLabelInfoListByClassID[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoListByClassID[q].contrast > qualifiedLimit.ContrastTop))))
{
task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵类别ID:{classId} 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
continue;
}
//if (!(
// (ContrastTotal <= 0 || (PercentToContrast(DefectLabelInfoListByClassID[q].contrast) < qualifiedLimit.ContrastLower || PercentToContrast(DefectLabelInfoListByClassID[q].contrast) > qualifiedLimit.ContrastTop))))
//{
// task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
// //WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵类别ID:{classId} 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
// continue;
//}
}
else
{
if (!(
(qualifiedLimit.Area <= 0 || DefectLabelInfoListByClassID[q].cmW * DefectLabelInfoListByClassID[q].cmH >= qualifiedLimit.Area) &&
(ContrastTotal <= 0 || (DefectLabelInfoListByClassID[q].contrast < qualifiedLimit.ContrastLower || DefectLabelInfoListByClassID[q].contrast > qualifiedLimit.ContrastTop))))
if (!(ContrastTotal <= 0 || (PercentToContrast(DefectLabelInfoListByClassID[q].contrast) < qualifiedLimit.ContrastLower || PercentToContrast(DefectLabelInfoListByClassID[q].contrast) > qualifiedLimit.ContrastTop)))
{
task.resultInfo += $" 不满足此产品瑕疵标准,跳过! \n";
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"判断不是瑕疵类别ID:{classId} 置信度({confidence},[{qualifiedLimit.ZXD}]); isOr({qualifiedLimit.IsOR}); 面积({cmW * cmH},[{ qualifiedLimit.Area}]); 对比度({contrast},[{qualifiedLimit.ContrastLower}-{qualifiedLimit.ContrastTop}])");
continue;
}
}
if(qualifiedLimit.Area > 0 && DefectLabelInfoListByClassID[q].cmW * DefectLabelInfoListByClassID[q].cmH < qualifiedLimit.Area)
{
task.resultInfo += $" 不满足此产品瑕疵标准面积,跳过! \n";
continue;
}
if (Config.getDefectCode(DefectLabelInfoListByClassID[q].classId) == "jietou")
haveJieTou = true;
if(haveJieTou && (Config.getDefectCode(DefectLabelInfoListByClassID[q].classId) == "hengdang"))
@ -646,9 +816,13 @@ namespace LeatherApp.Device
liStep++;//2
//task.resultInfo += $" 转换到大图坐标(px)p1={point1.X},{point1.Y}; p2={point2.X},{point2.Y}\n";
Cv2.Rectangle(task.bmpTag, point1, point2, new Scalar(0.0, 0.0, 255.0), 1);//画打标点
//WarningEvent?.Invoke(DateTime.Now,WarningEnum.Low, $"保存第 {count} 行缺陷信息;");
var cmX = Math.Round(point1.X * task.widthRatio / Config.cm2px_x, 2);
var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoListByClassID[q].h) * task.widthRatio / Config.cm2px_y, 2);//外面计Y从右下角为原点
int px = (point1.X - task.xw) > 0 ? (point1.X - task.xw) : 0;
//var cmX = Math.Round(px * task.widthRatio / Config.cm2px_x, 2);
var cmX = Math.Round((double)px / Config.cm2px_x, 2);
//var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoListByClassID[q].h) * task.widthRatio / Config.cm2px_y, 2);//外面计Y从右下角为原点
var cmY = Math.Round((task.bmp.Height - point1.Y - DefectLabelInfoListByClassID[q].h) * 1.0 / Config.cm2px_y, 2);//外面计Y从右下角为原点
liStep++;//3
//task.resultInfo += $" 转换到大图坐标(cm)[widthRatio={task.widthRatio}]x={cmX},y={cmY}; w={DefectLabelInfoList[q].cmW},h={DefectLabelInfoList[q].cmH}\n";
task.excelTable.Rows.Add($"{task.photoIndex}", cmX, cmY, DefectLabelInfoListByClassID[q].cmW, DefectLabelInfoListByClassID[q].cmH, DefectLabelInfoListByClassID[q].j + 1, DefectLabelInfoListByClassID[q].classId, DefectLabelInfoListByClassID[q].confidence, DefectLabelInfoListByClassID[q].contrast);
@ -700,6 +874,7 @@ namespace LeatherApp.Device
task.resultInfo = ex.Message;
callback(task);
}
Thread.Sleep(5);
}
}
private void callback(DefectTask task)
@ -807,6 +982,8 @@ namespace LeatherApp.Device
/// </summary>
public DataTable excelTable=new DataTable();
public long[] stopwatch = new long[4];
public int xw;
}
public void add(DefectTask task)

View File

@ -58,9 +58,9 @@
this.uiTabControl1.MainPage = "";
this.uiTabControl1.Name = "uiTabControl1";
this.uiTabControl1.SelectedIndex = 0;
this.uiTabControl1.Size = new System.Drawing.Size(1222, 626);
this.uiTabControl1.Size = new System.Drawing.Size(1008, 572);
this.uiTabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.uiTabControl1.Style = Sunny.UI.UIStyle.Red;
this.uiTabControl1.Style = Sunny.UI.UIStyle.Custom;
this.uiTabControl1.TabIndex = 7;
this.uiTabControl1.TabSelectedForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.uiTabControl1.TabSelectedHighColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
@ -72,10 +72,10 @@
//
this.picLogo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.picLogo.Image = ((System.Drawing.Image)(resources.GetObject("picLogo.Image")));
this.picLogo.Location = new System.Drawing.Point(21, 20);
this.picLogo.Location = new System.Drawing.Point(5, 13);
this.picLogo.Name = "picLogo";
this.picLogo.Padding = new System.Windows.Forms.Padding(9);
this.picLogo.Size = new System.Drawing.Size(274, 42);
this.picLogo.Size = new System.Drawing.Size(232, 48);
this.picLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picLogo.TabIndex = 7;
this.picLogo.TabStop = false;
@ -89,12 +89,12 @@
this.uiNavBar1.Controls.Add(this.uiLine1);
this.uiNavBar1.Controls.Add(this.btnExit);
this.uiNavBar1.Controls.Add(this.btnHide);
this.uiNavBar1.Controls.Add(this.btnLockUI);
this.uiNavBar1.Controls.Add(this.btnHead3);
this.uiNavBar1.Controls.Add(this.btnHead2);
this.uiNavBar1.Controls.Add(this.btnHead1);
this.uiNavBar1.Controls.Add(this.btnHead0);
this.uiNavBar1.Controls.Add(this.picLogo);
this.uiNavBar1.Controls.Add(this.btnLockUI);
this.uiNavBar1.Dock = System.Windows.Forms.DockStyle.Top;
this.uiNavBar1.DropMenuFont = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiNavBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@ -106,8 +106,8 @@
this.uiNavBar1.Name = "uiNavBar1";
this.uiNavBar1.SelectedForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.uiNavBar1.SelectedHighColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.uiNavBar1.Size = new System.Drawing.Size(1222, 73);
this.uiNavBar1.Style = Sunny.UI.UIStyle.Red;
this.uiNavBar1.Size = new System.Drawing.Size(1008, 73);
this.uiNavBar1.Style = Sunny.UI.UIStyle.Custom;
this.uiNavBar1.TabIndex = 0;
this.uiNavBar1.Text = "uiNavBar1";
this.uiNavBar1.MenuItemClick += new Sunny.UI.UINavBar.OnMenuItemClick(this.uiNavBar1_MenuItemClick);
@ -117,9 +117,9 @@
this.lblVer.AutoSize = true;
this.lblVer.Font = new System.Drawing.Font("微软雅黑", 7F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblVer.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.lblVer.Location = new System.Drawing.Point(301, 37);
this.lblVer.Location = new System.Drawing.Point(243, 46);
this.lblVer.Name = "lblVer";
this.lblVer.Size = new System.Drawing.Size(65, 19);
this.lblVer.Size = new System.Drawing.Size(46, 15);
this.lblVer.TabIndex = 10;
this.lblVer.TabStop = true;
this.lblVer.Text = "v1.0.0.0";
@ -132,10 +132,11 @@
this.uiLine3.Direction = Sunny.UI.UILine.LineDirection.Vertical;
this.uiLine3.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.uiLine3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiLine3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.uiLine3.LineColor = System.Drawing.Color.White;
this.uiLine3.LineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
this.uiLine3.LineSize = 2;
this.uiLine3.Location = new System.Drawing.Point(804, 27);
this.uiLine3.Location = new System.Drawing.Point(682, 23);
this.uiLine3.MinimumSize = new System.Drawing.Size(1, 1);
this.uiLine3.Name = "uiLine3";
this.uiLine3.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None;
@ -151,10 +152,11 @@
this.uiLine2.Direction = Sunny.UI.UILine.LineDirection.Vertical;
this.uiLine2.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.uiLine2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiLine2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.uiLine2.LineColor = System.Drawing.Color.White;
this.uiLine2.LineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
this.uiLine2.LineSize = 2;
this.uiLine2.Location = new System.Drawing.Point(628, 27);
this.uiLine2.Location = new System.Drawing.Point(547, 23);
this.uiLine2.MinimumSize = new System.Drawing.Size(1, 1);
this.uiLine2.Name = "uiLine2";
this.uiLine2.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None;
@ -170,10 +172,11 @@
this.uiLine1.Direction = Sunny.UI.UILine.LineDirection.Vertical;
this.uiLine1.FillColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.uiLine1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiLine1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.uiLine1.LineColor = System.Drawing.Color.White;
this.uiLine1.LineColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
this.uiLine1.LineSize = 2;
this.uiLine1.Location = new System.Drawing.Point(452, 27);
this.uiLine1.Location = new System.Drawing.Point(407, 24);
this.uiLine1.MinimumSize = new System.Drawing.Size(1, 1);
this.uiLine1.Name = "uiLine1";
this.uiLine1.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.None;
@ -188,7 +191,7 @@
this.btnExit.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnExit.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExit.ForeColor = System.Drawing.Color.White;
this.btnExit.Location = new System.Drawing.Point(1138, 23);
this.btnExit.Location = new System.Drawing.Point(914, 19);
this.btnExit.MinimumSize = new System.Drawing.Size(1, 1);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(82, 34);
@ -208,7 +211,7 @@
this.btnHide.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnHide.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHide.ForeColor = System.Drawing.Color.White;
this.btnHide.Location = new System.Drawing.Point(1038, 23);
this.btnHide.Location = new System.Drawing.Point(826, 18);
this.btnHide.MinimumSize = new System.Drawing.Size(1, 1);
this.btnHide.Name = "btnHide";
this.btnHide.Size = new System.Drawing.Size(82, 34);
@ -228,7 +231,7 @@
this.btnLockUI.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnLockUI.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLockUI.ForeColor = System.Drawing.Color.White;
this.btnLockUI.Location = new System.Drawing.Point(1050, 23);
this.btnLockUI.Location = new System.Drawing.Point(738, 22);
this.btnLockUI.MinimumSize = new System.Drawing.Size(1, 1);
this.btnLockUI.Name = "btnLockUI";
this.btnLockUI.Size = new System.Drawing.Size(82, 34);
@ -249,10 +252,10 @@
this.btnHead3.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnHead3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHead3.ForeColor = System.Drawing.Color.White;
this.btnHead3.Location = new System.Drawing.Point(831, 22);
this.btnHead3.Location = new System.Drawing.Point(706, 22);
this.btnHead3.MinimumSize = new System.Drawing.Size(1, 1);
this.btnHead3.Name = "btnHead3";
this.btnHead3.Size = new System.Drawing.Size(144, 35);
this.btnHead3.Size = new System.Drawing.Size(114, 30);
this.btnHead3.Style = Sunny.UI.UIStyle.Custom;
this.btnHead3.StyleCustomMode = true;
this.btnHead3.Symbol = 61459;
@ -270,10 +273,10 @@
this.btnHead2.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnHead2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHead2.ForeColor = System.Drawing.Color.White;
this.btnHead2.Location = new System.Drawing.Point(655, 22);
this.btnHead2.Location = new System.Drawing.Point(568, 22);
this.btnHead2.MinimumSize = new System.Drawing.Size(1, 1);
this.btnHead2.Name = "btnHead2";
this.btnHead2.Size = new System.Drawing.Size(144, 35);
this.btnHead2.Size = new System.Drawing.Size(114, 30);
this.btnHead2.Style = Sunny.UI.UIStyle.Custom;
this.btnHead2.StyleCustomMode = true;
this.btnHead2.Symbol = 61952;
@ -291,10 +294,10 @@
this.btnHead1.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnHead1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHead1.ForeColor = System.Drawing.Color.White;
this.btnHead1.Location = new System.Drawing.Point(479, 22);
this.btnHead1.Location = new System.Drawing.Point(430, 23);
this.btnHead1.MinimumSize = new System.Drawing.Size(1, 1);
this.btnHead1.Name = "btnHead1";
this.btnHead1.Size = new System.Drawing.Size(144, 35);
this.btnHead1.Size = new System.Drawing.Size(114, 30);
this.btnHead1.Style = Sunny.UI.UIStyle.Custom;
this.btnHead1.StyleCustomMode = true;
this.btnHead1.Symbol = 61641;
@ -312,10 +315,10 @@
this.btnHead0.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnHead0.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHead0.ForeColor = System.Drawing.Color.White;
this.btnHead0.Location = new System.Drawing.Point(303, 22);
this.btnHead0.Location = new System.Drawing.Point(292, 23);
this.btnHead0.MinimumSize = new System.Drawing.Size(1, 1);
this.btnHead0.Name = "btnHead0";
this.btnHead0.Size = new System.Drawing.Size(144, 35);
this.btnHead0.Size = new System.Drawing.Size(114, 30);
this.btnHead0.Style = Sunny.UI.UIStyle.Custom;
this.btnHead0.StyleCustomMode = true;
this.btnHead0.Symbol = 57589;
@ -332,21 +335,20 @@
this.AllowShowTitle = false;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(243)))), ((int)(((byte)(243)))));
this.ClientSize = new System.Drawing.Size(1222, 699);
this.ClientSize = new System.Drawing.Size(1008, 645);
this.ControlBoxFillHoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(115)))), ((int)(((byte)(115)))));
this.Controls.Add(this.uiTabControl1);
this.Controls.Add(this.uiNavBar1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximumSize = new System.Drawing.Size(2160, 1440);
this.MaximumSize = new System.Drawing.Size(1920, 1080);
this.Name = "FrmMain";
this.Padding = new System.Windows.Forms.Padding(0);
this.RectColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.ShowFullScreen = true;
this.ShowRadius = false;
this.ShowRect = false;
this.ShowTitle = false;
this.ShowTitleIcon = true;
this.Style = Sunny.UI.UIStyle.Red;
this.Style = Sunny.UI.UIStyle.Custom;
this.Text = "革博士AI检验系统";
this.TitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;

View File

@ -118,7 +118,15 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="textBox1.Text" xml:space="preserve">
<value>v1.0.2.6(2024-04-26)
<value>v1.0.2.9(2024-05-09)
1、加入实时幅宽
2、加入jietouhengdang标签合并
v1.0.2.8(2024-05-06)
1、加入新材质
v1.0.2.7(2024-04-29)
1、修改导出报表
2、对比度改为0-100对应0.8-1.2
v1.0.2.6(2024-04-26)
1、修复裁剪之后图片拉伸
v1.0.2.6(2024-04-12)
1、修复打印报表有数据没显示

View File

@ -28,14 +28,14 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
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 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.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
this.uiPanel1 = new Sunny.UI.UIPanel();
this.lblLen = new Sunny.UI.UILabel();
this.lblSpeed = new Sunny.UI.UISymbolLabel();
@ -58,6 +58,7 @@
this.btnEnd = new Sunny.UI.UISymbolButton();
this.btnStart = new Sunny.UI.UISymbolButton();
this.uiTitlePanel2 = new Sunny.UI.UITitlePanel();
this.ucColorListDefect = new LeatherApp.UIExtend.UCColorList();
this.lineChartDefect = new Sunny.UI.UILineChart();
this.uiTitlePanel3 = new Sunny.UI.UITitlePanel();
this.uiDataGridView1 = new Sunny.UI.UIDataGridView();
@ -74,11 +75,13 @@
this.colTarget = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.uiMiniPagination1 = new Sunny.UI.UIMiniPagination();
this.uiTitlePanel4 = new Sunny.UI.UITitlePanel();
this.uilbKF = new Sunny.UI.UILabel();
this.lineChartFaceWidth = new Sunny.UI.UILineChart();
this.uiTitlePanel5 = new Sunny.UI.UITitlePanel();
this.lstboxLog = new Sunny.UI.UIListBox();
this.uiTitlePanel6 = new Sunny.UI.UITitlePanel();
this.uiPanel3 = new Sunny.UI.UIPanel();
this.picDefectImage = new LeatherApp.UIExtend.UCImageView();
this.pnlScannerImg = new Sunny.UI.UITitlePanel();
this.picScanner2 = new System.Windows.Forms.PictureBox();
this.picScanner1 = new System.Windows.Forms.PictureBox();
@ -97,8 +100,6 @@
this.uiLabel8 = new Sunny.UI.UILabel();
this.uiLabel7 = new Sunny.UI.UILabel();
this.uiLabel6 = new Sunny.UI.UILabel();
this.picDefectImage = new LeatherApp.UIExtend.UCImageView();
this.ucColorListDefect = new LeatherApp.UIExtend.UCColorList();
this.uiPanel1.SuspendLayout();
this.uiTitlePanel1.SuspendLayout();
this.uiPanel2.SuspendLayout();
@ -128,7 +129,7 @@
this.uiPanel1.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPanel1.Name = "uiPanel1";
this.uiPanel1.RectColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.uiPanel1.Size = new System.Drawing.Size(286, 67);
this.uiPanel1.Size = new System.Drawing.Size(212, 67);
this.uiPanel1.Style = Sunny.UI.UIStyle.Custom;
this.uiPanel1.StyleCustomMode = true;
this.uiPanel1.TabIndex = 0;
@ -141,7 +142,7 @@
this.lblLen.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.lblLen.Location = new System.Drawing.Point(3, 5);
this.lblLen.Name = "lblLen";
this.lblLen.Size = new System.Drawing.Size(275, 30);
this.lblLen.Size = new System.Drawing.Size(206, 30);
this.lblLen.Style = Sunny.UI.UIStyle.Custom;
this.lblLen.StyleCustomMode = true;
this.lblLen.TabIndex = 0;
@ -155,7 +156,7 @@
this.lblSpeed.Location = new System.Drawing.Point(3, 34);
this.lblSpeed.MinimumSize = new System.Drawing.Size(1, 1);
this.lblSpeed.Name = "lblSpeed";
this.lblSpeed.Size = new System.Drawing.Size(275, 28);
this.lblSpeed.Size = new System.Drawing.Size(206, 28);
this.lblSpeed.Style = Sunny.UI.UIStyle.Custom;
this.lblSpeed.StyleCustomMode = true;
this.lblSpeed.Symbol = 362942;
@ -426,13 +427,13 @@
this.uiPanel2.FillColor2 = System.Drawing.Color.White;
this.uiPanel2.FillDisableColor = System.Drawing.Color.White;
this.uiPanel2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiPanel2.Location = new System.Drawing.Point(298, 8);
this.uiPanel2.Location = new System.Drawing.Point(224, 8);
this.uiPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiPanel2.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPanel2.Name = "uiPanel2";
this.uiPanel2.RectColor = System.Drawing.Color.White;
this.uiPanel2.RectDisableColor = System.Drawing.Color.White;
this.uiPanel2.Size = new System.Drawing.Size(888, 67);
this.uiPanel2.Size = new System.Drawing.Size(962, 67);
this.uiPanel2.Style = Sunny.UI.UIStyle.Custom;
this.uiPanel2.StyleCustomMode = true;
this.uiPanel2.TabIndex = 0;
@ -492,7 +493,7 @@
this.btnClose.FillPressColor = System.Drawing.Color.Blue;
this.btnClose.FillSelectedColor = System.Drawing.Color.Blue;
this.btnClose.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClose.Location = new System.Drawing.Point(760, 9);
this.btnClose.Location = new System.Drawing.Point(834, 9);
this.btnClose.MinimumSize = new System.Drawing.Size(1, 1);
this.btnClose.Name = "btnClose";
this.btnClose.Radius = 50;
@ -523,7 +524,7 @@
this.btnOpen.FillPressColor = System.Drawing.Color.Blue;
this.btnOpen.FillSelectedColor = System.Drawing.Color.Blue;
this.btnOpen.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpen.Location = new System.Drawing.Point(641, 9);
this.btnOpen.Location = new System.Drawing.Point(715, 9);
this.btnOpen.MinimumSize = new System.Drawing.Size(1, 1);
this.btnOpen.Name = "btnOpen";
this.btnOpen.Radius = 50;
@ -632,6 +633,29 @@
this.uiTitlePanel2.TitleColor = System.Drawing.Color.White;
this.uiTitlePanel2.TitleForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
//
// ucColorListDefect
//
this.ucColorListDefect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ucColorListDefect.ColorChanged = null;
this.ucColorListDefect.FillColor = System.Drawing.Color.White;
this.ucColorListDefect.FillColor2 = System.Drawing.Color.White;
this.ucColorListDefect.FillDisableColor = System.Drawing.Color.White;
this.ucColorListDefect.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ucColorListDefect.Location = new System.Drawing.Point(1, 38);
this.ucColorListDefect.MinimumSize = new System.Drawing.Size(1, 1);
this.ucColorListDefect.Name = "ucColorListDefect";
this.ucColorListDefect.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
this.ucColorListDefect.RectColor = System.Drawing.Color.White;
this.ucColorListDefect.RectDisableColor = System.Drawing.Color.White;
this.ucColorListDefect.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom;
this.ucColorListDefect.Size = new System.Drawing.Size(121, 42);
this.ucColorListDefect.Style = Sunny.UI.UIStyle.Custom;
this.ucColorListDefect.StyleCustomMode = true;
this.ucColorListDefect.TabIndex = 1;
this.ucColorListDefect.Text = "ucColorList1";
this.ucColorListDefect.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
//
// lineChartDefect
//
this.lineChartDefect.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@ -681,21 +705,21 @@
//
// uiDataGridView1
//
dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(251)))), ((int)(((byte)(250)))));
this.uiDataGridView1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(251)))), ((int)(((byte)(250)))));
this.uiDataGridView1.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
this.uiDataGridView1.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)));
this.uiDataGridView1.BackgroundColor = System.Drawing.Color.White;
this.uiDataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle2.BackColor = System.Drawing.Color.Blue;
dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.uiDataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle10.BackColor = System.Drawing.Color.Blue;
dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle10.ForeColor = System.Drawing.Color.White;
dataGridViewCellStyle10.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.uiDataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
this.uiDataGridView1.ColumnHeadersHeight = 32;
this.uiDataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.uiDataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
@ -710,36 +734,36 @@
this.colArea,
this.colZXD,
this.colTarget});
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle6.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle6.ForeColor = System.Drawing.Color.White;
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(242)))), ((int)(((byte)(238)))));
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.uiDataGridView1.DefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle14.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle14.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle14.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(242)))), ((int)(((byte)(238)))));
dataGridViewCellStyle14.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.uiDataGridView1.DefaultCellStyle = dataGridViewCellStyle14;
this.uiDataGridView1.EnableHeadersVisualStyles = false;
this.uiDataGridView1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiDataGridView1.GridColor = System.Drawing.Color.CornflowerBlue;
this.uiDataGridView1.Location = new System.Drawing.Point(3, 31);
this.uiDataGridView1.Location = new System.Drawing.Point(3, 36);
this.uiDataGridView1.MultiSelect = false;
this.uiDataGridView1.Name = "uiDataGridView1";
this.uiDataGridView1.RectColor = System.Drawing.Color.DodgerBlue;
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(251)))), ((int)(((byte)(250)))));
dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle7.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
dataGridViewCellStyle7.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.uiDataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(251)))), ((int)(((byte)(250)))));
dataGridViewCellStyle15.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle15.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
dataGridViewCellStyle15.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.uiDataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle15;
this.uiDataGridView1.RowHeadersWidth = 62;
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.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(242)))), ((int)(((byte)(238)))));
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.uiDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle8;
dataGridViewCellStyle16.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle16.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle16.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(242)))), ((int)(((byte)(238)))));
dataGridViewCellStyle16.SelectionForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.uiDataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle16;
this.uiDataGridView1.RowTemplate.Height = 30;
this.uiDataGridView1.ScrollBarBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(251)))), ((int)(((byte)(250)))));
this.uiDataGridView1.ScrollBarColor = System.Drawing.Color.DodgerBlue;
@ -790,9 +814,9 @@
// colX
//
this.colX.DataPropertyName = "X";
dataGridViewCellStyle3.Format = "N1";
dataGridViewCellStyle3.NullValue = null;
this.colX.DefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle11.Format = "N1";
dataGridViewCellStyle11.NullValue = null;
this.colX.DefaultCellStyle = dataGridViewCellStyle11;
this.colX.HeaderText = "X(cm)";
this.colX.MinimumWidth = 8;
this.colX.Name = "colX";
@ -802,9 +826,9 @@
// colY
//
this.colY.DataPropertyName = "Y";
dataGridViewCellStyle4.Format = "N2";
dataGridViewCellStyle4.NullValue = null;
this.colY.DefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle12.Format = "N2";
dataGridViewCellStyle12.NullValue = null;
this.colY.DefaultCellStyle = dataGridViewCellStyle12;
this.colY.HeaderText = "Y(米)";
this.colY.MinimumWidth = 8;
this.colY.Name = "colY";
@ -827,9 +851,9 @@
//
// colArea
//
dataGridViewCellStyle5.Format = "N2";
dataGridViewCellStyle5.NullValue = null;
this.colArea.DefaultCellStyle = dataGridViewCellStyle5;
dataGridViewCellStyle13.Format = "N2";
dataGridViewCellStyle13.NullValue = null;
this.colArea.DefaultCellStyle = dataGridViewCellStyle13;
this.colArea.HeaderText = "面积(mm²)";
this.colArea.MinimumWidth = 8;
this.colArea.Name = "colArea";
@ -884,6 +908,7 @@
//
this.uiTitlePanel4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.uiTitlePanel4.BackColor = System.Drawing.Color.White;
this.uiTitlePanel4.Controls.Add(this.uilbKF);
this.uiTitlePanel4.Controls.Add(this.lineChartFaceWidth);
this.uiTitlePanel4.FillColor = System.Drawing.Color.White;
this.uiTitlePanel4.FillColor2 = System.Drawing.Color.White;
@ -906,6 +931,20 @@
this.uiTitlePanel4.TitleColor = System.Drawing.Color.White;
this.uiTitlePanel4.TitleForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
//
// uilbKF
//
this.uilbKF.AutoSize = true;
this.uilbKF.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uilbKF.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(29)))), ((int)(((byte)(138)))));
this.uilbKF.Location = new System.Drawing.Point(132, 36);
this.uilbKF.Name = "uilbKF";
this.uilbKF.Size = new System.Drawing.Size(90, 21);
this.uilbKF.Style = Sunny.UI.UIStyle.Custom;
this.uilbKF.StyleCustomMode = true;
this.uilbKF.TabIndex = 18;
this.uilbKF.Text = "当前幅宽:";
this.uilbKF.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// lineChartFaceWidth
//
this.lineChartFaceWidth.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@ -1023,6 +1062,15 @@
this.uiPanel3.Text = null;
this.uiPanel3.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
//
// picDefectImage
//
this.picDefectImage.Dock = System.Windows.Forms.DockStyle.Fill;
this.picDefectImage.Location = new System.Drawing.Point(0, 0);
this.picDefectImage.Margin = new System.Windows.Forms.Padding(0);
this.picDefectImage.Name = "picDefectImage";
this.picDefectImage.Size = new System.Drawing.Size(350, 226);
this.picDefectImage.TabIndex = 1;
//
// pnlScannerImg
//
this.pnlScannerImg.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@ -1311,38 +1359,6 @@
this.uiLabel6.Text = "光源";
this.uiLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// picDefectImage
//
this.picDefectImage.Dock = System.Windows.Forms.DockStyle.Fill;
this.picDefectImage.Location = new System.Drawing.Point(0, 0);
this.picDefectImage.Margin = new System.Windows.Forms.Padding(0);
this.picDefectImage.Name = "picDefectImage";
this.picDefectImage.Size = new System.Drawing.Size(350, 226);
this.picDefectImage.TabIndex = 1;
//
// ucColorListDefect
//
this.ucColorListDefect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ucColorListDefect.ColorChanged = null;
this.ucColorListDefect.FillColor = System.Drawing.Color.White;
this.ucColorListDefect.FillColor2 = System.Drawing.Color.White;
this.ucColorListDefect.FillDisableColor = System.Drawing.Color.White;
this.ucColorListDefect.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ucColorListDefect.Location = new System.Drawing.Point(1, 38);
this.ucColorListDefect.MinimumSize = new System.Drawing.Size(1, 1);
this.ucColorListDefect.Name = "ucColorListDefect";
this.ucColorListDefect.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
this.ucColorListDefect.RectColor = System.Drawing.Color.White;
this.ucColorListDefect.RectDisableColor = System.Drawing.Color.White;
this.ucColorListDefect.RectSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom;
this.ucColorListDefect.Size = new System.Drawing.Size(121, 42);
this.ucColorListDefect.Style = Sunny.UI.UIStyle.Custom;
this.ucColorListDefect.StyleCustomMode = true;
this.ucColorListDefect.TabIndex = 1;
this.ucColorListDefect.Text = "ucColorList1";
this.ucColorListDefect.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
//
// FHome
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@ -1374,6 +1390,7 @@
this.uiTitlePanel3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.uiDataGridView1)).EndInit();
this.uiTitlePanel4.ResumeLayout(false);
this.uiTitlePanel4.PerformLayout();
this.uiTitlePanel5.ResumeLayout(false);
this.uiTitlePanel6.ResumeLayout(false);
this.uiPanel3.ResumeLayout(false);
@ -1451,5 +1468,6 @@
private System.Windows.Forms.DataGridViewTextBoxColumn colArea;
private System.Windows.Forms.DataGridViewTextBoxColumn colZXD;
private System.Windows.Forms.DataGridViewTextBoxColumn colTarget;
private Sunny.UI.UILabel uilbKF;
}
}

View File

@ -152,6 +152,7 @@ namespace LeatherApp.Page
{
lblLen.Text = "0米";
lblSpeed.Text = "速度0米/分";
this.uilbKF.Text = $"当前幅宽0cm";
txtBarCodeName.Text = txtBatchId.Text = txtReelId.Text = "";
numErpLen.Text = "0";
@ -544,6 +545,8 @@ namespace LeatherApp.Page
//picScanner2.BackColor = Color.Green;
picScanner1.Width = picScanner2.Width = pnlScannerImg.ClientSize.Width / 2 - 5;
picScanner2.Left = picScanner1.Width + 5;
uilbKF.Top = 8;
}
//开机
private void btnOpen_Click(object sender, EventArgs e)
@ -557,6 +560,9 @@ namespace LeatherApp.Page
ThreadPool.SetMinThreads(25, minIOC);
//ThreadPool.SetMaxThreads(256, 256);
//DefectLib dl = new DefectLib();
//dl.start();
this.btnOpen.Enabled = false;
this.resetUIValue();
@ -671,6 +677,13 @@ namespace LeatherApp.Page
string pcode = "1-" + codes[2];
if (codes[1] == "0" || Config.SuedeList.Contains(codes[1]))
pcode = "0-" + codes[2];
else
#if false
pcode = codes[1] + "-" + codes[2];
#else
pcode = "1-" + codes[2];
#endif
var productInfo = svcProduct.GetModelNav(pcode); //frmProduct.loadProduct(code);
Records record;
lock (lockCurrKey)
@ -1162,6 +1175,7 @@ namespace LeatherApp.Page
devContainer.libPhoto.add(task);
AddTextEvent(DateTime.Now, $"拍照{Thread.CurrentThread.ManagedThreadId}", $"Dev={devIndex},图像{scanPhoto.photoIndex},已加入图像处理队列");
errStep = 11;
Application.DoEvents();
}
}
catch (Exception e)
@ -1184,11 +1198,12 @@ namespace LeatherApp.Page
{
if (scanPhotos0.mat.Height != scanPhotos1.mat.Height)
{
int xw, xh;
AddTextEvent(DateTime.Now,$"警告{Thread.CurrentThread.ManagedThreadId}", $"两相机采集图高度不一致({scanPhotos0.photoIndex}),dev1.Height={scanPhotos0.mat.Height},dev2.Height={scanPhotos1.mat.Height},重新resize...", WarningEnum.Low);
if (scanPhotos0.mat.Height > scanPhotos1.mat.Height)
scanPhotos1.mat = OpenCVUtil.resize(scanPhotos1.mat, scanPhotos0.mat.Width, scanPhotos0.mat.Height);
scanPhotos1.mat = OpenCVUtil.resize(scanPhotos1.mat, scanPhotos0.mat.Width, scanPhotos0.mat.Height,out xw, out xh);
else
scanPhotos0.mat = OpenCVUtil.resize(scanPhotos0.mat, scanPhotos1.mat.Width, scanPhotos1.mat.Height);
scanPhotos0.mat = OpenCVUtil.resize(scanPhotos0.mat, scanPhotos1.mat.Width, scanPhotos1.mat.Height, out xw, out xh);
}
//saveMatTest(scanPhotos0.mat, 1);
//saveMatTest(scanPhotos1.mat, 2);
@ -1220,9 +1235,13 @@ namespace LeatherApp.Page
if (Config.MiddleSuperposition > 0)//中间重合部分
{
errStep = 3;
int width = mat0.Width - Config.MiddleSuperposition;
int width = mat0.Width - Config.MiddleSuperposition /2 ;
mat0 = OpenCVUtil.cutImage(mat0, 0, 0, width, mat0.Height);
time += $"->图1去重({stopWatch.ElapsedMilliseconds})";
width = mat1.Width - Config.MiddleSuperposition / 2;
mat1 = OpenCVUtil.cutImage(mat1, Config.MiddleSuperposition / 2, 0, width, mat1.Height);
time += $"->图2去重({stopWatch.ElapsedMilliseconds})";
}
AddTextEvent(DateTime.Now,$"裁边{Thread.CurrentThread.ManagedThreadId}",
$"(图像{scanPhotos0.photoIndex})-左图去重后:{mat0.Width}*{mat0.Height},右图:{mat1.Width}*{mat1.Height}" +
@ -1275,12 +1294,14 @@ namespace LeatherApp.Page
this.lblLen.Text = $"{lenMi}米";
this.lblLen.Tag = faceWidthX_cm;
this.lblSpeed.Text = $"速度:{Math.Round(lenMi / curRecord.TimeLen, 2)}米/分";
this.uilbKF.Text = $"当前幅宽:{faceWidthY_cm}cm";
}));
//
errStep = 9;
time += $"->速度刷新({stopWatch.ElapsedMilliseconds})";
//----缺陷队列
mat = OpenCVUtil.resize(mat, resize.Width, resize.Height);
int oxw, oxh;
mat = OpenCVUtil.resize(mat, resize.Width, resize.Height, out oxw, out oxh);
AddTextEvent(DateTime.Now,$"图像处理{Thread.CurrentThread.ManagedThreadId}", $"(图像{scanPhotos0.photoIndex})-合成图resize后:{mat.Width}*{mat.Height}");
devContainer.libDefect.add(new Device.DefectLib.DefectTask()
{
@ -1292,6 +1313,7 @@ namespace LeatherApp.Page
widthRatio = widthRatio,
qualifiedLimitList = curRecord.ProductInfo.QualifiedLimitList,
finishEvent = callBackDefectEvent,
xw = oxw,
});
errStep = 10;
time += $"->加入瑕疵待检队列({stopWatch.ElapsedMilliseconds})";
@ -1440,6 +1462,27 @@ namespace LeatherApp.Page
res.record.preWarningPhotoIndex = res.photoIndex + 1;
AddTextEvent(DateTime.Now,$"告警{Thread.CurrentThread.ManagedThreadId}", $"每百米瑕疵数量达到阈值!({defectCount}>={res.record.ProductInfo.DefectCountLimit})", WarningEnum.High);
}
step = 11;
#if false
//按缺陷计算没X米多少缺陷报警
for (int i = 0; i < res.record.ProductInfo.QualifiedLimitList.Count; i++)
{
var defectWarn = res.record.ProductInfo.QualifiedLimitList[i];
if (defectWarn.DefectWarnLength > 0 || defectWarn.DefectWarnCnt >0)
{
step = 12;
int warnLen = defectWarn.DefectWarnLength * 100;//每百米 to cm
int warnCount = warnLen * Config.cm2px_y / res.bmp.Height;
//从上次告警后重新开始计算长度及数量
int warnDefectCount = res.record.DefectInfoList.Where(m => m.PhotoIndex >= res.record.preWarningPhotoIndexByLabel[i] && m.PhotoIndex >= res.photoIndex + 1 - warnCount).Count();
if (warnDefectCount >= defectWarn.DefectWarnCnt)
{
res.record.preWarningPhotoIndexByLabel[i] = res.photoIndex + 1;
AddTextEvent(DateTime.Now, $"告警{Thread.CurrentThread.ManagedThreadId}", $"每{defectWarn.DefectWarnLength}米{Config.getDefectName(defectWarn.Code)}瑕疵数量达到阈值!({warnDefectCount}>={defectWarn.DefectWarnCnt})", WarningEnum.High);
}
}
}
#endif
}
}

View File

@ -78,6 +78,10 @@
this.btnSave = new Sunny.UI.UISymbolButton();
this.btnReload = new Sunny.UI.UISymbolButton();
this.uiTitlePanel1 = new Sunny.UI.UITitlePanel();
this.rbMaterial5 = new Sunny.UI.UIRadioButton();
this.rbMaterial4 = new Sunny.UI.UIRadioButton();
this.rbMaterial3 = new Sunny.UI.UIRadioButton();
this.rbMaterial2 = new Sunny.UI.UIRadioButton();
this.rbMaterial1 = new Sunny.UI.UIRadioButton();
this.rbMaterial0 = new Sunny.UI.UIRadioButton();
this.cmbMaterial = new Sunny.UI.UIComboBox();
@ -90,6 +94,8 @@
this.col_contrast_lower = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_contrast_top = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_IsOR = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.col_Len = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.col_Cnt = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.uiTitlePanel2.SuspendLayout();
this.uiTitlePanel3.SuspendLayout();
this.uiTitlePanel4.SuspendLayout();
@ -535,7 +541,9 @@
this.col_area,
this.col_contrast_lower,
this.col_contrast_top,
this.col_IsOR});
this.col_IsOR,
this.col_Len,
this.col_Cnt});
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@ -781,6 +789,10 @@
//
// uiTitlePanel1
//
this.uiTitlePanel1.Controls.Add(this.rbMaterial5);
this.uiTitlePanel1.Controls.Add(this.rbMaterial4);
this.uiTitlePanel1.Controls.Add(this.rbMaterial3);
this.uiTitlePanel1.Controls.Add(this.rbMaterial2);
this.uiTitlePanel1.Controls.Add(this.rbMaterial1);
this.uiTitlePanel1.Controls.Add(this.rbMaterial0);
this.uiTitlePanel1.Controls.Add(this.cmbMaterial);
@ -803,6 +815,54 @@
this.uiTitlePanel1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
this.uiTitlePanel1.TitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
//
// rbMaterial5
//
this.rbMaterial5.Cursor = System.Windows.Forms.Cursors.Hand;
this.rbMaterial5.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.rbMaterial5.Location = new System.Drawing.Point(119, 155);
this.rbMaterial5.MinimumSize = new System.Drawing.Size(1, 1);
this.rbMaterial5.Name = "rbMaterial5";
this.rbMaterial5.Size = new System.Drawing.Size(110, 29);
this.rbMaterial5.TabIndex = 27;
this.rbMaterial5.Text = "细纹理";
this.rbMaterial5.CheckedChanged += new System.EventHandler(this.cmbMaterial_SelectedIndexChanged);
//
// rbMaterial4
//
this.rbMaterial4.Cursor = System.Windows.Forms.Cursors.Hand;
this.rbMaterial4.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.rbMaterial4.Location = new System.Drawing.Point(10, 155);
this.rbMaterial4.MinimumSize = new System.Drawing.Size(1, 1);
this.rbMaterial4.Name = "rbMaterial4";
this.rbMaterial4.Size = new System.Drawing.Size(85, 29);
this.rbMaterial4.TabIndex = 28;
this.rbMaterial4.Text = "粗纹理";
this.rbMaterial4.CheckedChanged += new System.EventHandler(this.cmbMaterial_SelectedIndexChanged);
//
// rbMaterial3
//
this.rbMaterial3.Cursor = System.Windows.Forms.Cursors.Hand;
this.rbMaterial3.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.rbMaterial3.Location = new System.Drawing.Point(119, 120);
this.rbMaterial3.MinimumSize = new System.Drawing.Size(1, 1);
this.rbMaterial3.Name = "rbMaterial3";
this.rbMaterial3.Size = new System.Drawing.Size(110, 29);
this.rbMaterial3.TabIndex = 25;
this.rbMaterial3.Text = "大花纹";
this.rbMaterial3.CheckedChanged += new System.EventHandler(this.cmbMaterial_SelectedIndexChanged);
//
// rbMaterial2
//
this.rbMaterial2.Cursor = System.Windows.Forms.Cursors.Hand;
this.rbMaterial2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.rbMaterial2.Location = new System.Drawing.Point(10, 120);
this.rbMaterial2.MinimumSize = new System.Drawing.Size(1, 1);
this.rbMaterial2.Name = "rbMaterial2";
this.rbMaterial2.Size = new System.Drawing.Size(85, 29);
this.rbMaterial2.TabIndex = 26;
this.rbMaterial2.Text = "荔枝纹";
this.rbMaterial2.CheckedChanged += new System.EventHandler(this.cmbMaterial_SelectedIndexChanged);
//
// rbMaterial1
//
this.rbMaterial1.Cursor = System.Windows.Forms.Cursors.Hand;
@ -836,7 +896,7 @@
this.cmbMaterial.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbMaterial.ItemHoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(200)))), ((int)(((byte)(255)))));
this.cmbMaterial.ItemSelectForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255)))));
this.cmbMaterial.Location = new System.Drawing.Point(10, 221);
this.cmbMaterial.Location = new System.Drawing.Point(10, 294);
this.cmbMaterial.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cmbMaterial.MinimumSize = new System.Drawing.Size(63, 0);
this.cmbMaterial.Name = "cmbMaterial";
@ -858,7 +918,7 @@
this.cmbColor.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbColor.ItemHoverColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(200)))), ((int)(((byte)(255)))));
this.cmbColor.ItemSelectForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255)))));
this.cmbColor.Location = new System.Drawing.Point(9, 158);
this.cmbColor.Location = new System.Drawing.Point(9, 231);
this.cmbColor.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.cmbColor.MinimumSize = new System.Drawing.Size(63, 0);
this.cmbColor.Name = "cmbColor";
@ -889,7 +949,7 @@
this.uiLabel2.AutoSize = true;
this.uiLabel2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uiLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
this.uiLabel2.Location = new System.Drawing.Point(3, 122);
this.uiLabel2.Location = new System.Drawing.Point(3, 195);
this.uiLabel2.Name = "uiLabel2";
this.uiLabel2.Size = new System.Drawing.Size(74, 21);
this.uiLabel2.Style = Sunny.UI.UIStyle.Custom;
@ -947,6 +1007,18 @@
this.col_IsOR.Name = "col_IsOR";
this.col_IsOR.Width = 150;
//
// col_Len
//
this.col_Len.HeaderText = "报警长度(m)";
this.col_Len.Name = "col_Len";
this.col_Len.Visible = false;
//
// col_Cnt
//
this.col_Cnt.HeaderText = "报警数量";
this.col_Cnt.Name = "col_Cnt";
this.col_Cnt.Visible = false;
//
// FProductInfo
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@ -1027,11 +1099,17 @@
private Sunny.UI.UITrackBar tcbarTensionValue;
private Sunny.UI.UILabel uiLabel9;
private Sunny.UI.UILabel lblTensionValue;
private Sunny.UI.UIRadioButton rbMaterial5;
private Sunny.UI.UIRadioButton rbMaterial4;
private Sunny.UI.UIRadioButton rbMaterial3;
private Sunny.UI.UIRadioButton rbMaterial2;
private System.Windows.Forms.DataGridViewTextBoxColumn col_code;
private System.Windows.Forms.DataGridViewTextBoxColumn col_zxd;
private System.Windows.Forms.DataGridViewTextBoxColumn col_area;
private System.Windows.Forms.DataGridViewTextBoxColumn col_contrast_lower;
private System.Windows.Forms.DataGridViewTextBoxColumn col_contrast_top;
private System.Windows.Forms.DataGridViewCheckBoxColumn col_IsOR;
private System.Windows.Forms.DataGridViewTextBoxColumn col_Len;
private System.Windows.Forms.DataGridViewTextBoxColumn col_Cnt;
}
}

View File

@ -114,20 +114,66 @@ namespace LeatherApp.Page
string[] codes= pcode.Split('-');
if (codes[0]=="0" || Config.SuedeList.Contains(codes[0]))
this.rbMaterial0.Checked = true;
else
else if (codes[0] == "1")
this.rbMaterial1.Checked = true;
else if (codes[0] == "2")
this.rbMaterial2.Checked = true;
else if (codes[0] == "3")
this.rbMaterial3.Checked = true;
else if (codes[0] == "4")
this.rbMaterial4.Checked = true;
else if (codes[0] == "5")
this.rbMaterial5.Checked = true;
this.cmbColor.SelectedValue = int.Parse(codes[1]);
}
else
loadProduct();
}
private double ContrastLow = 0.8;
private double ContrastTop = 1.2;
/// <summary>
/// 获取对比度百分比 0-100 对应0.6-1.4
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
private double ContrastToPercent(double val)
{
if (val < ContrastLow)
return 0;
else if (val > ContrastTop)
return 100;
double temp = 100 /(ContrastTop - ContrastLow) ;
return Math.Round(temp * (val - ContrastLow),2);
}
private double PercentToContrast(double val)
{
double tt = 1;
if (val > 100)
tt = 100;
else if (val < 0)
tt = 0;
else
tt = val;
double temp = tt / 100 * (ContrastTop - ContrastLow);
return temp + ContrastLow;
}
private void loadProduct()
{
if (model == null) return;
if(model.Material=="0")
this.rbMaterial0.Checked = true;
else
else if (model.Material == "1")
this.rbMaterial1.Checked = true;
else if (model.Material == "2")
this.rbMaterial2.Checked = true;
else if (model.Material == "3")
this.rbMaterial3.Checked = true;
else if (model.Material == "4")
this.rbMaterial4.Checked = true;
else if (model.Material == "5")
this.rbMaterial5.Checked = true;
this.cmbColor.SelectedValue = model.Color;
tcbarLightValue.Value = model.LightValue;
@ -151,9 +197,11 @@ namespace LeatherApp.Page
{
uiDataGridView1.Rows[i].Cells["col_zxd"].Value=item1.ZXD;
uiDataGridView1.Rows[i].Cells["col_area"].Value = item1.Area * 100;
uiDataGridView1.Rows[i].Cells["col_contrast_top"].Value = item1.ContrastTop;
uiDataGridView1.Rows[i].Cells["col_contrast_lower"].Value = item1.ContrastLower;
uiDataGridView1.Rows[i].Cells["col_contrast_top"].Value = ContrastToPercent(item1.ContrastTop);
uiDataGridView1.Rows[i].Cells["col_contrast_lower"].Value = ContrastToPercent(item1.ContrastLower);
uiDataGridView1.Rows[i].Cells["col_IsOR"].Value = item1.IsOR;
//uiDataGridView1.Rows[i].Cells["col_Len"].Value = item1.DefectWarnLength;
//uiDataGridView1.Rows[i].Cells["col_Cnt"].Value = item1.DefectWarnCnt;
}
}
GradeLimit item2;
@ -258,11 +306,14 @@ namespace LeatherApp.Page
{
try
{
if (!this.rbMaterial0.Checked && !rbMaterial1.Checked) throw new Exception("请选择材质!");
if (!this.rbMaterial0.Checked && !rbMaterial1.Checked
&& !rbMaterial2.Checked && !rbMaterial3.Checked
&& !rbMaterial4.Checked && !rbMaterial5.Checked
) throw new Exception("请选择材质!");
if (this.cmbColor.SelectedIndex < 0) throw new Exception("请选择颜色!");
if (this.cmbModelName.SelectedIndex < 0) throw new Exception("请选择模型!");
model.Material = rbMaterial0.Checked ? "0" : "1";
model.Material = GetMaterialIndex();
model.Color = (int)cmbColor.SelectedValue;
model.Code = model.Material+"-"+ model.Color;
@ -289,15 +340,18 @@ namespace LeatherApp.Page
Code = uiDataGridView1.Rows[i].Cells["col_code"].Value.ToString(),
ZXD = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_zxd"].Value) ? Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_zxd"].Value) : 0,
Area = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_area"].Value) ? Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_area"].Value) / 100 : 0,
ContrastLower = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_contrast_lower"].Value) ? Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_contrast_lower"].Value) : 0,
ContrastTop = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_contrast_top"].Value) ? Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_contrast_top"].Value) : 0,
ContrastLower = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_contrast_lower"].Value) ? PercentToContrast(Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_contrast_lower"].Value)) : 0,
ContrastTop = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_contrast_top"].Value) ? PercentToContrast(Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_contrast_top"].Value)) : 0,
IsOR = Convert.ToBoolean(uiDataGridView1.Rows[i].Cells["col_IsOR"].Value),
//DefectWarnLength = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_Len"].Value) ? (int)Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_Len"].Value) : 0,
//DefectWarnCnt = Utils.Util.IsDecimal(uiDataGridView1.Rows[i].Cells["col_Cnt"].Value) ? (int)Convert.ToDouble(uiDataGridView1.Rows[i].Cells["col_Cnt"].Value) : 0,
ModifyUserCode = Config.loginUser.Code,
CreateUserCode = Config.loginUser.Code
};
if (qualifiedLimit.ContrastLower + qualifiedLimit.ContrastTop > 0 && qualifiedLimit.ContrastTop < qualifiedLimit.ContrastLower)
throw new Exception($"检测标准中第{i+1}行中对比度上限值({qualifiedLimit.ContrastTop})不可小于下限值({qualifiedLimit.ContrastLower})");
throw new Exception($"检测标准中第{i+1}行中对比度上限值({ContrastToPercent(qualifiedLimit.ContrastTop)})不可小于下限值({ContrastToPercent(qualifiedLimit.ContrastLower)})");
model.QualifiedLimitList.Add(qualifiedLimit);
}
//
@ -366,14 +420,31 @@ namespace LeatherApp.Page
this.clear(true);
}
string GetMaterialIndex()
{
if (this.rbMaterial0.Checked)
return "0";
else if (this.rbMaterial1.Checked)
return "1";
else if (this.rbMaterial2.Checked)
return "2";
else if (this.rbMaterial3.Checked)
return "3";
else if (this.rbMaterial4.Checked)
return "4";
else
return "5";
}
private void cmbMaterial_SelectedIndexChanged(object sender, EventArgs e)
{
//if (this.cmbMaterial.SelectedIndex < 0 || this.cmbColor.SelectedIndex < 0)
// return;
if ((!this.rbMaterial0.Checked && !this.rbMaterial1.Checked) || this.cmbColor.SelectedIndex < 0)
if ((!this.rbMaterial0.Checked && !this.rbMaterial1.Checked && !this.rbMaterial2.Checked
&& !this.rbMaterial3.Checked && !this.rbMaterial4.Checked && !this.rbMaterial5.Checked)
|| this.cmbColor.SelectedIndex < 0)
return;
this.loadProduct((this.rbMaterial0.Checked?"0":"1") + "-" + this.cmbColor.SelectedValue.ToString());
this.loadProduct(GetMaterialIndex() + "-" + this.cmbColor.SelectedValue.ToString());
}
private void btnDefectOption_Click(object sender, EventArgs e)

View File

@ -135,6 +135,12 @@
<metadata name="col_IsOR.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_Len.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col_Cnt.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="col2_code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>

View File

@ -23,6 +23,8 @@ namespace LeatherApp.Page
public partial class FReport : UIPage
{
RecordsService service=new RecordsService();
ProductService productService =new ProductService();
public FReport( )
{
InitializeComponent();
@ -181,6 +183,10 @@ namespace LeatherApp.Page
data.DefectDetail = record.DefectInfoList.Select(x => new JDefectDetail {
Index=x.PhotoIndex,Name=x.Name, X=x.X,Y=Math.Round(x.Y/100.0d,2),Width=x.Width * 10,Height=x.Height * 10,ZXD=x.ZXD,Area=x.Area * 100,Contrast=x.Contrast })
.OrderBy(x=>x.Index).ThenBy(x=>x.Y).ToList();
data.Pdt = productService.GetModelNav(record.ProductId);
data.xyPix = $"X:{Config.cm2px_x},Y:{Config.cm2px_y}";
var image1 = captureControl(this.lineChartDefect);
var image2 = captureControl(this.lineChartFaceWidth);
var filePath = $"{path}缺陷列表_{record.BatchId}_{record.ReelId}.xlsx";
@ -392,126 +398,187 @@ namespace LeatherApp.Page
row3_cell9.Style = row2_cell2.Style;
#endregion
#region
#region
rowIndex++;
var row4_cell1 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex);
row4_cell1.Value = "设备参数";
row4_cell1.Style = row2_cell1.Style;
row4_cell1.Style.Font.Bold = true;
row4_cell1.Style.Font.FontSize = 10;
row4_cell1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
var mergeRange_row4 = wsDefectsDetail.Range("A4:A5").Column(1).Merge();
mergeRange_row4.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
var row4_cell2 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 1);
row4_cell2.Value = "光源亮度";
row4_cell2.Style = row2_cell1.Style;
var row4_cell3 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 2);
row4_cell3.Value = "曝光时间";
row4_cell3.Style = row2_cell1.Style;
var row4_cell4 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 3);
row4_cell4.Value = "增益";
row4_cell4.Style = row2_cell1.Style;
var row4_cell5 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 4);
row4_cell5.Value = "行频比";
row4_cell5.Style = row2_cell1.Style;
var row4_cell6 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 5);
row4_cell6.Value = "物面分辨率";
row4_cell6.Style = row2_cell1.Style;
var row4_cell7 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 6);
row4_cell7.Value = "触发计数";
row4_cell7.Style = row2_cell1.Style;
var row4_cell8 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 7);
row4_cell8.Value = "采集计数";
row4_cell8.Style = row2_cell1.Style;
var row4_cell9 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 8);
row4_cell9.Value = "";
row4_cell9.Style = row2_cell1.Style;
rowIndex++;
var row5_cell2 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 1);
row5_cell2.Value = ProductDefects.Pdt.LightValue;
row5_cell2.Style = row2_cell1.Style;
var row5_cell3 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 2);
row5_cell3.Value = ProductDefects.Pdt.ExposureTime;
row5_cell3.Style = row2_cell1.Style;
var row5_cell4 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 3);
row5_cell4.Value = ProductDefects.Pdt.Gain;
row5_cell4.Style = row2_cell1.Style;
var row5_cell5 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 4);
row5_cell5.Value = "";
row5_cell5.Style = row2_cell1.Style;
var row5_cell6 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 5);
row5_cell6.Value = ProductDefects.xyPix;
row5_cell6.Style = row2_cell1.Style;
var row5_cell7 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 6);
row5_cell7.Value = "";
row5_cell7.Style = row2_cell1.Style;
var row5_cell8 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 7);
row5_cell8.Value = "";
row5_cell8.Style = row2_cell1.Style;
var row5_cell9 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 8);
row5_cell9.Value = "";
row5_cell9.Style = row2_cell1.Style;
#endregion
#region
rowIndex++;
if (ProductDefects.DefectTotal != null && ProductDefects.DefectTotal.Count > 0)
{
cellIndex = 1;
int DefectTotalCount = ProductDefects.DefectTotal.Count;
//最少5行固定4列
if (DefectTotalCount <= 20)
var row6_cell1 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex);
row6_cell1.Value = "检测参数";
row6_cell1.Style.Font.Bold = true;
row6_cell1.Style.Font.FontSize = 10;
row6_cell1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
string cellstr = $"A6:A{7 + ProductDefects.DefectTotal.Count}";
var mergeRange_row6 = wsDefectsDetail.Range(cellstr).Column(1).Merge();
mergeRange_row6.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
var row6_cell2 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 1);
row6_cell2.Value = "筛选标准";
row6_cell2.Style.Font.Bold = true;
row6_cell2.Style.Font.FontSize = 10;
row6_cell2.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
var mergeRange_row6_2 = wsDefectsDetail.Range($"B6:I6").Row(1).Merge();
mergeRange_row6_2.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
//第七行
rowIndex++;
var row7_cell2 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 1);
row7_cell2.Value = "缺陷类型";
row7_cell2.Style = row2_cell1.Style;
var row7_cell3 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 2);
row7_cell3.Value = "置信度";
row7_cell3.Style = row2_cell1.Style;
var row7_cell4 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 3);
row7_cell4.Value = "面积";
row7_cell4.Style = row2_cell1.Style;
var row7_cell5 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 4);
row7_cell5.Value = "对比度下限";
row7_cell5.Style = row2_cell1.Style;
var row7_cell6 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 5);
row7_cell6.Value = "对比度上限";
row7_cell6.Style = row2_cell1.Style;
var row7_cell7 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 6);
row7_cell7.Value = "所用模型版本";
row7_cell7.Style = row2_cell1.Style;
var row7_cell8 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 7);
row7_cell8.Value = "或向选择";
row7_cell8.Style = row2_cell1.Style;
var row7_cell9 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex + 8);
row7_cell9.Value = "本次检出数量";
row7_cell9.Style = row2_cell1.Style;
//第八行之后
rowIndex++;
for (int j = 1; j <= ProductDefects.DefectTotal.Count; j++) // 行
{
var row4_cell1 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex);
var temprowcel2 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 1);
var temprowcel3 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 2);
var temprowcel4 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 3);
var temprowcel5 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 4);
var temprowcel6 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 5);
var temprowcel7 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 6);
var temprowcel8 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 7);
var temprowcel9 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + 8);
var tempItemDefectTotal = ProductDefects.DefectTotal[j - 1];
temprowcel2.Value = tempItemDefectTotal.Name;
temprowcel2.Style.Font.Bold = true;
temprowcel2.Style.Font.FontSize = 10;
temprowcel2.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
row4_cell1.Value = "疵点统计";
row4_cell1.Style.Font.Bold = true;
row4_cell1.Style.Font.FontSize = 10;
row4_cell1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
var temp = ProductDefects.Pdt.QualifiedLimitList.Find(x => Config.getDefectName(x.Code) == tempItemDefectTotal.Name);
temprowcel3.Value = temp.ZXD;
temprowcel3.Style.Font.Bold = true;
temprowcel3.Style.Font.FontSize = 10;
temprowcel3.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
var mergeRange_row4 = wsDefectsDetail.Range("A4:A8").Column(1).Merge();
mergeRange_row4.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcel4.Value = temp.Area;
temprowcel4.Style.Font.Bold = true;
temprowcel4.Style.Font.FontSize = 10;
temprowcel4.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= 5; j++)
{
var temprowcell = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + i * 2 - 1);
var temprowcell_1 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + i * 2);
if ((i - 1) * 5 + j <= DefectTotalCount)
{
var tempItemDefectTotal = ProductDefects.DefectTotal[(i - 1) * 5 + j - 1];
temprowcell.Value = tempItemDefectTotal.Name;
temprowcell.Style.Font.Bold = true;
temprowcell.Style.Font.FontSize = 10;
temprowcell.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcel5.Value = ContrastToPercent(temp.ContrastLower);
temprowcel5.Style.Font.Bold = true;
temprowcel5.Style.Font.FontSize = 10;
temprowcel5.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcell_1.Value = tempItemDefectTotal.Count;
temprowcell_1.Style.Font.FontSize = 10;
temprowcell_1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcel6.Value = ContrastToPercent(temp.ContrastTop);
temprowcel6.Style.Font.Bold = true;
temprowcel6.Style.Font.FontSize = 10;
temprowcel6.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcel7.Value = ProductDefects.Pdt.ModelName;
temprowcel7.Style.Font.Bold = true;
temprowcel7.Style.Font.FontSize = 10;
temprowcel7.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcel8.Value = temp.IsOR;
temprowcel8.Style.Font.Bold = true;
temprowcel8.Style.Font.FontSize = 10;
temprowcel8.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcel9.Value = tempItemDefectTotal.Count;
temprowcel9.Style.Font.FontSize = 10;
temprowcel9.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
}
else
{
temprowcell.Style.Font.Bold = true;
temprowcell.Style.Font.FontSize = 10;
temprowcell.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcell_1.Style.Font.FontSize = 10;
temprowcell_1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
}
}
}
//补齐最后一列空列
//for (int i = 0; i < 5; i++)
//{
// var temprowcell = wsDefectsDetail.Row(rowIndex + i).Cell(8);
// temprowcell.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
//}
//更新行号
rowIndex = rowIndex + 5;
}
else //>20
{
var row4_cell1 = wsDefectsDetail.Row(rowIndex).Cell(cellIndex);
rowIndex = rowIndex + ProductDefects.DefectTotal.Count;
row4_cell1.Value = "疵点统计";
row4_cell1.Style.Font.Bold = true;
row4_cell1.Style.Font.FontSize = 10;
row4_cell1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
int DefectTotalRowCount = (int)(ProductDefects.DefectTotal.Count / 4.0f + 0.5);
var mergeRange_row4 = wsDefectsDetail.Range($"A{rowIndex}:A{rowIndex+ DefectTotalRowCount-1}").Column(1).Merge();
mergeRange_row4.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= DefectTotalRowCount; j++)
{
var temprowcell = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + i * 2 - 1);
var temprowcell_1 = wsDefectsDetail.Row(rowIndex + j - 1).Cell(cellIndex + i * 2);
if ((i - 1) * DefectTotalRowCount + j <= DefectTotalCount)
{
var tempItemDefectTotal = ProductDefects.DefectTotal[(i - 1) * DefectTotalRowCount + j - 1];
temprowcell.Value = tempItemDefectTotal.Name;
temprowcell.Style.Font.Bold = true;
temprowcell.Style.Font.FontSize = 10;
temprowcell.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcell_1.Value = tempItemDefectTotal.Count;
temprowcell_1.Style.Font.FontSize = 10;
temprowcell_1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
}
else
{
temprowcell.Style.Font.Bold = true;
temprowcell.Style.Font.FontSize = 10;
temprowcell.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
temprowcell_1.Style.Font.FontSize = 10;
temprowcell_1.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
}
}
}
//补齐最后一列空列
//for (int i = 0; i < DefectTotalRowCount; i++)
//{
// var temprowcell = wsDefectsDetail.Row(rowIndex + i).Cell(8);
// temprowcell.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
//}
//更新行号
rowIndex = rowIndex + DefectTotalRowCount;
}
}
#endregion
#region
#region
//rowIndex++;
if (ProductDefects.DefectDetail != null && ProductDefects.DefectDetail.Count > 0)
{
@ -595,6 +662,17 @@ namespace LeatherApp.Page
//}
}
private double ContrastLow = 0.8;
private double ContrastTop = 1.2;
private double ContrastToPercent(double val)
{
if (val < ContrastLow)
return 0;
else if (val > ContrastTop)
return 100;
double temp = 100 / (ContrastTop - ContrastLow);
return Math.Round(temp * (val - ContrastLow), 2);
}
public static Image getImageBase64(string imgBase64)
{
byte[] imgByte = Convert.FromBase64String(imgBase64);
@ -624,6 +702,12 @@ namespace LeatherApp.Page
[Description("疵点统计")]
public List<JDefectTotal> DefectTotal = new List<JDefectTotal>();
public List<JDefectDetail> DefectDetail = new List<JDefectDetail>();
[Description("检测设置")]
public Product Pdt { get; set; }
[Description("物面分辨率")]
public string xyPix { get; set; }
}
public class JDefectTotal
{

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.2.6")]
[assembly: AssemblyFileVersion("1.0.2.6")]
[assembly: AssemblyVersion("1.0.2.9")]
[assembly: AssemblyFileVersion("1.0.2.9")]

View File

@ -3,22 +3,24 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xaml;
using DocumentFormat.OpenXml.Vml;
using OpenCvSharp;
namespace LeatherApp.Utils
{
public class OpenCVUtil
{
public static Mat resize(Mat mat, int width, int height)
public static Mat resize(Mat mat, int width, int height, out int xw, out int xh)
{
OpenCvSharp.Size dsize = new OpenCvSharp.Size(width, height);
Mat mat2 = new Mat();
//Cv2.Resize(mat, mat2, dsize);
ResizeUniform(mat, dsize, out mat2);
ResizeUniform(mat, dsize, out mat2, out xw, out xh);
return mat2;
}
public static int ResizeUniform(Mat src, Size dst_size, out Mat dst)
public static int ResizeUniform(Mat src, Size dst_size, out Mat dst, out int xw, out int xh)
{
xw = xh = 0;
int w = src.Cols;
int h = src.Rows;
int dst_w = dst_size.Width;
@ -66,6 +68,7 @@ namespace LeatherApp.Utils
if (tmp_w != dst_w)
{ //高对齐,宽没对齐
int index_w = (int)((dst_w - tmp_w) / 2.0);
xw = index_w;
//std::cout << "index_w: " << index_w << std::endl;
for (int i = 0; i < dst_h; i++)
{
@ -75,6 +78,7 @@ namespace LeatherApp.Utils
else if (tmp_h != dst_h)
{ //宽对齐, 高没有对齐
int index_h = (int)((dst_h - tmp_h) / 2.0);
xh = index_h;
//std::cout << "index_h: " << index_h << std::endl;
Buffer.MemoryCopy(tmp.Data.ToPointer(), IntPtr.Add(dst.Data, index_h * dst_w * 3).ToPointer(), tmp_w * tmp_h * 3, tmp_w * tmp_h * 3);
}

View File

@ -0,0 +1,56 @@
[
{
"id": 0,
"code": "bmss",
"name": "表面损伤",
"color": "Red"
},
{
"id": 1,
"code": "lj",
"name": "垃圾",
"color": "Lime"
},
{
"id": 2,
"code": "zmty",
"name": "脏面条印",
"color": "DarkViolet"
},
{
"id": 3,
"code": "zy",
"name": "皱印",
"color": "Magenta"
},
{
"id": 4,
"code": "cq",
"name": "串气",
"color": "Orange"
},
{
"id": 5,
"code": "jt",
"name": "接头",
"color": "Brown"
},
{
"id": 6,
"code": "bj",
"name": "布接",
"color": "Olive"
},
{
"id": 7,
"code": "zyc",
"name": "纸异常",
"color": "PaleGreen"
},
{
"id": 8,
"code": "hd",
"name": "横档",
"color": "CadetBlue"
}
]

View File

@ -1,74 +1,86 @@
[
{
"id": 0,
"code": "jb",
"code": "jiangbban",
"name": "浆斑",
"color": "Red"
},
{
"id": 1,
"code": "wy",
"code": "wuyin",
"name": "污印",
"color": "Lime"
},
{
"id": 2,
"code": "mj",
"code": "mianjie",
"name": "棉结",
"color": "DarkViolet"
},
{
"id": 3,
"code": "hy",
"code": "huangyin",
"name": "黄印",
"color": "Magenta"
},
{
"id": 4,
"code": "lj",
"code": "laji",
"name": "垃圾",
"color": "Orange"
},
{
"id": 5,
"code": "yss",
"code": "yisesi",
"name": "异色丝",
"color": "Brown"
},
{
"id": 6,
"code": "zy",
"code": "zhouyin",
"name": "皱印",
"color": "Olive"
},
{
"id": 7,
"code": "wc",
"code": "wenchong",
"name": "蚊虫",
"color": "PaleGreen"
},
{
"id": 8,
"code": "cs",
"code": "cashang",
"name": "擦伤",
"color": "CadetBlue"
},
{
"id": 9,
"code": "cy",
"code": "chongying",
"name": "重影",
"color": "Aqua"
},
{
"id": 10,
"code": "tcy",
"code": "tingcheyin",
"name": "停车印",
"color": "YellowGreen"
},
{
"id": 11,
"code": "jt",
"code": "jietou",
"name": "接头",
"color": "Blue"
},
{
"id": 12,
"code": "hengdang",
"name": "横档",
"color": "Blue"
},
{
"id": 13,
"code": "jiangyin",
"name": "浆印",
"color": "Blue"
}
]

View File

@ -0,0 +1,74 @@
[
{
"id": 0,
"code": "jb",
"name": "浆斑",
"color": "Red"
},
{
"id": 1,
"code": "wy",
"name": "污印",
"color": "Lime"
},
{
"id": 2,
"code": "mj",
"name": "棉结",
"color": "DarkViolet"
},
{
"id": 3,
"code": "hy",
"name": "黄印",
"color": "Magenta"
},
{
"id": 4,
"code": "lj",
"name": "垃圾",
"color": "Orange"
},
{
"id": 5,
"code": "yss",
"name": "异色丝",
"color": "Brown"
},
{
"id": 6,
"code": "zy",
"name": "皱印",
"color": "Olive"
},
{
"id": 7,
"code": "wc",
"name": "蚊虫",
"color": "PaleGreen"
},
{
"id": 8,
"code": "cs",
"name": "擦伤",
"color": "CadetBlue"
},
{
"id": 9,
"code": "cy",
"name": "重影",
"color": "Aqua"
},
{
"id": 10,
"code": "tcy",
"name": "停车印",
"color": "YellowGreen"
},
{
"id": 11,
"code": "jt",
"name": "接头",
"color": "Blue"
}
]

View File

@ -14,3 +14,33 @@ Global捕获到未处理异常System.FormatException
在 Sunny.UI.ListBoxEx.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2024-04-29 15:10:38
Global捕获到未处理异常System.ArgumentNullException
异常信息:值不能为 null。
参数名: source
异常堆栈: 在 System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
在 LeatherApp.Page.FProductInfo.loadProduct() 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\Page\FProductInfo.cs:行号 149
在 LeatherApp.Page.FProductInfo.loadProduct(String pcode, Boolean resetAll) 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\Page\FProductInfo.cs:行号 122
在 LeatherApp.Page.FProductInfo.cmbMaterial_SelectedIndexChanged(Object sender, EventArgs e) 位置 E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\LeatherApp\Page\FProductInfo.cs:行号 376
在 Sunny.UI.UIRadioButton.set_Checked(Boolean value)
在 Sunny.UI.UIRadioButton.OnClick(EventArgs e)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 Sunny.UI.UIControl.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
2024-05-07 10:44:46
Global捕获到未处理异常System.ArgumentException
异常信息:对象的类型必须是 String。
异常堆栈: 在 System.String.CompareTo(Object value)
在 System.Windows.Forms.DataGridViewRowCollection.RowComparer.CompareObjects(Object value1, Object value2, Int32 rowIndex1, Int32 rowIndex2)
在 System.Windows.Forms.DataGridViewRowCollection.RowArrayList.Pivot(Int32 left, Int32 center, Int32 right)
在 System.Windows.Forms.DataGridViewRowCollection.RowArrayList.CustomQuickSort(Int32 left, Int32 right)
在 System.Windows.Forms.DataGridViewRowCollection.Sort(IComparer customComparer, Boolean ascending)
在 System.Windows.Forms.DataGridView.SortInternal(IComparer comparer, DataGridViewColumn dataGridViewColumn, ListSortDirection direction)
在 System.Windows.Forms.DataGridView.OnColumnHeaderMouseClick(DataGridViewCellMouseEventArgs e)
在 System.Windows.Forms.DataGridView.OnMouseClick(MouseEventArgs e)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

View File

@ -79,6 +79,33 @@ namespace Models
public bool DefectPauseForUser { get; set; }//瑕疵二次确认
[SqlSugar.SugarColumn(IsJson = true, IsNullable = true)]//, ColumnDataType = StaticConfig.CodeFirst_BigString)]
public List<string> DefectPauseOption { get; set; } = new List<string>();//二次确认过滤瑕疵
/// <summary>
/// 缺陷计数长度
/// </summary>
[SugarColumn(IsNullable = true)]
public double DefectCntLength { get; set; }
/// <summary>
/// 缺陷警告
/// </summary>
[SugarColumn(IsNullable = true)]
public string WarnDefect { get; set; }
/// <summary>
/// 开启厚度检测
/// </summary>
[SugarColumn(IsNullable = true)]
public bool OpenThicknessDetection { get; set; }
/// <summary>
/// 厚度检测暂停距离m
/// </summary>
[SugarColumn(IsNullable = true)]
public int ThicknessDetectionStopDis { get; set; }
/// <summary>
/// 剩余长度提醒
/// </summary>
[SugarColumn(IsNullable = true)]
public double residueWarnningLen { get; set; }
}
/// <summary>
@ -103,6 +130,14 @@ namespace Models
//临时显示用
[SugarColumn(IsIgnore = true)]
public string Name { get; set; }
[SugarColumn(IsNullable = true)]
public string NameCode { get; set; }
[SugarColumn(IsNullable = true)]
public int DefectWarnLength { get; set; }
[SugarColumn(IsNullable = true)]
public int DefectWarnCnt { get; set; }
}
/// <summary>
/// 等级划分标准

View File

@ -139,6 +139,11 @@ namespace Models
[SugarColumn(IsIgnore = true)]
public ConcurrentDictionary<int, bool> dicPhoto_Defect { get; set; } = new ConcurrentDictionary<int, bool>();
/// <summary>
/// 单一缺陷报警位置记录,预留50
/// </summary>
[SugarColumn(IsIgnore = true)]
public int[] preWarningPhotoIndexByLabel { get; set; } = new int[50];
}
/// <summary>

View File

@ -54,6 +54,14 @@ namespace Service
.Includes(m => m.GradeLimitList)
.First(m => m.Code == code);
}
public Product GetModelNavByName(string name)
{
return base.AsSugarClient().Queryable<Product>()
//.Includes(m => m.ClassesInfo)
.Includes(m => m.QualifiedLimitList)
.Includes(m => m.GradeLimitList)
.First(m => m.Name == name);
}
public bool InsertNav(Models.Product model)
{
return base.AsSugarClient().InsertNav(model)

View File

@ -51,6 +51,7 @@ namespace Service
{
return base.AsSugarClient().Queryable<Records>()
//.Includes(m => m.ProductInfo.ToList(x => new Product() { Code = x.Code, Name = x.Name }))//,n=>n.ClassesInfo)
//.Includes(m => m.ProductInfo)
.Includes(m => m.DefectInfoList)
.First(m => m.Id == id);
}

View File

@ -124,7 +124,6 @@ E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.Diagnostics.DiagnosticSource.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\System.IO.Pipelines.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\ZstdSharp.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\ZstdNet.dll
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\BouncyCastle.Cryptography.xml
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Google.Protobuf.pdb
E:\CPL\迈沐智能项目\2023\革博士\源码\V1.0\LeatherProject\Service\bin\Debug\Google.Protobuf.xml