From 11336f3d70bd0161b0be8f9e6dae410e046d9ebc Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期五, 25 七月 2025 15:24:45 +0800
Subject: [PATCH] 1

---
 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs |  104 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 85 insertions(+), 19 deletions(-)

diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
index 6a2d2b8..853fae7 100644
--- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
+++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
@@ -30,6 +30,9 @@
 using System.Net.NetworkInformation;
 using System.Windows.Documents;
 using System.Text.RegularExpressions;
+using GZ.Device.PLC;
+using System.Runtime.CompilerServices;
+using ServiceStack.Text;
 
 namespace GZ.Projects.AuxAllWCS
 {
@@ -58,6 +61,12 @@
     }
     public partial class AutoThread
     {
+        /// <summary>
+        ///  1 鍙紑绾跨▼  Device Client
+        ///  2 鍙紑璁惧  Device Server
+        ///  3 鍏ㄥ紑
+        /// </summary>
+        public static readonly int _type = 1;
 
         private static AutoThread _instance;
 
@@ -83,6 +92,12 @@
         public static object InvokeMethod(object instance, string methodName, params object[] args)
         {
             var cacheKey = $"{instance.GetType().FullName}_{methodName}";
+
+            if (AutoThread._type % 2 == 0)
+            {
+                Console.WriteLine($"{AutoThread._type}> 褰撳墠鏄�Device Server 妯″紡銆�);
+                return null;
+            }
 
             try
             {
@@ -113,7 +128,7 @@
             }
             catch (Exception ex)
             {
-                LogHelper.Error($"InvokeMethod > cacheKey-{ex.Message}", ex);
+                LogHelper.Error($"InvokeMethod > cacheKey:{cacheKey}-{ex.Message}", ex);
                 throw ex;
             }
         }
@@ -149,6 +164,7 @@
         //        return _repository;
         //    }
         //}
+
         /// <summary>
         /// 閰嶇疆鍒濆鍖栥�
         /// </summary>
@@ -173,6 +189,7 @@
                 Console.Clear();
             }
         }
+
 
 
         public void ThreaTotal(Tag tag, Device device)
@@ -226,6 +243,7 @@
             tasks.Add(GetTask(taskssss1, tag, 3000));
             tasks.Add(GetTask(taskssss2, tag, 3000));
             tasks.Add(GetTask(taskssss3, tag, 3000));
+            tasks.Add(GetTask(task20132027, tag, 3000));
             //tasks.Add(GetTask(sa1022, tag, 3000));
             //tasks.Add(GetTask(sa1025, tag, 3000));
             //tasks.Add(GetTask(sa1030, tag, 3000));
@@ -240,10 +258,46 @@
 
             tasks.Add(GetTask(ThreadMXC5, tag, 3000));
             tasks.Add(GetTask(ThreadMXC6, tag, 3000));
+            tasks.Add(GetTask(ThreadS7helper, tag, 3000));
 
             LogHelper.Info("ThreaTotal 绾跨▼鎬荤嚎runing");
             Task.WaitAll(tasks.ToArray());
             LogHelper.Info("ThreaTotal 绾跨▼鎬荤嚎over");
