1
czw
9 天以前 8dfba1cab2ea59fca7b2c9cfad2da68e9f49b440
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/½çÃæÊ¼þ.cs
@@ -28,9 +28,6 @@
using GZ.DB.Repository.OIDATABASE;
using GZ.DB.IRepository.OIDATABASE;
using GZ.DB.Entity.OIDATABASE;
using GZ.Modular.Redis;
using System.Security.Cryptography;
using System.Windows.Interop;
namespace GZ.Projects.AuxAllWCS
{
    /// <summary>
@@ -53,17 +50,19 @@
            try
            {
                HttpSvcHost = new System.Net.HttpListener();
                HttpSvcHost.AuthenticationSchemes = System.Net.AuthenticationSchemes.Anonymous;
                HttpSvcHost.Prefixes.Add("http://10.221.55.116:8808/");
                HttpSvcHost.Start();
                HttpSvcHost.BeginGetContext(HttpSvcListenerCallback, null);
                //HttpSvcHost = new System.Net.HttpListener();
                //HttpSvcHost.AuthenticationSchemes = System.Net.AuthenticationSchemes.Anonymous;
                //HttpSvcHost.Prefixes.Add("http://10.221.55.117:8808/");
                //HttpSvcHost.Start();
                //HttpSvcHost.BeginGetContext(HttpSvcListenerCallback, null);
                LogHelper.Info("<<<<<<<<<<<Runnnnnnnnnnnnninggggg>>>>>>>>>>");
            }
            catch (Exception ex)
            {
                Conn.默认日志.Error(ex.ToString());
            }
            View1_Init(sender, e);
            /// <summary>
            /// ç¨‹åºç‰‡æ®µ:初始化配置
@@ -80,29 +79,9 @@
                    try
                    {
                        #region    [脚本][20250323111613779][业务逻辑.初始化配置]
                        //LogHelper.Info("1111 +" + DateTime.Now);
                        //((Type)typeof(Utils)).GetMethod("ThreadSettingInit").Invoke(new Utils(), null);
                        //LogHelper.Info("2222 +" + DateTime.Now);
                        //((Type)typeof(Utils)).GetMethod("ThreadSettingInit").Invoke(new Utils(), new object[] { });
                        //LogHelper.Info("3333 +" + DateTime.Now);
                        Action myDelegate = () => SettingInit();
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadSettingInit", new object[] { tag, myDelegate });
                        //LogHelper.Info("4444 +" + DateTime.Now);
                        //AutoThread.InvokeMethod(AutoThread.Instance, "ThreadSettingInit", null);
                        //LogHelper.Info("4444 +" + DateTime.Now);
                        //if (Tag.Global.SettingsOver == 0)
                        //{
                        //    SettingInit();
                        //    Tag.Global.SettingsOver = 1;
                        //}
                        //else if (Settings.deviceInfos.Count == 0)
                        //{
                        //    Tag.Global.SettingsOver = 0;
                        //}
                        //var _=tag.wxr1.R46_LAST;
                        //RedisHelper.Add($"维希尔抓臂1.R46_LAST", "true", out string  msg);
                        #endregion [脚本][20250323111613779][业务逻辑.初始化配置]
                    }
                    catch (Exception ex)
@@ -116,65 +95,6 @@
                }
                ExitJudgeStack.TryPop(out int exitJudgeVal);
            });
            //执行多次
            for (int iii = 0; iii < 1; iii++)
            {
                if (IsExitApp) { break; }
                try
                {
                    #region    [脚本][20250323151832119][业务逻辑.Program4]
                    //Conn.默认Redis.SetValue("西门子2.Param3","300","西门子2Queue");
                    //return;
                    if (false)
                    {
                        List<string> locs = new List<string>() { "vxr1l", "vx1r", "vxr1c1", "vxr1c2", "vxr2l", "vxr2r", "vxr2c1", "vxr2c2" };
                        List<string> sites = new List<string>() { "196365BB283162", "193841BB283149", "198756BB287300", "198767BB286133", "206987BB282931", "204460BB282975", "209405BB287057", "209377BB285899" };
                        LocRepository locservice = new LocRepository();
                        for (int i = 0; i < locs.Count; i++)
                        {
                            string loccode = locs[i];
                            string sitesss = sites[i];
                            var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);
                            if (loc == null)
                            {
                                locservice.Insert(new LocEntity
                                {
                                    S_ID = Guid.NewGuid().ToString(),
                                    S_STATE = "编辑",
                                    T_CREATE = DateTime.Now,
                                    T_MODIFY = DateTime.Now,
                                    S_DEEP = "vxr",
                                    S_LOC_CODE = loccode,
                                    S_AGV_SITE = sitesss,
                                    S_LOCK_STATE = "无",
                                    N_ROW = 1,
                                    N_COL = 1,
                                    N_AGV_CODE = 0,
                                    N_AGV_SITE_LAYER = 0,
                                    N_CAPACITY = 1,
                                    N_CURRENT_NUM = 0,
                                    S_TYPE = "",
                                });
                            }
                        }
                        // TaskProcess.CreateTask("", locs[6], locs[7], "test", 9, new List<string> { "test" }, 1, 1, 1);
                    }
                    #endregion [脚本][20250323151832119][业务逻辑.Program4]
                }
                catch (Exception ex)
                {
                    Conn.默认日志.Error(ex.ToString());
                }
                finally
                {
                    System.Threading.Thread.Sleep(3000);
                }
            }
            /// <summary>
            /// ç¨‹åºç‰‡æ®µ:捷瞬抓臂1
            /// æè¿°:
