| | |
| | | else |
| | | { |
| | | m.Spec.ActualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString("f2")); |
| | | LogAsync(DateTime.Now, $"{m.GetDisplayText()}数据{m.Spec.ActualValue},结果{(m.Spec.MeasureResult == null ? "TBD" : (m.Spec.MeasureResult == true ? "OK" : "NG"))}", ""); |
| | | //LogAsync(DateTime.Now, $"{m.GetDisplayText()}数据{m.Spec.ActualValue},结果{(m.Spec.MeasureResult == null ? "TBD" : (m.Spec.MeasureResult == true ? "OK" : "NG"))}", ""); |
| | | } |
| | | } |
| | | } |
| | | |
| | | LogAsync(DateTime.Now, $"{m.GetDisplayText()}检测结果", $"{((m.Spec.MeasureResult ?? false) ? "OK" : "NG")}"); |
| | | //LogAsync(DateTime.Now, $"{m.GetDisplayText()}检测结果", $"{((m.Spec.MeasureResult ?? false) ? "OK" : "NG")}"); |
| | | |
| | | KeyIndicator indicator = new KeyIndicator(m.Id, m.DisplayLocation); |
| | | indicator.Text = (m.Spec.ActualValue == null || m.Spec.ActualValue == -999) ? "NA" : m.Spec.ActualValue.Value.ToString("f2"); |
| | |
| | | { |
| | | int slantStartCol = slantSheet.Dimension.Columns; |
| | | |
| | | var barcodeCell = slantSheet.Cells[1, slantStartCol + 1, 1, slantStartCol + 2]; |
| | | barcodeCell.Merge = true; |
| | | //var barcodeCell = slantSheet.Cells[1, slantStartCol + 1, 1, slantStartCol + 2]; |
| | | //barcodeCell.Merge = true; |
| | | //barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; |
| | | //SetTitleCell(barcodeCell); |
| | | |
| | | var barcodeCell = slantSheet.Cells[1, slantStartCol + 1]; |
| | | barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; |
| | | SetTitleCell(barcodeCell); |
| | | |
| | |
| | | valueCell.Value = "Value"; |
| | | SetTitleCell(valueCell); |
| | | |
| | | var resultCell = slantSheet.Cells[2, slantStartCol + 2]; |
| | | resultCell.Value = "Result"; |
| | | SetTitleCell(resultCell); |
| | | //var resultCell = slantSheet.Cells[2, slantStartCol + 2]; |
| | | //resultCell.Value = "Result"; |
| | | //SetTitleCell(resultCell); |
| | | |
| | | slantMeasures.ForEach(m => |
| | | { |
| | |
| | | } |
| | | |
| | | var cellValue = slantSheet.Cells[rowIndex + 1 + 2, slantStartCol + 1]; |
| | | var cellResult = slantSheet.Cells[rowIndex + 1 + 2, slantStartCol + 2]; |
| | | //var cellResult = slantSheet.Cells[rowIndex + 1 + 2, slantStartCol + 2]; |
| | | |
| | | cellValue.Value = m.MeasurementValue; |
| | | cellResult.Value = m.MeasurementResult; |
| | | //cellResult.Value = m.MeasurementResult; |
| | | |
| | | if (m.MeasurementResult != "OK") |
| | | { |
| | | SetNGCell(cellValue); |
| | | SetNGCell(cellResult); |
| | | //SetNGCell(cellResult); |
| | | } |
| | | }); |
| | | } |
| | |
| | | int allRowNums = alignmentSheet.Dimension.Rows; |
| | | int aligneStartCol = alignmentSheet.Dimension.Columns; |
| | | |
| | | for (int i = 3; i <= allRowNums; i++) |
| | | for (int i = 3; i <= alignmentSheet.Dimension.End.Row; i++) |
| | | { |
| | | string keys = alignmentSheet.Cells[i, 1].Value.ToString(); |
| | | string position = alignmentSheet.Cells[i, 2].Value.ToString(); |
| | |
| | | keysList.Add($"{keys}_{position}"); |
| | | } |
| | | |
| | | var barcodeCell = alignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; |
| | | barcodeCell.Merge = true; |
| | | //var barcodeCell = alignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; |
| | | //barcodeCell.Merge = true; |
| | | //barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; |
| | | //SetTitleCell(barcodeCell); |
| | | |
| | | var barcodeCell = alignmentSheet.Cells[1, aligneStartCol + 1]; |
| | | barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; |
| | | SetTitleCell(barcodeCell); |
| | | |
| | |
| | | valueCell.Value = "Value"; |
| | | SetTitleCell(valueCell); |
| | | |
| | | var resultCell = alignmentSheet.Cells[2, aligneStartCol + 2]; |
| | | resultCell.Value = "Result"; |
| | | SetTitleCell(resultCell); |
| | | //var resultCell = alignmentSheet.Cells[2, aligneStartCol + 2]; |
| | | //resultCell.Value = "Result"; |
| | | //SetTitleCell(resultCell); |
| | | |
| | | alignmentMeasures.ForEach(a => |
| | | { |
| | |
| | | } |
| | | |
| | | var cellValue = alignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 1]; |
| | | var cellResult = alignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; |
| | | //var cellResult = alignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; |
| | | |
| | | cellValue.Value = a.MeasurementValue; |
| | | cellResult.Value = a.MeasurementResult; |
| | | //cellResult.Value = a.MeasurementResult; |
| | | |
| | | if (a.MeasurementResult != "OK") |
| | | { |
| | | SetNGCell(cellValue); |
| | | SetNGCell(cellResult); |
| | | //SetNGCell(cellResult); |
| | | } |
| | | }); |
| | | } |
| | |
| | | keysList.Add($"{keys}_{position}"); |
| | | } |
| | | |
| | | var barcodeCell = rowAlignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; |
| | | barcodeCell.Merge = true; |
| | | //var barcodeCell = rowAlignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; |
| | | //barcodeCell.Merge = true; |
| | | //barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; |
| | | //SetTitleCell(barcodeCell); |
| | | |
| | | var barcodeCell = rowAlignmentSheet.Cells[1, aligneStartCol + 1]; |
| | | barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; |
| | | SetTitleCell(barcodeCell); |
| | | |
| | |
| | | valueCell.Value = "Value"; |
| | | SetTitleCell(valueCell); |
| | | |
| | | var resultCell = rowAlignmentSheet.Cells[2, aligneStartCol + 2]; |
| | | resultCell.Value = "Result"; |
| | | SetTitleCell(resultCell); |
| | | //var resultCell = rowAlignmentSheet.Cells[2, aligneStartCol + 2]; |
| | | //resultCell.Value = "Result"; |
| | | //SetTitleCell(resultCell); |
| | | |
| | | rowAlignmentMeasures.ForEach(a => |
| | | { |
| | |
| | | } |
| | | |
| | | var cellValue = rowAlignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 1]; |
| | | var cellResult = rowAlignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; |
| | | //var cellResult = rowAlignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; |
| | | |
| | | cellValue.Value = a.MeasurementValue; |
| | | cellResult.Value = a.MeasurementResult; |
| | | //cellResult.Value = a.MeasurementResult; |
| | | |
| | | if (a.MeasurementResult != "OK") |
| | | { |
| | | SetNGCell(cellValue); |
| | | SetNGCell(cellResult); |
| | | //SetNGCell(cellResult); |
| | | } |
| | | }); |
| | | } |
| | |
| | | |
| | | private void SetNGCell(ExcelRange cell) |
| | | { |
| | | cell.Style.Font.Color.SetColor(Color.White); |
| | | cell.Style.Font.Color.SetColor(Color.Red); |
| | | cell.Style.Font.Bold = true; |
| | | cell.Style.Fill.PatternType = ExcelFillStyle.Solid; |
| | | cell.Style.Fill.BackgroundColor.SetColor(Color.Red); |
| | | //cell.Style.Fill.PatternType = ExcelFillStyle.Solid; |
| | | //cell.Style.Fill.BackgroundColor.SetColor(Color.Red); |
| | | } |
| | | |
| | | private void SetTitleCell(ExcelRange cell, bool isCenterAlign = true) |
| | |
| | | var keyBindCollection = measureList.SelectMany(u => u.KeyUnitCollection).Where(u => keys.Any(k => k.Key == u.Key)).ToList(); |
| | | |
| | | string toolKey = (opConfig as CameraOprerationConfigBase).AlgorithemPath; |
| | | HObject images = imgSet.HImage; |
| | | //HObject images = imgSet.HImage; |
| | | |
| | | HObject images = new HObject(); |
| | | LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(imgSet.ImageData); |
| | | LogAsync(DateTime.Now, $"扫描参数:{imgSet.ImageData}", ""); |
| | | |
| | |
| | | return; |
| | | } |
| | | |
| | | string fileName = Path.Combine(Config.ImageSaveFolder, "BeforeRun", $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.tif"); |
| | | imgSet.HImage.WriteImage("tiff", 0, fileName); |
| | | //string fileName = Path.Combine(Config.ImageSaveFolder, "BeforeRun", $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.tif"); |
| | | //imgSet.HImage.WriteImage("tiff", 0, fileName); |
| | | |
| | | _halconToolDict[toolKey].InputImageDic["INPUT_Image"] = imgSet.HImage; |
| | | if (!_halconToolDict[toolKey].RunProcedure(out string error)) |
| | |
| | | }); |
| | | } |
| | | |
| | | string dir = Path.Combine(Config.ImageSaveFolder, "Clips", $"{DateTime.Now.ToString("yyyyMMdd")}", $"{snapshotName}_{DateTime.Now.ToString("HHmmss")}"); |
| | | if (!Directory.Exists(dir)) |
| | | { |
| | | Directory.CreateDirectory(dir); |
| | | } |
| | | //string dir = Path.Combine(Config.ImageSaveFolder, "Clips", $"{DateTime.Now.ToString("yyyyMMdd")}", $"{snapshotName}_{DateTime.Now.ToString("HHmmss")}"); |
| | | //if (!Directory.Exists(dir)) |
| | | //{ |
| | | // Directory.CreateDirectory(dir); |
| | | //} |
| | | |
| | | //Parallel.For(1, count.I + 1, (i) => |
| | | for (int i = 1; i <= count.I; i++) |
| | | { |
| | | HOperatorSet.SelectObj(images, out HObject image, i); |
| | | |
| | | string fileName = Path.Combine(dir, $"{i}.tif"); |
| | | using (HImage temp = image.ConvertHObjectToHImage()) |
| | | { |
| | | temp.WriteImage("tiff", 0, fileName); |
| | | } |
| | | //string fileName = Path.Combine(dir, $"{i}.tif"); |
| | | //using (HImage temp = image.ConvertHObjectToHImage()) |
| | | //{ |
| | | // temp.WriteImage("tiff", 0, fileName); |
| | | //} |
| | | |
| | | keys.Where(u => u.ImageSeq == i).ToList().ForEach(k => |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | //results = results.Select(u => double.Parse(u.ToString("f2"))).ToList(); |
| | | LogAsync(DateTime.Now, $"{k.AliasName}原始数据", $"{string.Join(" ", results)}"); |
| | | //LogAsync(DateTime.Now, $"{k.AliasName}原始数据", $"{string.Join(" ", results)}"); |
| | | |
| | | results = results.Select(u => u - Config.PlanCompensation).ToList(); |
| | | resultDict = k.KeyResultList.ToDictionary(u => u, u => |
| | | { |
| | | int index = k.KeyResultList.IndexOf(u); |
| | |
| | | } |
| | | //); |
| | | |
| | | images.Dispose(); |
| | | //if (count.I != 1) |
| | | //{ |
| | | // hImage?.Dispose(); |