+        }
+
+
+        private void ThreadS7helper(Tag tag)
+        {
+            //var plc = new Plc(CpuType.S71500,);
+
+            //foreach (var item in collection)
+            //{
+            //    S7.Net.Plc plc = new Plc(CpuType.S71500, item.address, 0, 1);
+            //    Link(plc);
+            //    PLCS.Add(item.deviceName, plc);
+            //}
+        }
+
+        void task20132027(Tag tag)
+        {
+            if (tag.ssx杈撻�绾�s2027.wTaskNo > 0 && tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�!= tag.ssx杈撻�绾�s2027.R鎵樼洏鐮�
+            {
+                tag.ssx杈撻�绾�s2027.wEbit = 0;
+                tag.ssx杈撻�绾�s2027.w鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2027.wTaskNo = 0;
+            }
+            if (tag.ssx杈撻�绾�s2020.wTaskNo > 0 && tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�!= tag.ssx杈撻�绾�s2020.R鎵樼洏鐮�
+            {
+                tag.ssx杈撻�绾�s2020.wEbit = 0;
+                tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2020.wTaskNo = 0;
+            }
+            if (tag.ssx杈撻�绾�s2013.wTaskNo > 0 && tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�!= tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�
+            {
+                tag.ssx杈撻�绾�s2013.wEbit = 0;
+                tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2013.wTaskNo = 0;
+            }
         }
         void taskssss1(Tag tag)
         {
@@ -264,7 +318,7 @@
             sa3010(tag);
         }
 
-        public static ConcurrentDictionary<string, bool> Iponlines = new ConcurrentDictionary<string, bool>();
+        //public static ConcurrentDictionary<string, bool> Iponlines = new ConcurrentDictionary<string, bool>();
         public bool IsMachineOnline(string hostNameOrIp, int timeout = 1000)
         {
             //device.p鍙戦偅绉�涓嬬嚎.Config.IP
@@ -2451,24 +2505,33 @@
         private void sa2008(Tag tag)
         {
             var rdisTcode = RedisHelper.Get<string>($"Arrive{2008}BarcodeLast", out string msg);
-            LogHelper.Info($"2008 鎵樼洏鍙穥tag.SA2030.R鎵樼洏鐮亇  redis Arrive{2008}BarcodeLast鎵樼洏鍙凤細{rdisTcode} 鍖归厤鏍¢獙銆�);
-            if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2008.R鎵樼洏鐮� && rdisTcode != tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�
+            var ntr = tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�
+            LogHelper.Info($"2008 鎵樼洏鍙穥ntr}  redis Arrive{2008}BarcodeLast鎵樼洏鍙凤細{rdisTcode} 鍖归厤鏍¢獙銆�);
+            if (rdisTcode != ntr && tag.ssx杈撻�绾�s2008.wTaskNo > 0)
             {
-                var ntr = tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�
-                var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                LogHelper.Info($"2008 鎵樼洏鍙穥ntr}  鍒囨崲鎵樼洏鍙凤紙涔熷彲鑳芥竻绌轰簡锛夛紝娓呴櫎浠诲姟鏁版嵁銆倃TaskNo锛寃Ebit=0锛孯鎵樼洏鐮�绌�);
+                tag.ssx杈撻�绾�s2008.wEbit = 0;
+                tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2008.wTaskNo = 0;
+                RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
+                if (!string.IsNullOrEmpty(ntr) /*&& rdisTcode != ntr*/)
                 {
-                    cntrCode = ntr,
-                    type = 1
-                }));
-                var strr = JsonConvert.DeserializeObject<MES2234>(str);
-                if (strr.success && strr.data != null)
-                {
-                    var end = (strr.data.lineNum == 1 ? 2027
-                                : strr.data.lineNum == 2 ? 2020 : 2013);
-                    tag.ssx杈撻�绾�s2008.wTaskNo = (uint)(20080000 + end);
-                    tag.ssx杈撻�绾�s2008.wEbit = 2027;
-                    tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�= ntr;
-                    RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
+                    var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
+                    {
+                        cntrCode = ntr,
+                        type = 1
+                    }));
+                    var strr = JsonConvert.DeserializeObject<MES2234>(str);
+                    if (strr.success && strr.data != null)
+                    {
+                        var end = (ushort)(strr.data.lineNum == 1 ? 2027
+                                    : strr.data.lineNum == 2 ? 2020 : 2013);
+                        tag.ssx杈撻�绾�s2008.wTaskNo = (uint)(20080000 + end);
+                        tag.ssx杈撻�绾�s2008.wEbit = end;
+                        tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�= ntr;
+                        LogHelper.Info($"2008 鎵樼洏鍙穥ntr}  鍐欎换鍔★紝wTaskNo={(uint)(20080000 + end)}  wEbit={end} R鎵樼洏鐮�{ntr} Arrive{2008}BarcodeLast={ntr} ");
+                        RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
+                    }
                 }
             }
         }
@@ -2643,6 +2706,8 @@
                 i = 0;
             }
 
+            LogHelper.Info($"_methodCache>>>>" + _methodCache.Count + ">>>>" + JsonConvert.SerializeObject(_methodCache.Keys));
+
             //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛�  =====>");
             //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇");
 
@@ -2764,6 +2829,7 @@
                                                     continue;
                                                 }
                                             }
+
                                             if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�)
                                             {
                                                 var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
@@ -3519,7 +3585,7 @@
                     Console.WriteLine($"ip= {ip.ToString()}");
                     new HttpServer(ip.ToString()).HttpServerRun();
                     new TcpServer(ip.ToString());
-                    var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
+                    //var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
                     //var client = new WebSocketClient($"http://{ip.ToString()}:8809/").ConnectAsync();
                     break;
                 }

--
Gitblit v1.9.1