From 1bc2df66bc88a6405df345dccc24a5031e18b592 Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期一, 21 十二月 2020 09:54:48 +0800
Subject: [PATCH] 1. gocator添加byte2/byte4的配置,目前测试byte4不成功,暂时还是使用byte2配置。 2. 添加键名代码映射配置和NG键名代码上传功能

---
 src/Bro.M071.Process/M071Process.cs |  218 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 143 insertions(+), 75 deletions(-)

diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs
index 1de633a..47498b8 100644
--- a/src/Bro.M071.Process/M071Process.cs
+++ b/src/Bro.M071.Process/M071Process.cs
@@ -2,7 +2,7 @@
 using Bro.Common.Helper;
 using Bro.Common.Interface;
 using Bro.Common.Model;
-using Bro.M071.DBManager;
+//using Bro.M071.DBManager;
 using Bro.M071.Model;
 using Bro.M071.Model.Model;
 using Bro.M071.Process.UI;
@@ -361,6 +361,74 @@
 
             return new ProcessResponse();
         }
+
+        [ProcessMethod("Demostration", "CheckBasePlan", "鍩哄噯骞抽潰妫�鏍�", InvokeType.TestInvoke)]
+        public ProcessResponse CheckBasePlan(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice)
+        {
+            if (opConfig is DemostrationOperationConfig config)
+            {
+                config.DemoOperations.ForEach(d =>
+                {
+                    IDevice device = DeviceCollection.FirstOrDefault(u => u.Id == d.MotionOp.Device);
+                    if (device != null)
+                    {
+                        IMotionCard motionDevice = device as IMotionCard;
+
+                        if (motionDevice != null)
+                        {
+                            var response = motionDevice.Run(d.MotionOp.OpConfig);
+                            if (!response.Result)
+                            {
+                                throw new ProcessException($"{device.Name}寮傚父锛寋response.Message}", null, ExceptionLevel.Fatal);
+                            }
+                        }
+                    }
+
+                    CameraBase camera = DeviceCollection.FirstOrDefault(u => u.Id == d.CameraOp.Device) as CameraBase;
+                    if (camera != null)
+                    {
+                        IImageSet set = null;
+                        try
+                        {
+                            set = CollectHImage(camera, d.CameraOp.OpConfig);
+                        }
+                        catch (ProcessException pEx)
+                        {
+                            pEx.Level = ExceptionLevel.Fatal;
+                            throw pEx;
+                        }
+
+                        if (set != null)
+                        {
+                            LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(set.ImageData);
+                            LogAsync(DateTime.Now, $"鎵弿鍙傛暟:{set.ImageData}", "");
+
+                            var tool = GetHalconTool(d.CameraOp.OpConfig, config.MonitorSetId);
+                            if (tool != null)
+                            {
+                                using (tool.InputImageDic["INPUT_Image"] = set.HImage)
+                                {
+                                    tool.InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z / 1000000.0;
+
+                                    if (!tool.RunProcedure(out string error))
+                                    {
+                                        LogAsync(DateTime.Now, $"{tool.ProcedureName}鎵ц寮傚父", error);
+                                    }
+                                    else
+                                    {
+                                        var diffX = tool.GetResultTuple("OUTPUT_Result_X").D;
+                                        var diffY = tool.GetResultTuple("OUTPUT_Result_Y").D;
+                                        LogAsync(DateTime.Now, $"妫�娴嬪钩闈紝X鏂瑰悜鏋佸樊锛歿diffX.ToString(_precision)}锛孻鏂瑰悜鏋佸樊锛歿diffY.ToString(_precision)}", "");
+                                    }
+                                }
+                            }
+                        }
+                    }
+                });
+            }
+
+            return new ProcessResponse();
+        }
         #endregion
 
         #region 绉佹湁鏂规硶
@@ -500,44 +568,44 @@
             }
         }
 
-        KeyUnitDataManager keyUnitDataManager = new KeyUnitDataManager();
-        MeasurementUnitResultManager measurementUnitResultManager = new MeasurementUnitResultManager();
-        MeasurementAndKeyDataRelationManager measurementAndKeyDataRelationManager = new MeasurementAndKeyDataRelationManager();
-        ProductionMeasurementRecordsManager productionMeasurementRecordsManager = new ProductionMeasurementRecordsManager();
+        //KeyUnitDataManager keyUnitDataManager = new KeyUnitDataManager();
+        //MeasurementUnitResultManager measurementUnitResultManager = new MeasurementUnitResultManager();
+        //MeasurementAndKeyDataRelationManager measurementAndKeyDataRelationManager = new MeasurementAndKeyDataRelationManager();
+        //ProductionMeasurementRecordsManager productionMeasurementRecordsManager = new ProductionMeasurementRecordsManager();
 
         static object dataSaveLock = new object();
 
