From 034839c93e9f18d2b77105a85f65c8400798d74c Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期五, 30 五月 2025 08:31:10 +0800 Subject: [PATCH] 巨石 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/DeviceProcess.cs | 149 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 106 insertions(+), 43 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/DeviceProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/DeviceProcess.cs index 688b6da..730049f 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/DeviceProcess.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/process/DeviceProcess.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Threading; using static HH.WCS.JuShi.LISTA.process.HttpModel; +using static HH.WCS.JuShi.util.Settings; namespace HH.WCS.JuShi.process { @@ -17,57 +18,119 @@ /// </summary> internal class DeviceProcess { + public static string rgvSafeInteraction = null; internal static void Analysis(string data, string ip) { - //鏀�- //3A 00 01 00 01 05 73 00 02 01 01 B8 - //鍙�- //2A 00 01 00 01 05 73 00 02 01 01 A8 if (data != null) { - //鏁版嵁搴忓彿 - data = data.Substring(16, 2); - //鏍规嵁ip鎵惧埌璧风偣/缁堢偣璐т綅 - var plc = Settings.deviceInfos.Where(a => a.address == ip).FirstOrDefault(); - var loc = plc.TN_Location; - //1鍏ュ簱2甯歌閫佹3绱ф�閫佹4涓夊绌烘墭5鍏绌烘墭 - bool result = false; - if (data.Equals("01")) - { - var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "RGV搴撳尯").FirstOrDefault(); - result= TaskProcess.tcpOffline(loc, reservoirs.areaCode); - } - else if (data.Equals("02")) - { - var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "甯歌閫佹鍖�).FirstOrDefault(); - result = TaskProcess.tcpOffline(loc, reservoirs.areaCode); - } - else if (data.Equals("03")) - { - var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "绱ф�閫佹鍖�).FirstOrDefault(); - result = TaskProcess.tcpOffline(loc, reservoirs.areaCode); - } - else if (data.Equals("04")) - { - var reservoirs = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault(); - result = TaskProcess.tcpEmptyTray(reservoirs.outLoca, loc); - } - else if (data.Equals("05")) - { - var reservoirs = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault(); - result = TaskProcess.tcpEmptyTray(reservoirs.outLoca, loc); - } + //鎸夐挳鐩�+ //鏀�+ //3A 00 01 00 01 05 73 00 02 01 01 B8 + //鍙� //2A 00 01 00 01 05 73 00 02 01 01 A8 - // 杈撳叆鐨勫崄鍏繘鍒跺瓧绗︿覆鏁扮粍 - string[] hexValues = { "2A", "00", "01", "00", "01", "05", "73", "00", "02", data, "01" }; - // 璁$畻鎬诲拰 - int sum = hexValues.Sum(hex => Convert.ToInt32(hex, 16)); - string returndata= hexValues.ToString()+ sum; - if (result) + if (data.Substring(0, 2) == "3a") { - PlcHelper.SendHex(ip, returndata); + //鏁版嵁搴忓彿 + data = data.Substring(16, 2); + //鏍规嵁ip鎵惧埌璧风偣/缁堢偣璐т綅 + var plc = Settings.deviceInfos.Where(a => a.address == ip).FirstOrDefault(); + var loc = plc.TN_Location; + //1鍏ュ簱2甯歌閫佹3绱ф�閫佹4涓夊绌烘墭5鍏绌烘墭 + bool result = false; + if (data.Equals("01")) + { + var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "绔嬪簱鍏ュ簱鍖�).FirstOrDefault(); + result = TaskProcess.tcpOffline(loc, reservoirs.areaCode); + } + else if (data.Equals("02")) + { + var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "甯歌閫佹鍖�).FirstOrDefault(); + result = TaskProcess.tcpOffline(loc, reservoirs.areaCode); + } + else if (data.Equals("03")) + { + var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "绱ф�閫佹鍖�).FirstOrDefault(); + result = TaskProcess.tcpOffline(loc, reservoirs.areaCode); + } + else if (data.Equals("04")) + { + var reservoirs = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault(); + result = TaskProcess.tcpEmptyTray(reservoirs.outLoca, loc); + } + else if (data.Equals("05")) + { + var reservoirs = Settings.linePlcInfos.Where(s => s.code == "鎷嗘墭鏈�").FirstOrDefault(); + result = TaskProcess.tcpEmptyTray(reservoirs.outLoca, loc); + } + //2A 00 01 00 01 05 73 00 02 01 01 A8 + // 杈撳叆鐨勫崄鍏繘鍒跺瓧绗︿覆鏁扮粍 + string[] hexValues = { "2a", "00", "01", "00", "01", "05", "73", "00", "02", data, "01" }; + // 璁$畻鎬诲拰 + int sum = hexValues.Sum(hex => Convert.ToInt32(hex, 16)); + string returndata = hexValues.ToString() + sum; + if (result) + { + PlcHelper.SendHex(ip, returndata); + } } + //rgv瀹夊叏浜や簰 + else if (data.Substring(0, 4) == "3f00") + { + ////鏃犱俊鍙蜂笉绠�+ //if (data.Trim() != "3f001020304050600d0a") + //{ + LogHelper.Info($"RGV瀹夊叏浜や簰鎺ユ敹淇″彿{data}"); + rgvSafeInteraction = data.Substring(4,12); + //var reservoirs = Settings.SafeInteractions.Where(s => s.ip == ip).FirstOrDefault(); + ////1鍏佽鍗歌揣 2鍗歌揣瀹屾垚纭 + //string datastr = ""; + //switch (reservoirs.pointCode) + //{ + // case "RGV1": + // datastr = data.Substring(5, 1); + // break; + // case "RGV2": + // datastr = data.Substring(7, 1); + // break; + // case "RGV3": + // datastr = data.Substring(9, 1); + // break; + // case "RGV4": + // datastr = data.Substring(11, 1); + // break; + // case "RGV5": + // datastr = data.Substring(13, 1); + // break; + // case "RGV6": + // datastr = data.Substring(15, 1); + // break; + //} + ////鎺ュ彈淇″彿瀛樺埌鍐呭瓨 + //if (rgvSafeInteraction != null) + //{ + // //string杞垚list + // var jsonList = JsonConvert.DeserializeObject<List<SafeInteraction>>(rgvSafeInteraction); + // var list = jsonList.Where(s => s.ip == ip).First(); + // if (list != null) + // { + // //涓嶄负绌哄氨鍏堝垹鍐嶅姞涓�+ // jsonList.Remove(list); + // } + // jsonList.Add(new SafeInteraction { ip = ip, data = datastr }); + // rgvSafeInteraction = JsonConvert.SerializeObject(jsonList); + //} + //else + //{ + // //绗竴娆¤繘 + // var safeInteractions = new List<SafeInteraction>{new SafeInteraction { ip = ip, data = datastr }}; + // rgvSafeInteraction = JsonConvert.SerializeObject(safeInteractions); + //} + //LogHelper.Info($"RGV瀹夊叏浜や簰 瀛樺叆鍐呭瓨鍙傛暟{rgvSafeInteraction}"); + //} + + + } } -- Gitblit v1.9.1