@@ -220,10 +140,8 @@
                    try
                    {
                        #region    [脚本][20250325083326611][业务逻辑.第三标段.捷瞬抓臂2]
                        //jsz2捷瞬抓臂2
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadJS2", new object[] { tag });
                        #endregion [脚本][20250325083326611][业务逻辑.第三标段.捷瞬抓臂2]
                    }
                    catch (Exception ex)
@@ -256,6 +174,24 @@
                        //   if (di.deviceType == 2 || di.deviceType == 1)
                        //   RunafterMac(di,true);
                        /// TODO  mes ä¸‹å‘。   æ”¹æˆæœºæ¢°è‡‚监控 -  ç›‘控空的还是满的 - è”动mes ä»»åŠ¡ã€‚
                        //LogHelper.Info($"设备状态:维希尔1:维希尔抓臂1.State:{Device.维希尔抓臂1.State} ");
                        //Device.维希尔抓臂1.ReadPLC("维希尔抓臂1.R50", out object value);
                        //LogHelper.Info($"设备状态:维希尔1:维希尔抓臂1.R50:{value?.ToString()} ");
                        //LogHelper.Info($"设备状态:维希尔2:维希尔抓臂2.State:{Device.维希尔抓臂2.State} ");
                        //Device.维希尔抓臂2.ReadPLC("维希尔抓臂2.R50", out value);
                        //LogHelper.Info($"设备状态:维希尔2:维希尔抓臂2.R50:{value?.ToString()} ");
                        //LogHelper.Info($"设备状态:捷瞬1:Js捷顺1.State:{Device.Js捷顺1.State} ");
                        //Device.Js捷顺1.ReadPLC("Js捷顺1.D1202", out value);
                        //LogHelper.Info($"设备状态:捷瞬1 Js捷顺1.D1202:{value?.ToString()} ");
                        //LogHelper.Info($"设备状态:捷瞬2:Js捷顺2.State:{Device.Js捷顺2.State} ");
                        //Device.Js捷顺2.ReadPLC("Js捷顺2.D1202", out value);
                        //LogHelper.Info($"设备状态:捷瞬2 Js捷顺2.D1202:{value?.ToString()} ");
                        #endregion [脚本][20250325085810885][业务逻辑.第三标段.自流转流程]
                    }
                    catch (Exception ex)
@@ -314,6 +250,7 @@
                    try
                    {
                        #region    [脚本][20250610002047005][业务逻辑.第三标段.维系尔1号.维希尔抓臂1R]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr1R", new object[] { tag });
                        #endregion [脚本][20250610002047005][业务逻辑.第三标段.维系尔1号.维希尔抓臂1R]
                    }
@@ -343,8 +280,8 @@
                    try
                    {
                        #region    [脚本][20250325083315503][业务逻辑.第三标段.维系尔2号.维希尔抓臂2L]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr2L", new object[] { tag });
                        AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr2L", new object[] { tag });
                        #endregion [脚本][20250325083315503][业务逻辑.第三标段.维系尔2号.维希尔抓臂2L]
                    }
                    catch (Exception ex)
