| | |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | using System.IO; |
| | | using Bro.Common; |
| | | using Bro.Common.Util; |
| | | |
| | | namespace P066.Data |
| | | { |
| | |
| | | { |
| | | DirectoryInfo directoryInfo1; |
| | | DirectoryInfo directoryInfo2; |
| | | private P066RunParam runparam = new P066RunParam(); |
| | | |
| | | |
| | | public Form1() |
| | | { |
| | | InitializeComponent(); |
| | | //ConfigHelper.Save(@"D:\P066-Data\P066XML\1.xml", runparam); |
| | | runparam = ConfigHelper.Load<P066RunParam>(@"D:\P066-Data\P066XML\Jin_Mid.xml"); |
| | | |
| | | |
| | | } |
| | | |
| | | private void btnLoadData1_Click(object sender, EventArgs e) |
| | |
| | | JudgeListSum.AddRange(judgeList); |
| | | |
| | | } |
| | | judgeList = GetLocation(judgeList); |
| | | //给镜头区分位置及角度 |
| | | list = GetLocation(list); |
| | | |
| | | string currPath = ""; |
| | | #region//判断是初检文件夹还是复检文件夹 |
| | | if (fileinfos1[i].Name.Contains("初检中框")) |
| | |
| | | ChuNum++; |
| | | filenameDir = "初检中框白点"; |
| | | filename = "初检中框白点" + ChuNum; |
| | | judgeList = GetMidLocation(judgeList); |
| | | //给镜头区分位置及角度 |
| | | list = GetMidLocation(list); |
| | | } |
| | | else if (fileinfos1[i].Name.Contains("复检中框")&& fileinfos1[i].Name.Contains("白点")) |
| | | { |
| | | FuNum=FuNum+1; |
| | | filenameDir = "复检中框白点"; |
| | | filename = "复检中框白点" + FuNum; |
| | | judgeList = GetMidLocation(judgeList); |
| | | //给镜头区分位置及角度 |
| | | list = GetMidLocation(list); |
| | | } |
| | | else if ( fileinfos1[i].Name.Contains("复检中框") &&fileinfos1[i].Name.Contains("刮白")) |
| | | { |
| | | GuaNum=GuaNum+1; |
| | | filenameDir = "复检中框刮白"; |
| | | filename = "复检中框刮白" + GuaNum; |
| | | judgeList = GetMidLocation(judgeList); |
| | | //给镜头区分位置及角度 |
| | | list = GetMidLocation(list); |
| | | } |
| | | else if (fileinfos1[i].Name.Contains("初检背板")) |
| | | { |
| | | ChuNum++; |
| | | filenameDir = "初检背板白点"; |
| | | filename = "初检背板白点" + ChuNum; |
| | | judgeList = GetBkLocation(judgeList); |
| | | //给镜头区分位置及角度 |
| | | list = GetBkLocation(list); |
| | | } |
| | | else if (fileinfos1[i].Name.Contains("复检背板") && fileinfos1[i].Name.Contains("白点")) |
| | | { |
| | | FuNum = FuNum + 1; |
| | | filenameDir = "复检背板白点"; |
| | | filename = "复检背板白点" + FuNum; |
| | | judgeList = GetBkLocation(judgeList); |
| | | //给镜头区分位置及角度 |
| | | list = GetBkLocation(list); |
| | | } |
| | | |
| | | currPath = directoryInfo1.Parent.Parent.FullName; |
| | |
| | | return dataList; |
| | | } |
| | | |
| | | |
| | | private List<ResultData> GetLocation(List<ResultData> list) |
| | | //获取中框角度和位置 |
| | | private List<ResultData> GetMidLocation(List<ResultData> list) |
| | | { |
| | | var group = list.GroupBy(a => a.TimeTip); |
| | | foreach (var item in group) |
| | |
| | | listLensnumber1[k].angle = lenAngle; |
| | | |
| | | var distance = GetDistance(1050, 1050, listLensnumber1[k].X, listLensnumber1[k].Y); |
| | | if (distance <= 298.022) |
| | | if (distance <= runparam.MidLens1R1) |
| | | { |
| | | listLensnumber1[k].location = "镜头"; |
| | | } |
| | | else if (298.022 < distance && distance <= 521.171) |
| | | else if (runparam.MidLens1R1 < distance && distance <= runparam.MidLens1R2) |
| | | { |
| | | listLensnumber1[k].location = "斜面"; |
| | | } |
| | |
| | | } |
| | | listLensnumber2[k].angle = lenAngle; |
| | | var distance = GetDistance(1050, 1050, listLensnumber2[k].X, listLensnumber2[k].Y); |
| | | if (distance <= 367.696) |
| | | if (distance <= runparam.MidLens2R1) |
| | | { |
| | | listLensnumber2[k].location = "镜头"; |
| | | } |
| | | else if (367.696 < distance && distance <= 653.911) |
| | | else if (runparam.MidLens2R1 < distance && distance <= runparam.MidLens2R2) |
| | | { |
| | | listLensnumber2[k].location = "斜面"; |
| | | } |
| | |
| | | } |
| | | listLensnumber3[k].angle = lenAngle; |
| | | var distance = GetDistance(1050, 1050, listLensnumber3[k].X, listLensnumber3[k].Y); |
| | | if (distance <= 339.246) |
| | | if (distance <= runparam.MidLens3R1) |
| | | { |
| | | listLensnumber3[k].location = "镜头"; |
| | | } |
| | | else if (distance < 339.246 && distance <= 520.584) |
| | | else if ( runparam.MidLens3R1< distance && distance <= runparam.MidLens3R2) |
| | | { |
| | | listLensnumber3[k].location = "斜面"; |
| | | } |
| | |
| | | } |
| | | listLensnumber4[k].angle = lenAngle; |
| | | var distance = GetDistance(1050, 1050, listLensnumber4[k].X, listLensnumber4[k].Y); |
| | | if (distance <= 104.895) |
| | | if (distance <= runparam.MidLens4R1) |
| | | { |
| | | listLensnumber4[k].location = "镜头"; |
| | | } |
| | | else if (104.895 < distance && distance <= 239.48) |
| | | else if (runparam.MidLens4R1 < distance && distance <= runparam.MidLens4R2) |
| | | { |
| | | listLensnumber4[k].location = "斜面"; |
| | | } |
| | |
| | | } |
| | | return list; |
| | | } |
| | | //获取背板角度和位置 |
| | | private List<ResultData> GetBkLocation(List<ResultData> list) |
| | | { |
| | | var group = list.GroupBy(a => a.TimeTip); |
| | | foreach (var item in group) |
| | | { |
| | | //计算镜头1缺陷位置及角度 |
| | | var listLensnumber1 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 1); |
| | | for (int k = 0; k < listLensnumber1.Count; k++) |
| | | { |
| | | var lenAngle = GetAngle(listLensnumber1[k].X, listLensnumber1[k].Y); |
| | | if (lenAngle < 0) |
| | | { |
| | | lenAngle = 360 + lenAngle; |
| | | } |
| | | listLensnumber1[k].angle = lenAngle; |
| | | |
| | | var distance = GetDistance(1050, 1050, listLensnumber1[k].X, listLensnumber1[k].Y); |
| | | if (distance <= runparam.BkLens1R1) |
| | | { |
| | | listLensnumber1[k].location = "可视区"; |
| | | } |
| | | |
| | | else |
| | | { |
| | | listLensnumber1[k].location = "非可视区"; |
| | | } |
| | | |
| | | } |
| | | //计算镜头2位置及角度 |
| | | var listLensnumber2 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 2); |
| | | for (int k = 0; k < listLensnumber2.Count; k++) |
| | | { |
| | | var lenAngle = GetAngle(listLensnumber2[k].X, listLensnumber2[k].Y); |
| | | if (lenAngle < 0) |
| | | { |
| | | lenAngle = 360 + lenAngle; |
| | | } |
| | | listLensnumber2[k].angle = lenAngle; |
| | | var distance = GetDistance(1050, 1050, listLensnumber2[k].X, listLensnumber2[k].Y); |
| | | if (distance <= runparam.BkLens2R1) |
| | | { |
| | | listLensnumber2[k].location = "可视区"; |
| | | } |
| | | else |
| | | { |
| | | listLensnumber2[k].location = "非可视区"; |
| | | } |
| | | } |
| | | //计算镜头3位置及角度 |
| | | var listLensnumber3 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 3); |
| | | for (int k = 0; k < listLensnumber3.Count; k++) |
| | | { |
| | | var lenAngle = GetAngle(listLensnumber3[k].X, listLensnumber3[k].Y); |
| | | if (lenAngle < 0) |
| | | { |
| | | lenAngle = 360 + lenAngle; |
| | | } |
| | | listLensnumber3[k].angle = lenAngle; |
| | | var distance = GetDistance(1050, 1050, listLensnumber3[k].X, listLensnumber3[k].Y); |
| | | if (distance <= runparam.BkLens3R1) |
| | | { |
| | | listLensnumber3[k].location = "可视区"; |
| | | } |
| | | |
| | | else |
| | | { |
| | | listLensnumber3[k].location = "非可视区"; |
| | | } |
| | | } |
| | | //计算镜头4位置及角度 |
| | | var listLensnumber4 = list.FindAll(a => a.TimeTip == item.Key && a.Lensnumber == 4); |
| | | for (int k = 0; k < listLensnumber4.Count; k++) |
| | | { |
| | | var lenAngle = GetAngle(listLensnumber4[k].X, listLensnumber4[k].Y); |
| | | if (lenAngle < 0) |
| | | { |
| | | lenAngle = 360 + lenAngle; |
| | | } |
| | | listLensnumber4[k].angle = lenAngle; |
| | | var distance = GetDistance(1050, 1050, listLensnumber4[k].X, listLensnumber4[k].Y); |
| | | if (distance <= runparam.BkLens4R1) |
| | | { |
| | | listLensnumber4[k].location = "可视区"; |
| | | } |
| | | else |
| | | { |
| | | listLensnumber4[k].location = "非可视区"; |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | private void WriteJR(List<ResultData> Lens,string item,int LensNumb, string file12) |
| | | { |