-        private async void SaveProductionData(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet)
-        {
-            await Task.Run(() =>
-            {
-                try
-                {
-                    lock (dataSaveLock)
-                    {
-                        // 鑾峰彇 浜у搧鏁版嵁 骞朵繚瀛�
-                        var productionMeasurementRecords = measurementUnitResultAndKeyUnitDataSet.ProductionMeasurementRecord;
-                        productionMeasurementRecordsManager.CreateModel(productionMeasurementRecords);
+        //private async void SaveProductionData(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet)
+        //{
+        //    await Task.Run(() =>
+        //    {
+        //        try
+        //        {
+        //            lock (dataSaveLock)
+        //            {
+        //                // 鑾峰彇 浜у搧鏁版嵁 骞朵繚瀛�
+        //                var productionMeasurementRecords = measurementUnitResultAndKeyUnitDataSet.ProductionMeasurementRecord;
+        //                productionMeasurementRecordsManager.CreateModel(productionMeasurementRecords);
 
-                        // 鑾峰彇 鍘熷鏁版嵁 骞朵繚瀛�
-                        var keyUnitDatas = measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList;
-                        keyUnitDataManager.BatchAddKeyUnitData(keyUnitDatas);
+        //                // 鑾峰彇 鍘熷鏁版嵁 骞朵繚瀛�
+        //                var keyUnitDatas = measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList;
+        //                keyUnitDataManager.BatchAddKeyUnitData(keyUnitDatas);
 
-                        // 鑾峰彇 妫�娴嬬粨鏋滄暟鎹� 骞朵繚瀛�
-                        var measurementUnitResults = measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList;
-                        measurementUnitResultManager.BatchAddMeasurementUnitResult(measurementUnitResults);
+        //                // 鑾峰彇 妫�娴嬬粨鏋滄暟鎹� 骞朵繚瀛�
+        //                var measurementUnitResults = measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList;
+        //                measurementUnitResultManager.BatchAddMeasurementUnitResult(measurementUnitResults);
 
-                        // 鑾峰彇 鍏崇郴鏁版嵁骞朵繚瀛�
-                        var measurementAndKeyDataRelationList = measurementUnitResultAndKeyUnitDataSet.MeasurementAndKeyDataRelationList;
-                        measurementAndKeyDataRelationManager.BatchAddMeasurementAndKeyDataRelation(measurementAndKeyDataRelationList);
-                    }
-                }
-                catch (Exception ex)
-                {
-                    LogAsync(DateTime.Now, "鏁版嵁淇濆瓨寮傚父", ex.GetExceptionMessage());
-                }
-            });
-        }
+        //                // 鑾峰彇 鍏崇郴鏁版嵁骞朵繚瀛�
+        //                var measurementAndKeyDataRelationList = measurementUnitResultAndKeyUnitDataSet.MeasurementAndKeyDataRelationList;
+        //                measurementAndKeyDataRelationManager.BatchAddMeasurementAndKeyDataRelation(measurementAndKeyDataRelationList);
+        //            }
+        //        }
+        //        catch (Exception ex)
+        //        {
+        //            LogAsync(DateTime.Now, "鏁版嵁淇濆瓨寮傚父", ex.GetExceptionMessage());
+        //        }
+        //    });
+        //}
 
         private ProductionMeasurementUnitResultAndKeyUnitDataSet GetMeasurementUnitResultAndKeyUnitData(ProductionMeasurement pData)
         {
@@ -620,49 +688,49 @@
             return measurementUnitResultAndKeyUnitDataSet;
         }
 