@@ -373,33 +310,8 @@
                    try
                    {
                        #region    [脚本][20250610002647095][业务逻辑.第三标段.维系尔2号.维希尔抓臂2R]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr2R", new object[] { tag });
                        #endregion [脚本][20250610002647095][业务逻辑.第三标段.维系尔2号.维希尔抓臂2R]
                    }
                    catch (Exception ex)
                    {
                        Conn.默认日志.Error(ex.ToString());
                    }
                    finally
                    {
                        System.Threading.Thread.Sleep(3000);
                    }
                }
                ExitJudgeStack.TryPop(out int exitJudgeVal);
            });
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                System.Threading.Thread.CurrentThread.IsBackground = true;
                ExitJudgeStack.Push(0);
                //一直执行,直到满足结束条件
                while (true)
                {
                    if (IsExitApp) { break; }
                    try
                    {
                        #region    [脚本][20250610002647095][业务逻辑.第三标段.维系尔2号.维希尔抓臂2R]
                        LogHelper.Info($"测试线程运行状态日志》》》》》");
                        AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr2R", new object[] { tag });
                        #endregion [脚本][20250610002647095][业务逻辑.第三标段.维系尔2号.维希尔抓臂2R]
                    }
                    catch (Exception ex)
@@ -460,7 +372,7 @@
                    {
                        #region    [脚本][20250531163716255][业务逻辑.处理MES任务线程.ResolveMesTask]
                        //mes ä»»åŠ¡æ‹†åˆ†ã€‚ä¸€æ®µä»»åŠ¡å’Œ å¤šæ®µä»»åŠ¡ã€‚
                        ToWMSMES.ResMesTask();
                        ToWMSMES.ResMesTask(tag);
                        #endregion [脚本][20250531163716255][业务逻辑.处理MES任务线程.ResolveMesTask]
                    }
                    catch (Exception ex)
@@ -477,15 +389,7 @@
            try
            {
                #region    [脚本][20250605212104026][业务逻辑.SocketServer]
                var host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
                foreach (var ip in host.AddressList)
                {
                    if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        Console.WriteLine($"ip= {ip.ToString()}");
                        new TcpServer(ip.ToString());
                    }
                }
                AutoThread.InvokeMethod(AutoThread.Instance, "TaskEverythingRun");
                #endregion [脚本][20250605212104026][业务逻辑.SocketServer]
            }
            catch (Exception ex)
@@ -513,6 +417,7 @@
                        // - å…‰æ …交互处理。。
                        Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t);
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadGrats", new object[] { tag, myDelegate });
                        // å‘那科下料光栅。
                        #endregion [脚本][20250611223832523][业务逻辑.光栅处理]
                    }
