1
czw
2025-07-03 0bf4a3d86b017fc4cadddda4182e682386dfee82
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,11 +50,11 @@
            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);
            }
            catch (Exception ex)
            {
@@ -80,29 +77,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 +93,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 +138,8 @@
                    try
                    {
                        #region    [脚本][20250325083326611][业务逻辑.第三标段.捷瞬抓臂2]
                        //jsz2捷瞬抓臂2
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadJS2", new object[] { tag });
                        #endregion [脚本][20250325083326611][业务逻辑.第三标段.捷瞬抓臂2]
                    }
                    catch (Exception ex)
@@ -256,6 +172,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 +248,7 @@
                    try
                    {
                        #region    [脚本][20250610002047005][业务逻辑.第三标段.维系尔1号.维希尔抓臂1R]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Threadwxr1R", new object[] { tag });
                        #endregion [脚本][20250610002047005][业务逻辑.第三标段.维系尔1号.维希尔抓臂1R]
                    }
@@ -343,8 +278,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 +308,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)
@@ -477,15 +387,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 +415,7 @@
                        // - å…‰æ …交互处理。。
                        Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t);
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadGrats", new object[] { tag, myDelegate });
                        // å‘那科下料光栅。
                        #endregion [脚本][20250611223832523][业务逻辑.光栅处理]
                    }
@@ -542,6 +445,7 @@
                    try
                    {
                        #region    [脚本][20250616094224396][业务逻辑.流程2热处理炉进出.1020空框下线]
                        //1020  1023 ç©ºæ¡†ä¸‹çº¿
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadEdown", new object[] { tag });
                        #endregion [脚本][20250616094224396][业务逻辑.流程2热处理炉进出.1020空框下线]
@@ -601,6 +505,7 @@
                    try
                    {
                        #region    [脚本][20250616094632985][业务逻辑.流程2热处理炉进出.定子满下线]
                        //定子满下线  1008  1016   ->  1026
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadDdown", new object[] { tag });
                        #endregion [脚本][20250616094632985][业务逻辑.流程2热处理炉进出.定子满下线]
@@ -631,6 +536,7 @@
                    try
                    {
                        #region    [脚本][20250616094511322][业务逻辑.流程2热处理炉进出.转子满下线]
                        //转子满下线  1002  1010   - RGV2工位不可到 1017 ä¸å¯ä¸‹å‘2工位任务。
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread0210Down", new object[] { tag });
                        #endregion [脚本][20250616094511322][业务逻辑.流程2热处理炉进出.转子满下线]
@@ -661,6 +567,7 @@
                    try
                    {
                        #region    [脚本][20250616095605911][业务逻辑.流程2热处理炉进出.下料位检测]
                        //下料位检测。  1003  åˆ°ä½æ—¶ å†™ æ ‡è¯†ä¿¡å· å¹¶ ç»™æœºæ¢°æ‰‹ä¿¡å·ã€‚  
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread下料位检测", new object[] { tag });
                        #endregion [脚本][20250616095605911][业务逻辑.流程2热处理炉进出.下料位检测]
@@ -690,9 +597,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 +628,7 @@
                    try
                    {
                        #region    [脚本][20250616095733680][业务逻辑.流程2热处理炉进出.2号FNK机械手完成]
                        AutoThread.InvokeMethod(AutoThread.Instance, "ThreadFNK2Over", new object[] { tag });
                        #endregion [脚本][20250616095733680][业务逻辑.流程2热处理炉进出.2号FNK机械手完成]
                    }
@@ -811,6 +718,7 @@
                    try
                    {
                        #region    [脚本][20250617085750712][业务逻辑.流程2热处理炉进出.1022agv上空.Program1]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread1022Up", new object[] { tag });
                        #endregion [脚本][20250617085750712][业务逻辑.流程2热处理炉进出.1022agv上空.Program1]
                    }
@@ -840,6 +748,7 @@
                    try
                    {
                        #region    [脚本][20250617085800942][业务逻辑.流程2热处理炉进出.1030下母托.Program1]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread1030Down", new object[] { tag });
                        #endregion [脚本][20250617085800942][业务逻辑.流程2热处理炉进出.1030下母托.Program1]
                    }
@@ -854,6 +763,7 @@
                }
                ExitJudgeStack.TryPop(out int exitJudgeVal);
            });
            /// <summary>
            /// ç¨‹åºç‰‡æ®µ:Program1
            /// æè¿°:
@@ -869,6 +779,7 @@
                    try
                    {
                        #region    [脚本][20250617085809982][业务逻辑.流程2热处理炉进出.2030输送线下定子.Program1]
                        AutoThread.InvokeMethod(AutoThread.Instance, "Thread2030Down", new object[] { tag });
                        #endregion [脚本][20250617085809982][业务逻辑.流程2热处理炉进出.2030输送线下定子.Program1]
                    }
@@ -883,6 +794,35 @@
                }
                ExitJudgeStack.TryPop(out int exitJudgeVal);
            });
            //执行多次
            for (int iii = 0; iii < 1; iii++)
            {
                if (IsExitApp) { break; }
                try
                {
                    #region    [脚本][20250323151832119][业务逻辑.Program4]
                    //LogHelper.Info($"<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>");
                    //LogHelper.Info($"<<<<<<<<<<<<<<<<<程序·启动>>>>>>>>>>>>>>");
                    //// ä½¿ç”¨æ‹¦æˆªå™¨
                    //var interceptor = new ConsoleInterceptor();
                    //Console.SetOut(interceptor);
                    //LogHelper.Info($"<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>");
                    //AnsiConsole.Markup("[underline red]Hello[/] World!");
                    // AnsiConsole.Markup("[underline red]Hello[/] World!");
                    #endregion [脚本][20250323151832119][业务逻辑.Program4]
                }
                catch (Exception ex)
                {
                    Conn.默认日志.Error(ex.ToString());
                }
                finally
                {
                    System.Threading.Thread.Sleep(3000);
                }
            }
        }
        /// <summary>