-        private async void ExportProductionExcel(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet)
-        {
-            if (!Config.IsCSVOutputEnabled)
-                return;
+        //private async void ExportProductionExcel(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet)
+        //{
+        //    if (!Config.IsCSVOutputEnabled)
+        //        return;
 
-            await Task.Run(() =>
-            {
-                ExcelExportSet excelExportDto = new ExcelExportSet();
-                excelExportDto.Worksheets = new List<string>() { "鍘熷鏁版嵁", "妫�娴嬬粨鏋�" };
-                var keyUnitColumns = new Dictionary<string, string>()
-                {
-                    {"ProductionBarcode", "浜у搧鏉$爜"},
-                    {"Key", "閿�"},
-                    {"MeasurementItem", "妫�娴嬮」"},
-                    {"ItemValue", "妫�娴嬪��"}
-                };
-                var measurementUnitResultColumns = new Dictionary<string, string>()
-                {
-                    {"ProductionBarcode", "浜у搧鏉$爜"},
-                    {"MeasurementName", "妫�娴嬪悕绉�"},
-                    {"MeasurementType", "妫�娴嬬被鍨�"},
-                    {"MeasurementValue", "妫�娴嬪��"},
-                    {"MeasurementResult", "妫�娴嬬粨鏋�"},
-                };
-                excelExportDto.WorksheetColumns[excelExportDto.Worksheets[0]] = keyUnitColumns;
-                excelExportDto.WorksheetColumns[excelExportDto.Worksheets[1]] = measurementUnitResultColumns;
+        //    await Task.Run(() =>
+        //    {
+        //        ExcelExportSet excelExportDto = new ExcelExportSet();
+        //        excelExportDto.Worksheets = new List<string>() { "鍘熷鏁版嵁", "妫�娴嬬粨鏋�" };
+        //        var keyUnitColumns = new Dictionary<string, string>()
+        //        {
+        //            {"ProductionBarcode", "浜у搧鏉$爜"},
+        //            {"Key", "閿�"},
+        //            {"MeasurementItem", "妫�娴嬮」"},
+        //            {"ItemValue", "妫�娴嬪��"}
+        //        };
+        //        var measurementUnitResultColumns = new Dictionary<string, string>()
+        //        {
+        //            {"ProductionBarcode", "浜у搧鏉$爜"},
+        //            {"MeasurementName", "妫�娴嬪悕绉�"},
+        //            {"MeasurementType", "妫�娴嬬被鍨�"},
+        //            {"MeasurementValue", "妫�娴嬪��"},
+        //            {"MeasurementResult", "妫�娴嬬粨鏋�"},
+        //        };
+        //        excelExportDto.WorksheetColumns[excelExportDto.Worksheets[0]] = keyUnitColumns;
+        //        excelExportDto.WorksheetColumns[excelExportDto.Worksheets[1]] = measurementUnitResultColumns;
 
-                excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[0]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList, keyUnitColumns);
-                excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList, measurementUnitResultColumns); ;
+        //        excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[0]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList, keyUnitColumns);
+        //        excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList, measurementUnitResultColumns); ;
 
-                if (!Directory.Exists(Config.LogPath))
-                {
-                    Directory.CreateDirectory(Config.LogPath);
-                }
-                var fileName = Path.Combine(Config.LogPath, $"ProductionData_{DateTime.Now.ToString("yyyyMMdd")}.xlsx");
+        //        if (!Directory.Exists(Config.LogPath))
+        //        {
+        //            Directory.CreateDirectory(Config.LogPath);
+        //        }
+        //        var fileName = Path.Combine(Config.LogPath, $"ProductionData_{DateTime.Now.ToString("yyyyMMdd")}.xlsx");
 
-                byte[] filecontent = ExcelExportHelper.CreateOrAppendExcel(excelExportDto, fileName);
-                FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
-                fs.Write(filecontent, 0, filecontent.Length);
-                fs.Flush();
-                fs.Close();
-            });
-        }
+        //        byte[] filecontent = ExcelExportHelper.CreateOrAppendExcel(excelExportDto, fileName);
+        //        FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
+        //        fs.Write(filecontent, 0, filecontent.Length);
+        //        fs.Flush();
+        //        fs.Close();
+        //    });
+        //}
 
         static object excelExportLock = new object();
         private async void ExportProductionInColumns(ProductionMeasurementUnitResultAndKeyUnitDataSet exportData)
@@ -815,7 +883,7 @@
                         #endregion
 
                         #region Slant
-                        var slantMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType == "Slant").ToList();
+                        var slantMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType.StartsWith("Slant")).ToList();
                         if (slantMeasures.Count > 0)
                         {
                             int slantStartCol = slantSheet.Dimension.Columns;
@@ -854,7 +922,7 @@
 
                         #region Alignment
                         {
-                            var alignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType == "Alignment").ToList();
+                            var alignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType.StartsWith("Alignment")).ToList();
                             if (alignmentMeasures.Count > 0)
                             {
                                 List<string> keysList = new List<string>();
@@ -913,7 +981,7 @@
 
                         #region RowAlignment
                         {
-                            var rowAlignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType == "RowAlignment").ToList();
+                            var rowAlignmentMeasures = exportData.MeasurementUnitResultList.Where(u => u.MeasurementType.StartsWith("RowAlignment")).ToList();
                             if (rowAlignmentMeasures.Count > 0)
                             {
                                 List<string> keysList = new List<string>();

--
Gitblit v1.8.0