@@ -542,6 +447,7 @@
                    try
                    {
                        #region    [脚本][20250616094224396][业务逻辑.流程2热处理炉进出.1020空框下线]
                        //1020  1023 ç©ºæ¡†ä¸‹çº¿
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadEdown", new object[] { tag });
                        #endregion [脚本][20250616094224396][业务逻辑.流程2热处理炉进出.1020空框下线]
@@ -601,6 +507,7 @@
                    try
                    {
                        #region    [脚本][20250616094632985][业务逻辑.流程2热处理炉进出.定子满下线]
                        //定子满下线  1008  1016   ->  1026
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadDdown", new object[] { tag });
                        #endregion [脚本][20250616094632985][业务逻辑.流程2热处理炉进出.定子满下线]
@@ -631,6 +538,7 @@
                    try
                    {
                        #region    [脚本][20250616094511322][业务逻辑.流程2热处理炉进出.转子满下线]
                        //转子满下线  1002  1010   - RGV2工位不可到 1017 ä¸å¯ä¸‹å‘2工位任务。
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread0210Down", new object[] { tag });
                        #endregion [脚本][20250616094511322][业务逻辑.流程2热处理炉进出.转子满下线]
@@ -661,6 +569,7 @@
                    try
                    {
                        #region    [脚本][20250616095605911][业务逻辑.流程2热处理炉进出.下料位检测]
                        //下料位检测。  1003  åˆ°ä½æ—¶ å†™ æ ‡è¯†ä¿¡å· å¹¶ ç»™æœºæ¢°æ‰‹ä¿¡å·ã€‚  
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread下料位检测", new object[] { tag });
                        #endregion [脚本][20250616095605911][业务逻辑.流程2热处理炉进出.下料位检测]
@@ -690,9 +599,8 @@
                    if (IsExitApp) { break; }
                    try
                    {
                        ////2217 - 1003
                        #region    [脚本][20250616095709155][业务逻辑.流程2热处理炉进出.1号FNK机械手完成]
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadFNK1Over", new object[] { tag });
                        #endregion [脚本][20250616095709155][业务逻辑.流程2热处理炉进出.1号FNK机械手完成]
                    }
@@ -722,6 +630,7 @@
                    try
                    {
                        #region    [脚本][20250616095733680][业务逻辑.流程2热处理炉进出.2号FNK机械手完成]
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadFNK2Over", new object[] { tag });
                        #endregion [脚本][20250616095733680][业务逻辑.流程2热处理炉进出.2号FNK机械手完成]
                    }
@@ -811,6 +720,7 @@
                    try
                    {
                        #region    [脚本][20250617085750712][业务逻辑.流程2热处理炉进出.1022agv上空.Program1]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread1022Up", new object[] { tag });
                        #endregion [脚本][20250617085750712][业务逻辑.流程2热处理炉进出.1022agv上空.Program1]
                    }
@@ -840,6 +750,7 @@
                    try
                    {
                        #region    [脚本][20250617085800942][业务逻辑.流程2热处理炉进出.1030下母托.Program1]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread1030Down", new object[] { tag });
                        #endregion [脚本][20250617085800942][业务逻辑.流程2热处理炉进出.1030下母托.Program1]
                    }
@@ -869,8 +780,69 @@
                    try
                    {
                        #region    [脚本][20250617085809982][业务逻辑.流程2热处理炉进出.2030输送线下定子.Program1]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread2030Down", new object[] { tag });
                        #endregion [脚本][20250617085809982][业务逻辑.流程2热处理炉进出.2030输送线下定子.Program1]
                    }
                    catch (Exception ex)
                    {
                        Conn.默认日志.Error(ex.ToString());
                    }
                    finally
                    {
                        System.Threading.Thread.Sleep(3000);
                    }
                }
                ExitJudgeStack.TryPop(out int exitJudgeVal);
            });
            /// <summary>
            /// ç¨‹åºç‰‡æ®µ:Ipping
            /// æè¿°:检测IP地址通断
            /// </summary>
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                System.Threading.Thread.CurrentThread.IsBackground = true;
                ExitJudgeStack.Push(0);
                //一直执行,直到满足结束条件
                while (true)
                {
                    if (IsExitApp) { break; }
                    try
                    {
                        #region    [脚本][20250323151832119][业务逻辑.Ipping]
                        //var hkr = AutoThread.InvokeMethod(AutoThread.Instance, "IsMachineOnline", new object[] { "192.168.1.103", 1000 });
                        //Console.WriteLine("192.168.1.103 > " + hkr.ToString());
                        #endregion [脚本][20250323151832119][业务逻辑.Ipping]
                    }
                    catch (Exception ex)
                    {
                        Conn.默认日志.Error(ex.ToString());
                    }
                    finally
                    {
                        System.Threading.Thread.Sleep(3000);
                    }
                }
                ExitJudgeStack.TryPop(out int exitJudgeVal);
            });
            /// <summary>
            /// ç¨‹åºç‰‡æ®µ:新线程总线
            /// æè¿°:1
            /// </summary>
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                System.Threading.Thread.CurrentThread.IsBackground = true;
                ExitJudgeStack.Push(0);
                //一直执行,直到满足结束条件
                while (true)
                {
                    if (IsExitApp) { break; }
                    try
                    {
                        #region    [脚本][20250708095248653][业务逻辑.新线程总线]
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreaTotal", new object[] { tag, Device });
                        #endregion [脚本][20250708095248653][业务逻辑.新线程总线]
                    }
                    catch (Exception ex)
                    {
@@ -986,7 +958,24 @@
                    Device.A2030取货交互?.Stop();
                    Device.RGV?.Stop();
                    Device.p发那科2下线?.Stop();
                    Device.p发那科3上线?.Stop();
                    Device.D定子1号机械手?.Stop();
                    Device.D定子2号机械手?.Stop();
                    Device.S2027Read?.Stop();
                    Device.S2020Read?.Stop();
                    Device.S2013Read?.Stop();
                    Device.S2027Write?.Stop();
                    Device.S2020Write?.Stop();
                    Device.S2013Write?.Stop();
                    Device.S2001Write?.Stop();
                    Device.S2008Write?.Stop();
                    Device.S3001Read?.Stop();
                    Device.S3006Read?.Stop();
                    Device.S3005Read?.Stop();
                    Device.S3010Read?.Stop();
                    Device.A3001放货交互?.Stop();
                    Device.A3005取货交互?.Stop();
                    Device.A3006放货交互?.Stop();
                    Device.A3010取货交互?.Stop();
                }
                catch (Exception ex)
                {
@@ -1038,7 +1027,24 @@
                        || (Device.A2030取货交互 == null ? false : Device.A2030取货交互.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.RGV == null ? false : Device.RGV.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.p发那科2下线 == null ? false : Device.p发那科2下线.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.p发那科3上线 == null ? false : Device.p发那科3上线.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.D定子1号机械手 == null ? false : Device.D定子1号机械手.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.D定子2号机械手 == null ? false : Device.D定子2号机械手.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2027Read == null ? false : Device.S2027Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2020Read == null ? false : Device.S2020Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2013Read == null ? false : Device.S2013Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2027Write == null ? false : Device.S2027Write.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2020Write == null ? false : Device.S2020Write.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2013Write == null ? false : Device.S2013Write.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2001Write == null ? false : Device.S2001Write.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S2008Write == null ? false : Device.S2008Write.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S3001Read == null ? false : Device.S3001Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S3006Read == null ? false : Device.S3006Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S3005Read == null ? false : Device.S3005Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.S3010Read == null ? false : Device.S3010Read.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.A3001放货交互 == null ? false : Device.A3001放货交互.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.A3005取货交互 == null ? false : Device.A3005取货交互.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.A3006放货交互 == null ? false : Device.A3006放货交互.State != GZ.Device.PLC.PlcRunState.Stoped)
                        || (Device.A3010取货交互 == null ? false : Device.A3010取货交互.State != GZ.Device.PLC.PlcRunState.Stoped)
                    )
                    {
                        System.Threading.Thread.Sleep(1000);
@@ -1073,6 +1079,38 @@
        }
        #endregion
        #region View2事件
        /// <summary>
        /// View2打开事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void View2_LoadEvent(object sender, RoutedEventArgs e)
        {
        }
        /// <summary>
        /// View2关闭事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void View2_CloseEvent(object sender, System.ComponentModel.CancelEventArgs e)
        {
        }
        /// <summary>
        /// View2初始化
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void View2_Init(object sender, RoutedEventArgs e)
        {
        }
        #endregion
        #region åˆ‡æ¢tab页
        public void tab_SelectionChanged(object sender, EventArgs e)
        {
@@ -1092,7 +1130,7 @@
                System.Net.HttpListenerResponse response = context.Response;
                switch (request.LocalEndPoint.ToString())
                {
                    case "10.221.55.116:8808":
                    case "10.221.55.117:8808":
                        {
                            using (var reader = new System.IO.StreamReader(request.InputStream, System.Text.Encoding.UTF8))
                            {
@@ -1193,7 +1231,7 @@
                                        statusCode = System.Net.HttpStatusCode.OK;
                                        // å¤åˆ¶åˆ°case ä¸Š
                                        //var _ when System.Text.RegularExpressions.Regex.IsMatch(path, @"\.(html|ico|js|css)(\?.*)?$", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
                                        var filePath = System.IO.Path.Combine("Static", path.Substring(1));
                                        var filePath = /*Directory.GetCurrentDirectory() + "\\Static" + "\\" + path.Substring(1);*/System.IO.Path.Combine(Directory.GetCurrentDirectory() + "\\Static", path.Substring(1));
                                        return File.ReadAllText(filePath);
                                    }
                            }