@@ -1073,6 +1013,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)
        {
@@ -1082,36 +1054,44 @@
        #endregion
        #region Http服务监听
        private void HttpSvcListenerCallback(IAsyncResult ar)
        private async void HttpSvcListenerCallback(IAsyncResult ar)
        {
            System.Net.HttpListenerContext context = null;
            try
            {
                HttpSvcHost.BeginGetContext(HttpSvcListenerCallback, null);
                System.Net.HttpListenerContext context = HttpSvcHost.EndGetContext(ar);
                context = HttpSvcHost.EndGetContext(ar);
                System.Net.HttpListenerRequest request = context.Request;
                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))
                            {
                                string requestJson = reader.ReadToEnd();
                                string respstr = HttpSvcListenerCallback_he(request.HttpMethod, request.Url.AbsolutePath, requestJson, out System.Net.HttpStatusCode statusCode);
                                System.Net.HttpStatusCode statusCode = 0;
                                string respstr = await Task.Run(() =>
                                {
                                    return HttpSvcListenerCallback_he(request.HttpMethod, request.Url.AbsolutePath, requestJson, out statusCode);
                                });
                                string logContent = "";
                                logContent += $"\r\n[{request.HttpMethod}]{request.Url.AbsolutePath}";
                                logContent += $"\r\n[request]{requestJson}";
                                logContent += $"\r\n[response]{respstr}";
                                Conn.默认日志?.Info(logContent);
                                _ = Task.Run(() =>
                                {
                                    Conn.默认日志?.Info(logContent);
                                });
                                byte[] bytstr = Encoding.UTF8.GetBytes(respstr);
                                response.StatusCode = (int)statusCode;
                                response.SendChunked = false;
                                response.ContentLength64 = bytstr.Length;
                                response.OutputStream.Write(bytstr, 0, bytstr.Length);
                                response.Close();
                                // å¼‚步写入响应
                                await response.OutputStream.WriteAsync(bytstr, 0, bytstr.Length);
                            }
                            break;
                        }
@@ -1120,6 +1100,10 @@
            catch (Exception ex)
            {
                Conn.默认日志.Error(ex.ToString());
            }
            finally
            {
                context?.Response.Close();
            }
        }
        private System.String HttpSvcListenerCallback_he(System.String method, System.String path, System.String requestJson, out System.Net.HttpStatusCode statusCode)
@@ -1188,12 +1172,12 @@
                        {
                            switch (path)
                            {
                                case "/inddddddddddddddddd":
                                case var _ when System.Text.RegularExpressions.Regex.IsMatch(path, @"\.(html|ico|js|css)(\?.*)?$", System.Text.RegularExpressions.RegexOptions.IgnoreCase):
                                    {
                                        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);
                                    }
                            }