kingno
2025-06-17 11219b1b266c7b98dde39eb710faaa83b4a37924
src/Bro.M141_AOI1.Process/AOI1Process.cs
@@ -6,12 +6,14 @@
using Bro.M141.Process;
using Bro.UI.Model.Winform;
using HalconDotNet;
using Newtonsoft.Json;
using NPOI.POIFS.Crypt.Dsig;
using NPOI.SS.Formula.Functions;
using NPOI.XSSF.Streaming.Values;
using System.Collections.Concurrent;
using System.Net.Sockets;
using System.Text.RegularExpressions;
using static Bro.Common.Helper.EnumHelper;
using static NPOI.HSSF.Util.HSSFColor;
using static Org.BouncyCastle.Crypto.Engines.SM2Engine;
using static Org.BouncyCastle.Math.EC.ECCurve;
@@ -29,13 +31,23 @@
        AOI1Config ConfigAOI1 => Config as AOI1Config;
        public override void Open()
        {
            base.Open();
            //string configPath = @"C:\Users\30263\Desktop\666.txt";
            //string _configBackupStr = "";
            //using (StreamReader reader = new StreamReader(configPath, System.Text.Encoding.UTF8))
            //{
            //    _configBackupStr = reader.ReadToEnd();
            //}
            //ProductModel p = JsonConvert.DeserializeObject<ProductModel>(_configBackupStr, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All });
            base.Open();
        }
        [ProcessMethod("", "PositionCheck_P1", "工位1检测", InvokeType.TestInvoke)]
        public ResponseMessage PositionCheck_P1(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
@@ -54,6 +66,7 @@
            return msg;
        }
        [ProcessMethod("", "PositionCheck_P2", "工位2检测", InvokeType.TestInvoke)]
        public ResponseMessage PositionCheck_P2(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
        {
@@ -71,6 +84,7 @@
            return msg;
        }
        [ProcessMethod("", "PositionCheck_P3", "工位3检测", InvokeType.TestInvoke)]
        public ResponseMessage PositionCheck_P3(IOperationConfig config, IDevice invokeDevice, IDevice sourceDevice)
        {
@@ -87,7 +101,6 @@
            return msg;
        }
        [ProcessMethod("ImageCheck", "ReadBarcode", "读码", InvokeType.TestInvoke)]
@@ -117,14 +130,47 @@
                    }
                    else
                    {
                        ret.Add(1);
                        if (barcode.Split('-').Length > 5)
                        {
                            int mh = Plc1.Read(4000, 1, out _)[0];
                            string codestr = barcode.Split('-')[4];
                            if (codestr == "L")
                            {
                                codestr = "10";
                            }
                            if (codestr.Equals(mh.ToString()))
                            {
                                ret.Add(1);
                            }
                            else
                            {
                                ret.Add(2);
                                Plc1.WriteSingleAddress(4010, 1, out _);//给plc报警
                            }
                        }
                        else
                        {
                            ret.Add(999);
                        }
                    }
                    FillSpecResults(results[0].PID, results[0].Specs, ret, opConfig.Products[0].SEQUENCE);
                    opConfig.Products[0].SN = barcode;
                    opConfig.Products[0].Details.ForEach(u => u.SN = barcode);
                    opConfig.Products[0].PID = barcode + "_1";
                    opConfig.Products[0].Details.ForEach(u =>
                    {
                        u.SN = barcode;
                        u.PID = barcode + "_1";
                        u.ResultList.ForEach(x =>
                    {
                        x.PID = barcode + "_1";
                    });
                    });
                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"产品{opConfig.Products[0].PID}条码获取为{barcode}");
                }
@@ -160,7 +206,6 @@
        }
        private string BarcodeScannerCommunicate(TcpClientWrapBase client)
        {
            string barcode = "";
@@ -191,6 +236,7 @@
            return "NOREAD";
        }
        private bool CheckBarcodeValid(string barcode)
        {
            bool isBarcodeValid = true;
@@ -200,10 +246,6 @@
            }
            return isBarcodeValid;
        }
        [ProcessMethod("ImageCheck", "CheckLineProfile", "检测产品线轮廓度", InvokeType.TestInvoke)]
@@ -347,19 +389,6 @@
            return msg;
        }
    }
}