版本-v1.2.4 修复小图保存bug

This commit is contained in:
CPL 2024-04-03 15:05:34 +08:00
parent 0b61e83da6
commit a021342910
4 changed files with 82 additions and 53 deletions

View File

@ -207,6 +207,7 @@ namespace ProductionControl
xb,//斜边
gsdl,//栅线 改为钢丝断裂
ds,//断栅
sx,
}
public enum DefectNameEnum
{
@ -221,7 +222,8 @@ namespace ProductionControl
线,
,
, //栅线,
,
线
}
public enum ValType
{

View File

@ -548,7 +548,6 @@
//
// tsbtnStart
//
this.tsbtnStart.Enabled = false;
this.tsbtnStart.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnStart.Image")));
this.tsbtnStart.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnStart.ImageTransparentColor = System.Drawing.Color.Magenta;
@ -1552,7 +1551,7 @@
this.splitContainer2.Panel2.Controls.Add(this.gboxDefectList);
this.splitContainer2.Panel2MinSize = 400;
this.splitContainer2.Size = new System.Drawing.Size(463, 523);
this.splitContainer2.SplitterDistance = 31;
this.splitContainer2.SplitterDistance = 32;
this.splitContainer2.SplitterWidth = 3;
this.splitContainer2.TabIndex = 10;
//
@ -1572,7 +1571,7 @@
// splitContainer3.Panel2
//
this.splitContainer3.Panel2.Controls.Add(this.picScanner2);
this.splitContainer3.Size = new System.Drawing.Size(31, 523);
this.splitContainer3.Size = new System.Drawing.Size(32, 523);
this.splitContainer3.SplitterDistance = 226;
this.splitContainer3.SplitterWidth = 3;
this.splitContainer3.TabIndex = 11;
@ -1586,7 +1585,7 @@
this.picScanner1.Location = new System.Drawing.Point(0, 0);
this.picScanner1.Margin = new System.Windows.Forms.Padding(2);
this.picScanner1.Name = "picScanner1";
this.picScanner1.Size = new System.Drawing.Size(31, 226);
this.picScanner1.Size = new System.Drawing.Size(32, 226);
this.picScanner1.TabIndex = 7;
this.picScanner1.TabStop = false;
//
@ -1598,7 +1597,7 @@
this.picScanner2.Location = new System.Drawing.Point(0, 0);
this.picScanner2.Margin = new System.Windows.Forms.Padding(2);
this.picScanner2.Name = "picScanner2";
this.picScanner2.Size = new System.Drawing.Size(31, 294);
this.picScanner2.Size = new System.Drawing.Size(32, 294);
this.picScanner2.TabIndex = 9;
this.picScanner2.TabStop = false;
//
@ -1612,7 +1611,7 @@
this.gboxDefectList.Margin = new System.Windows.Forms.Padding(2);
this.gboxDefectList.Name = "gboxDefectList";
this.gboxDefectList.Padding = new System.Windows.Forms.Padding(2);
this.gboxDefectList.Size = new System.Drawing.Size(429, 523);
this.gboxDefectList.Size = new System.Drawing.Size(428, 523);
this.gboxDefectList.TabIndex = 3;
this.gboxDefectList.TabStop = false;
this.gboxDefectList.Tag = "0";
@ -1624,7 +1623,7 @@
this.lblDefectAddTag.AutoSize = true;
this.lblDefectAddTag.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblDefectAddTag.ForeColor = System.Drawing.Color.Blue;
this.lblDefectAddTag.Location = new System.Drawing.Point(278, 2);
this.lblDefectAddTag.Location = new System.Drawing.Point(277, 2);
this.lblDefectAddTag.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDefectAddTag.Name = "lblDefectAddTag";
this.lblDefectAddTag.Size = new System.Drawing.Size(0, 12);
@ -1639,7 +1638,7 @@
this.pnlBmpList.Location = new System.Drawing.Point(2, 16);
this.pnlBmpList.Margin = new System.Windows.Forms.Padding(2);
this.pnlBmpList.Name = "pnlBmpList";
this.pnlBmpList.Size = new System.Drawing.Size(425, 505);
this.pnlBmpList.Size = new System.Drawing.Size(424, 505);
this.pnlBmpList.TabIndex = 0;
//
// chkBuzzer

View File

@ -156,6 +156,9 @@ namespace ProductionControl
//读取硬盘剩余空间
Config.CheckDisk();
//测试
}
private void loadProductCodeList()
{
@ -373,6 +376,8 @@ namespace ProductionControl
order.StepId = (int)currProductModel.StepId;
order.SN = sn;
order.BatchId = currProductModel.BatchId;
//order.ProductInfo = model;
errStep = 9;
int nextStepId = 0;
do
@ -1366,6 +1371,8 @@ namespace ProductionControl
AddTextEvent($"{stepIndex + 1}-{processName}", $"开始缺陷检测,源图索引:{defectBmpNum},图像队列数量: {scannerGBmpQueue.Count}...");
string[] aarCut_size = processParam.Value<string>("CutSize").Split(',');
string[] aarResize = processParam.Value<string>("Resize").Split(',');
//string[] arrThresClass = processParam.Value<string>("ThresholdsClass").Split(',');
//图纸
attachmentFile = model.AttachmentList.FirstOrDefault(x => x.Type == 0);
if (attachmentFile != null)
@ -1386,7 +1393,8 @@ namespace ProductionControl
cut_size = new System.Drawing.Size(Convert.ToInt32(aarCut_size[0]), Convert.ToInt32(aarCut_size[1])),
resize = new System.Drawing.Size(Convert.ToInt32(aarResize[0]), Convert.ToInt32(aarResize[1])),
thresholds = processParam.Value<float>("Thresholds"),
thresholdsClass = processParam.Value<string>("ThresholdsClass"),
thresholdsClass = processParam.Value<string>("ThresholdsClass").Split(',').Length == 11?
processParam.Value<string>("ThresholdsClass") + ",0.3" : processParam.Value<string>("ThresholdsClass"),
recAreaThreshold= getProductAreaThreshol(model), //qxName,面积; qxName,面积; qxName,面积;
finishEvent = (res) =>
{
@ -1394,7 +1402,7 @@ namespace ProductionControl
{
setDgvContentCol(liStatocStepIndex, $"源图索引:{res.index},缺陷数:{res.defectCount},处理时间(ms):{string.Join("->", res.stopwatch.Select(i => i.ToString()).ToArray())}");
AddTextEvent($"{res.stepIndex + 1}-{res.processName}", $"缺陷检测完成(源图索引:{res.index}),缺陷数:{res.defectCount},处理时间(ms):{string.Join("->", res.stopwatch.Select(i => i.ToString()).ToArray())}");
string path;
string path = "";
if (res.defectCount > 0)
{
//UI显示小图 (含统计缺陷类型数量)
@ -1438,9 +1446,15 @@ namespace ProductionControl
//保存原始小图
if (Config.Defect_SrcSmall_SavePath != "" && Directory.Exists(Config.Defect_SrcSmall_SavePath))
{
string sinfo = "";
int sterr = 0;
try
{
for (int i = 0; i < res.defectInfor2RestorationDesk.Count(); i++)
{
sterr = 1;
sinfo = JsonConvert.SerializeObject(res.defectInfor2RestorationDesk[i]);
int indext = int.Parse(res.defectInfor2RestorationDesk[i][0]);
double thres = double.Parse(res.defectInfor2RestorationDesk[i][4]);
if (thres >= Config.Defect_SrcSmall_Thres)
@ -1448,12 +1462,18 @@ namespace ProductionControl
path = Util.createSubDir(Config.Defect_SrcSmall_SavePath,
new List<string> { order.CreateTime.ToString("yyyyMMdd"),
order.SN,
order.ProductInfo.MainGrid == 1?"主栅":order.ProductInfo.ClassesId == 7?"rj":"pi",
model.MainGrid == 1?"主栅":model.ClassesId == 7?"rj":"pi",
res.defectInfor2RestorationDesk[i][3]});
sterr = 2;
path += $"Defect_SN{order.SN}_I{res.index}_X{res.Xmm}_Y{res.Ymm}_{model.StepInfo.Name}";
res.bmps_cut[indext].ImWrite(path + $"_i{i}.bmp");
sterr = 3;
}
}
}catch (Exception ex)
{
AddTextEvent($"{res.stepIndex + 1}-{res.processName}", $"原始小图保存出错{sterr}-{sinfo}-{path}:{ex.Message}");
}
}
@ -1638,6 +1658,8 @@ namespace ProductionControl
{
int itemDefectCount;
foreach (var item in model.QualifiedCriterionList)
{
try
{
defectCode = EnumUtil.Convert2Enum<DefectCodeEnum>(item.DefectCode);
itemDefectCount = getDefectCountFromCode(order, defectCode);
@ -1646,6 +1668,10 @@ namespace ProductionControl
order.Qualified = false;
defectNames += $"{((DefectNameEnum)(int)defectCode).ToString()}({itemDefectCount}),";
}
}catch (Exception ex)
{
;
}
}
}
@ -2230,9 +2256,11 @@ namespace ProductionControl
case "xb":
order.XBCount++;
break;
case "sx":
case "gsdl"://sx =>gsdl
order.SXCount++;
break;
default:
break;
}
}
}

