From f8d23dcf8d6501482db1a5180325194232afe96c Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期五, 18 七月 2025 17:30:09 +0800
Subject: [PATCH] 封装部分业务代码,继续优化日志打印流程

---
 device/ProductionLineDevice.cs |   60 ++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/device/ProductionLineDevice.cs b/device/ProductionLineDevice.cs
index d6d6b04..986d0f5 100644
--- a/device/ProductionLineDevice.cs
+++ b/device/ProductionLineDevice.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 
 using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 
 namespace HH.WCS.Mobox3.DSZSH.device {
     /// <summary>
@@ -21,54 +22,69 @@
             Port = port;
             Id = id;
         }
+        
+        public ProductionLineDevice(Config.ProductionLine line) {
+            Ip = line.PlcIp;
+            Port = line.PlcPort;
+            Id = line.Id;
+        }
 
         public string Id { get; set; }
 
-
-
         /// <summary>
-        /// 绯荤粺鐘舵�锛�鏈湴 1鑱斿姩(AGV妯″紡) 2鏁呴殰
+        /// 绯荤粺鐘舵�:0鏈湴 1鑱斿姩(AGV妯″紡) 2鏁呴殰
         /// </summary>
         public int SystemState { get; set; }
 
         /// <summary>
-        /// 婊″灈涓嬬嚎锛�杈撻�绾挎湯绔湁鎴愬搧鏂欙紝闇�AGV鎼繍 0榛樿鍊�+        /// 婊″灈涓嬬嚎:1杈撻�绾挎湯绔湁鎴愬搧鏂�闇�AGV鎼繍 0榛樿鍊�         /// </summary>
         public int FullOffline { get; set; }
 
         /// <summary>
-        /// 鍛煎彨鎵樼洏鍨涳細1闇�绌烘墭锛屽懠鍙獳GV閰嶉� 0榛樿鍊�+        /// 鍛煎彨鎵樼洏鍨�1闇�绌烘墭,鍛煎彨AGV閰嶉� 0榛樿鍊�         /// </summary>
         public int CallPallet { get; set; }
 
         /// <summary>
-        /// 鍏佽 AGV 鏀炬墭鐩樺灈锛�鍏佽鏀惧灈 0榛樿鍊�+        /// 鍏佽 AGV 鏀炬墭鐩樺灈:1鍏佽鏀惧灈 0榛樿鍊�         /// </summary>
         public int AllowAgvPlacePallet { get; set; }
 
-        private int _agvPicking;
-        private int _agvPlacingPallet;
+        /// <summary>
+        /// AGV 姝e湪鍙栬揣:涓嬬嚎AGV鍐欏叆1,鍙栬揣瀹屾垚鍚庢仮澶�
+        /// </summary>
+        public int AgvPicking { get; set; }
 
         /// <summary>
-        /// AGV 姝e湪鍙栬揣锛氫笅绾緼GV鍐欏叆1锛屽彇璐у畬鎴愬悗鎭㈠0
+        /// AGV 姝e湪鍙栬揣:涓嬬嚎AGV鍐欏叆1,鍙栬揣瀹屾垚鍚庢仮澶�
         /// </summary>
-        public int AgvPicking {
-            get => _agvPicking;
-            set {
-                var isOk = ModbusHelper.WriteSingleRegister(10, value, Ip, Port);
-                _agvPicking = isOk ? value : throw new Exception($"淇敼 [AGV 姝e湪鍙栬揣] 涓�'{value}' 澶辫触");
+        /// <param name="value"></param>
+        /// <returns></returns>
+        public bool SetAgvPicking(int value) {
+            if (!ModbusHelper.WriteSingleRegister(10, value, Ip, Port)) {
+                return false;
             }
+
+            AgvPicking = value;
+            return true;
         }
 
         /// <summary>
-        /// AGV 姝e湪鏀炬墭鐩樺灈锛氫笂绾緼GV鍐欏叆1锛屾斁鎵樺畬鎴愬悗鎭㈠0
+        /// AGV 姝e湪鏀炬墭鐩樺灈:涓婄嚎AGV鍐欏叆1,鏀炬墭瀹屾垚鍚庢仮澶�
         /// </summary>
-        public int AgvPlacingPallet {
-            get => _agvPlacingPallet;
-            set {
-                var isOk = ModbusHelper.WriteSingleRegister(11, value, Ip, Port);
-                _agvPlacingPallet = isOk ? value : throw new Exception($"淇敼 [AGV 姝e湪鏀炬墭鐩樺灈] 涓�'{value}' 澶辫触");
+        public int AgvPlacingPallet { get; set; }
+
+        /// <summary>
+        /// AGV 姝e湪鏀炬墭鐩樺灈:涓婄嚎AGV鍐欏叆1,鏀炬墭瀹屾垚鍚庢仮澶�
+        /// </summary>
+        public bool SetAgvPlacingPallet(int value) {
+            if (!ModbusHelper.WriteSingleRegister(11, value, Ip, Port)) {
+                return false;
             }
+
+            AgvPlacingPallet = value;
+            return true;
         }
 
         public bool LoadDeviceStateOk() {
@@ -83,8 +99,8 @@
             CallPallet = readArray[2];
             AllowAgvPlacePallet = readArray[3];
             // 鍙啓鍦板潃鏁版嵁
-            _agvPicking = readArray[10];
-            _agvPlacingPallet = readArray[11];
+            AgvPicking = readArray[10];
+            AgvPlacingPallet = readArray[11];
 
             var log = JsonConvert.SerializeObject(readArray);
             LogHelper.Info(log);

--
Gitblit v1.9.1