View File

@ -643,20 +643,20 @@
<value>
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
</value>
</data>
<data name="tsbtnDefectImage.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -665,11 +665,11 @@
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAG9SURBVFhHYxgS4F+GuvqvFGVjKJf24KW9KM+nEJnk3+kq
x/7nqf//l632H+iA/1+i5f6/DpC89MJVpOiRhQwnVDl1wbH6wmUPAjT/fwyV+Q90wH90B7wLkPr/wlX0
/0MbgRv3THjVodqoBx6Y8f1/7iRC0AFPbAT/3zfl+nzflCcQqhUveOkm2gtl4gekOOChOf9/kPpHFgIz
gdEmATUCBfzLUlb5Fiu/EeiA/1Ah/IAsB1gK/L/vwPX5pbvo3vfBUu1f4xXSfqcpN/7NUVv3PFftz7dY
gdEmATUCBfzLUlb5Fiu/EeiA/1Ah/IAsB1gK/L/vwPX5pbvo3vfBUu1f4xXSfqcpN/7NUVv3LFftz7dY
hf80d8AzB+H/rz3F/38Ilv7/LU4BrPdfrhoYjzpg1AGjDhh1wNB3wM9s1ee/UhSv0s0BT92k/l8uDfkP
LM89/tdrsUGlGP6HarG9CZAxA7YHJgMd8JMmDrgU7/Z/44o1/+es34NXwxMrfoOH5tz3qO6A9QdO/1+x
8yhBB4DAXWNB/vumvDMJOeBLrDyopoyFasMPSHEADDyyEPR4Ziv8BN0BH5LVvv3NUZ32PUZOEaqUMCDH
ATDwzkdS7l2glB/QwuRfmcrG/wrJaDdS4gCqgFEHjDpg3YFT9WAHrNtTDxUaBcMZMDAAAEpq3zdLEAiX
ATDwzkdS7l2glB/QwuRfmcrG/wrJaDdS4gCqgFEHjDpg3YFT9WAHrNtTDxUaBcMZMDAAAD2x3zbKG7iV
AAAAAElFTkSuQmCC
</value>
</data>
@ -695,15 +695,15 @@
<data name="tsbtnSizeImage.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHLSURBVFhH7dY9SAJhGMDxm4IgaG0KgqA1sg91abChIsMG
GwJz0EKDChsiatBampqCIGiOGlKiQDLNoDw5+7rkSjMuy7yMSj0xA+HqyeJtqOBE06C4/3T33vu8/IaD
O+xPFB5O1FzpWRG6LX5UM1Xm72E0tPYOZwaSEBlMwbUuAee9t3CoCHh3ZeQILsZL0fbCtmYkFvFuCjIA
CGqj8BVAKmhwyY7B1uT2W+t3a9BY4bI14uBpO80KcEgIWG/Ak3Yx0YVGeduXB2bQJX+5AN72bkk9gLeQ
85QyWIGO+FTIwFYHNdHVA3kA0BJ/+QG8QLTTyTMV4wjp49PRca4/YXqevBtNm31DN1ywLwZFB5BdNJyp
IhDSsxCb4CBhArgfTQMz9AgCQAAIAAHw9wHhwVTkWhc/+TUAIT+BnTEfZD4irZQSStAjjFJSJUcKutEl
I2cdEme6KACr2g0ry25YsNh5B5xSotZW57ooOMCyvQdLG66sgLc2RfvldikxnxWgjiUPOs5VaIy/XAAf
4TKyNfNuhL8D2KcMYO5SG69CW7OXD+AjWsVUXulinQ8TnIadAlHI8JL7f+NPAAVJAAgA87bH+A4w241o
Seg/h2GvTpv1N1uFB9AAAAAASUVORK5CYII=
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHLSURBVFhH7dY9SAJhGMBxJyEIWpuCIGiNLCuXBhssMnSw
ITAHLTSoqEGiBqulqSkIhOaoISMKIjsrKE/Ovi65zIzL/DiMSj0xA8F6uuJtqODE0sC4/3T33vu8/IaD
O1FJFBlO1gZNrATdFj+qlSr39TB62nCHMwMpiA6mIWxMwlXvLZyo/J4DOTmKN+NlaHthW7cQi3g3BRwA
AoYYfAWQKhqc8jOwN7l8mw0HtWiscNmlOLjbvTkBjhYCNhrxFNZMqNEob0dK/yy65C8fwNveHZkb8DbS
SmkCleiIT4VG2JqAPrZ2rPQDWuLvZwAPEB106lLLOEKmxExsPNufnHyeujNnbN4hJhvoi0PRAaSahktt
FEImFuITWUhOAtybM8AMPYIAEAACQACUPiAymI6GjYnzPwMQynPYH7sA7iOioDQgRo9ElIYSn6poqVNO
zjladjNFAWzqXLCy7IKFVYx3YFdG1NnrndcFB6zuHcLSljMn4K1tyVEFJiOsOQG6eOq480qLxvjLB/AR
LicV3LsR+Q5gnzjA/I0hUY225u4ngI9oLVMVNMa7HiayenYaJKGRl/z/G38DKEgCQADY9tyWd4ANs6Al
of+cSPQKNSv1NawgHXgAAAAASUVORK5CYII=
</value>
</data>
<data name="tsbtnLight.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -730,8 +730,8 @@
hSD+56M51fL5Z2xlyAfodJyTcaLd9RzkewtHdhEF7GHlB3rBESBlTn9ZbqhuHUoy5yd1CGFB5X0INOsc
4L/h+gBwY9z1HK5xfc9l/kNXwuEnFR5xPg+SPeSbaEdA2jGE5tYhtvQscppHcOj0ZaTXdCOysBEhtkr4
J9vxRUwe4CP3GVPPISY+MccdAdbY5FRj4lloBNJO9KCi8wouTs5iYoZNcO0mGvrGkXOyG1FFzdhxuP7v
CBgTz8I3wW51JwKbo/OsxsSzuBMBhQpYLAIqwBy9PQhILbNaLGHORSJw+26/EHt+arMuFBBR0PD/OL4D
z0PkL0wqc7U3HF6aAAAAAElFTkSuQmCC
CBgTz8I3wW51JwKbo/OsxsSzuBMBhQpYLAIqwBy9PQhILbNaLKHORSJw+26/EHt+arMuFBBR0PD/OL4D
z0PkL0nYc7TQrXDGAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbtnLog.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">