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

---
 device/ModbusFactory.cs |  154 +++++++++++++++++++++++++-------------------------
 1 files changed, 77 insertions(+), 77 deletions(-)

diff --git a/device/ModbusFactory.cs b/device/ModbusFactory.cs
index 83a15ae..4c84a8a 100644
--- a/device/ModbusFactory.cs
+++ b/device/ModbusFactory.cs
@@ -21,28 +21,28 @@
 
         // 甯哥敤鐨凪odbus鍔熻兘鐮佹柟娉�         /// <summary>
-        /// 璇讳竴涓垨澶氫釜绾垮湀锛岃繑鍥炰竴涓猙it鐪熷亣鏁扮粍
+        /// 璇讳竴涓垨澶氫釜绾垮湀,杩斿洖涓�釜bit鐪熷亣鏁扮粍
         /// </summary>
         /// <param name="startingAddress"></param>
         /// <param name="quantity"></param>
         /// <returns></returns>
         bool[] ReadCoils(int startingAddress, int quantity);
         /// <summary>
-        /// 璇讳竴涓垨澶氫釜绂绘暎杈撳叆锛岃繑鍥炰竴涓猙it鐪熷亣鏁扮粍
+        /// 璇讳竴涓垨澶氫釜绂绘暎杈撳叆,杩斿洖涓�釜bit鐪熷亣鏁扮粍
         /// </summary>
         /// <param name="startingAddress"></param>
         /// <param name="quantity"></param>
         /// <returns></returns>
         bool[] ReadDiscreteInputs(int startingAddress, int quantity);
         /// <summary>
-        /// 鎵归噺璇诲彇鎴栧崟鐙鍙栦繚鎸佸瘎瀛樺櫒锛岃繑鍥炵殑鏄�2浣峣nt鏁扮粍
+        /// 鎵归噺璇诲彇鎴栧崟鐙鍙栦繚鎸佸瘎瀛樺櫒,杩斿洖鐨勬槸32浣峣nt鏁扮粍
         /// </summary>
         /// <param name="startingAddress"></param>
         /// <param name="quantity"></param>
         /// <returns></returns>
         int[] ReadHoldingRegisters(int startingAddress, int quantity);
         /// <summary>
-        /// 璇讳竴涓垨澶氫釜杈撳叆瀵勫瓨鍣紝杩斿洖涓�釜int32浣嶆暟缁�+        /// 璇讳竴涓垨澶氫釜杈撳叆瀵勫瓨鍣�杩斿洖涓�釜int32浣嶆暟缁�         /// </summary>
         /// <param name="startingAddress"></param>
         /// <param name="quantity"></param>
@@ -92,8 +92,8 @@
                 case ModbusCommunicationType.TcpSocket:
                     return new TcpSocketCommunicator();
                 default:
-                    //throw new ArgumentException("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡锛氳閫夋嫨EasyModbus鎴朤cpSocket");
-                    LogHelper.Info("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡锛氳閫夋嫨EasyModbus鎴朤cpSocket");
+                    //throw new ArgumentException("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡:璇烽�鎷〦asyModbus鎴朤cpSocket");
+                    LogHelper.Info("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡:璇烽�鎷〦asyModbus鎴朤cpSocket");
                     return null;
             }
         }
@@ -127,10 +127,10 @@
             _modbusClient.Connect();
             
             if (IsConnected) {
-                LogHelper.Info($"杩炴帴鎴愬姛锛歿ipAddress}:{port}");
+                LogHelper.Info($"杩炴帴鎴愬姛:{ipAddress}:{port}");
             }
             else {
-                LogHelper.Info($"杩炴帴澶辫触锛歿ipAddress}:{port}");
+                LogHelper.Info($"杩炴帴澶辫触:{ipAddress}:{port}");
             }
         }
 
@@ -143,10 +143,10 @@
             _modbusClient?.Disconnect();
 
             if (IsConnected) {
-                LogHelper.Info($"杩炴帴鎴愬姛锛歿_modbusClient.IPAddress}:{_modbusClient.Port}");
+                LogHelper.Info($"杩炴帴鎴愬姛:{_modbusClient.IPAddress}:{_modbusClient.Port}");
             }
             else {
-                LogHelper.Info($"杩炴帴澶辫触锛歿_modbusClient.IPAddress} : {_modbusClient.Port}");
+                LogHelper.Info($"杩炴帴澶辫触:{_modbusClient.IPAddress} : {_modbusClient.Port}");
             }
         }
 
@@ -169,11 +169,11 @@
                     res = _modbusClient.ReadCoils(startingAddress, quantity);
                     if (res.Length != 0) {
                         //璇诲彇鎴愬姛
-                        LogHelper.Info($"璇诲彇鎴愬姛锛歊eadCoils:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇鎴愬姛:ReadCoils:IP:{ip},Port:{port}");
                     }
                     else {
                         //璇诲彇澶辫触
-                        LogHelper.Info($"璇诲彇澶辫触锛歊eadCoils:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇澶辫触:ReadCoils:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
@@ -181,7 +181,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -196,11 +196,11 @@
                     res = _modbusClient.ReadDiscreteInputs(startingAddress, quantity);
                     if (res.Length != 0) {
                         //璇诲彇鎴愬姛
-                        LogHelper.Info($"璇诲彇鎴愬姛锛歊eadDiscreteInputs:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇鎴愬姛:ReadDiscreteInputs:IP:{ip},Port:{port}");
                     }
                     else {
                         //璇诲彇澶辫触
-                        LogHelper.Info($"璇诲彇澶辫触锛歊eadDiscreteInputs:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇澶辫触:ReadDiscreteInputs:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
@@ -208,7 +208,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -220,24 +220,24 @@
                 var ip = client.IPAddress;
                 var port = client.Port;
                 try {
-                    //涓�釜瀵勫瓨鍣ㄦ槸16浣嶏紝杩斿洖2涓猧nt绫诲瀷
+                    //涓�釜瀵勫瓨鍣ㄦ槸16浣�杩斿洖2涓猧nt绫诲瀷
                     res = client.ReadHoldingRegisters(startingAddress, quantity);
                     if (res.Length != 0) {
                         //璇诲彇鎴愬姛
-                        LogHelper.Info($"璇诲彇鎴愬姛锛歊eadHoldingRegisters:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇鎴愬姛:ReadHoldingRegisters:IP:{ip},Port:{port}");
                     }
                     else {
                         //璇诲彇澶辫触
-                        LogHelper.Info($"璇诲彇澶辫触锛歊eadHoldingRegisters:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇澶辫触:ReadHoldingRegisters:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
-                    //濡傛灉璇锋眰鏁伴噺瓒呭嚭淇濇寔瀵勫瓨鍣ㄧ殑鏈�ぇ鏁版嵁琛屾暟锛屼細鎶ラ敊
+                    //濡傛灉璇锋眰鏁伴噺瓒呭嚭淇濇寔瀵勫瓨鍣ㄧ殑鏈�ぇ鏁版嵁琛屾暟,浼氭姤閿�                     LogHelper.InfoEx(ex);
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -252,11 +252,11 @@
                     res = client.ReadInputRegisters(startingAddress, quantity);
                     if (res.Length != 0) {
                         //璇诲彇鎴愬姛
-                        LogHelper.Info($"璇诲彇鎴愬姛锛歊eadInputRegisters:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇鎴愬姛:ReadInputRegisters:IP:{ip},Port:{port}");
                     }
                     else {
                         //璇诲彇澶辫触
-                        LogHelper.Info($"璇诲彇澶辫触锛歊eadInputRegisters:IP:{ip},Port:{port}");
+                        LogHelper.Info($"璇诲彇澶辫触:ReadInputRegisters:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
@@ -264,7 +264,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -280,11 +280,11 @@
                     res = value == client.ReadCoils(coilAddress, 1)[0];
                     if (res) {
                         //鍐欏叆鎴愬姛
-                        LogHelper.Info($"鍐欏叆鎴愬姛锛歐riteSingleCoil:IP:{ip},Port:{port}");
+                        LogHelper.Info($"鍐欏叆鎴愬姛:WriteSingleCoil:IP:{ip},Port:{port}");
                     }
                     else {
                         //鍐欏叆澶辫触
-                        LogHelper.Info($"鍐欏叆澶辫触锛歐riteSingleCoil:IP:{ip},Port:{port}");
+                        LogHelper.Info($"鍐欏叆澶辫触:WriteSingleCoil:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
@@ -292,7 +292,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -308,11 +308,11 @@
                     res = value == client.ReadHoldingRegisters(registerAddress, 1)[0];
                     if (res) {
                         //鍐欏叆鎴愬姛
-                        LogHelper.Info($"鍐欏叆鎴愬姛锛歐riteSingleRegister:IP:{ip},Port:{port}");
+                        LogHelper.Info($"鍐欏叆鎴愬姛:WriteSingleRegister:IP:{ip},Port:{port}");
                     }
                     else {
                         //鍐欏叆澶辫触
-                        LogHelper.Info($"鍐欏叆澶辫触锛歐riteSingleRegister:IP:{ip},Port:{port}");
+                        LogHelper.Info($"鍐欏叆澶辫触:WriteSingleRegister:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
@@ -320,7 +320,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -337,11 +337,11 @@
                     res = values.SequenceEqual(dataRead);
                     if (res) {
                         //鍐欏叆鎴愬姛
-                        LogHelper.Info($"鍐欏叆鎴愬姛锛歐riteMultipleCoils:IP:{ip},Port:{port}");
+                        LogHelper.Info($"鍐欏叆鎴愬姛:WriteMultipleCoils:IP:{ip},Port:{port}");
                     }
                     else {
                         //鍐欏叆澶辫触
-                        LogHelper.Info($"鍐欏叆澶辫触锛歐riteMultipleCoils:IP:{ip},Port:{port}");
+                        LogHelper.Info($"鍐欏叆澶辫触:WriteMultipleCoils:IP:{ip},Port:{port}");
                     }
                 }
                 catch (Exception ex) {
@@ -349,7 +349,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -377,7 +377,7 @@
                 }
             }
             else {
-                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�);
+                LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴");
             }
             return res;
         }
@@ -421,16 +421,16 @@
             if (quantity < 1 || quantity > 2000)
                 throw new ArgumentException("Quantity must be between 1 and 2000");
 
-            // 鏋勫缓璇锋眰鎶ユ枃锛�2瀛楄妭锛�+            // 鏋勫缓璇锋眰鎶ユ枃 (12瀛楄妭) 
             byte[] request = new byte[12];
             request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�-            request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺傦紙绀轰緥鍊硷級
-            request[2] = 0x00; // 鍗忚ID楂樺瓧鑺傦紙鍥哄畾0锛�-            request[3] = 0x00; // 鍗忚ID浣庡瓧鑺傦紙鍥哄畾0锛�-            request[4] = 0x00; // 闀垮害楂樺瓧鑺傦紙鍚庣画6瀛楄妭锛�+            request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�(绀轰緥鍊� 
+            request[2] = 0x00; // 鍗忚ID楂樺瓧鑺�(鍥哄畾0) 
+            request[3] = 0x00; // 鍗忚ID浣庡瓧鑺�(鍥哄畾0) 
+            request[4] = 0x00; // 闀垮害楂樺瓧鑺�(鍚庣画6瀛楄妭) 
             request[5] = 0x06; // 闀垮害浣庡瓧鑺�             request[6] = unitIdentifier; // 鍗曞厓鏍囪瘑绗�-            request[7] = 0x01; // 鍔熻兘鐮侊紙璇荤嚎鍦堬級
+            request[7] = 0x01; // 鍔熻兘鐮�(璇荤嚎鍦� 
             request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺�             request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺�             request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -439,19 +439,19 @@
             // 鍙戦�璇锋眰
             _networkStream.Write(request, 0, request.Length);
 
-            // 璇诲彇鍝嶅簲澶达紙8瀛楄妭锛�+            // 璇诲彇鍝嶅簲澶�(8瀛楄妭) 
             byte[] responseHeader = new byte[8];
             int bytesRead = _networkStream.Read(responseHeader, 0, 8);
             if (bytesRead != 8)
                 throw new Exception("Invalid response header length");
 
-            // 鏍¢獙浜嬪姟ID銆佸崗璁甀D銆佸崟鍏冩爣璇嗙
+            // 鏍¢獙浜嬪姟ID,鍗忚ID,鍗曞厓鏍囪瘑绗�             if (responseHeader[0] != request[0] || responseHeader[1] != request[1] ||
                 responseHeader[2] != 0x00 || responseHeader[3] != 0x00 ||
                 responseHeader[6] != unitIdentifier)
                 throw new Exception("Invalid response header");
 
-            // 妫�煡寮傚父鍝嶅簲锛堝姛鑳界爜 + 0x80锛�+            // 妫�煡寮傚父鍝嶅簲 (鍔熻兘鐮�+ 0x80) 
             if (responseHeader[7] == 0x81) {
                 int errorCode = _networkStream.ReadByte();
                 throw new Exception($"Modbus error. Code: {errorCode}");
@@ -459,14 +459,14 @@
             else if (responseHeader[7] != 0x01)
                 throw new Exception("Invalid function code in response");
 
-            // 璇诲彇鏁版嵁閮ㄥ垎锛堝瓧鑺傛暟 + 瀹為檯鏁版嵁锛�+            // 璇诲彇鏁版嵁閮ㄥ垎 (瀛楄妭鏁�+ 瀹為檯鏁版嵁) 
             byte byteCount = responseHeader[8];
             byte[] responseData = new byte[byteCount];
             bytesRead = _networkStream.Read(responseData, 0, byteCount);
             if (bytesRead != byteCount)
                 throw new Exception("Invalid response data length");
 
-            // 瑙f瀽绾垮湀鐘舵�锛堟瘡涓綅琛ㄧず涓�釜绾垮湀锛�+            // 瑙f瀽绾垮湀鐘舵� (姣忎釜浣嶈〃绀轰竴涓嚎鍦� 
             bool[] coils = new bool[quantity];
             for (int i = 0; i < quantity; i++) {
                 int byteIndex = i / 8;
@@ -478,16 +478,16 @@
         }
 
         public bool[] ReadDiscreteInputs(int startingAddress, int quantity) {
-            // 鎶ユ枃缁撴瀯涓嶳eadCoils鍑犱箮鐩稿悓锛屼粎鍔熻兘鐮佹敼涓�x02
+            // 鎶ユ枃缁撴瀯涓嶳eadCoils鍑犱箮鐩稿悓,浠呭姛鑳界爜鏀逛负0x02
             byte[] request = new byte[12];
             request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�-            request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺傦紙绀轰緥鍊硷級
-            request[2] = 0x00; // 鍗忚ID楂樺瓧鑺傦紙鍥哄畾0锛�-            request[3] = 0x00; // 鍗忚ID浣庡瓧鑺傦紙鍥哄畾0锛�-            request[4] = 0x00; // 闀垮害楂樺瓧鑺傦紙鍚庣画6瀛楄妭锛�+            request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�(绀轰緥鍊� 
+            request[2] = 0x00; // 鍗忚ID楂樺瓧鑺�(鍥哄畾0) 
+            request[3] = 0x00; // 鍗忚ID浣庡瓧鑺�(鍥哄畾0) 
+            request[4] = 0x00; // 闀垮害楂樺瓧鑺�(鍚庣画6瀛楄妭) 
             request[5] = 0x06; // 闀垮害浣庡瓧鑺�             request[6] = unitIdentifier;
-            request[7] = 0x02; // 鍔熻兘鐮侊細璇荤鏁h緭鍏�+            request[7] = 0x02; // 鍔熻兘鐮�璇荤鏁h緭鍏�             request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺�             request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺�             request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -499,7 +499,7 @@
             byte[] responseHeader = new byte[8];
             _networkStream.Read(responseHeader, 0, 8);
 
-            // 鏍¢獙鍜屽紓甯稿鐞嗭紙鍙傝�ReadCoils锛�+            // 鏍¢獙鍜屽紓甯稿鐞�(鍙傝�ReadCoils) 
             if (responseHeader[7] == 0x82) // 寮傚父鍝嶅簲
             {
                 int errorCode = _networkStream.ReadByte();
@@ -525,16 +525,16 @@
             if (quantity < 1 || quantity > 125)
                 throw new ArgumentException("Quantity must be between 1 and 125");
 
-            // 鏋勫缓璇锋眰鎶ユ枃锛�2瀛楄妭锛�+            // 鏋勫缓璇锋眰鎶ユ枃 (12瀛楄妭) 
             byte[] request = new byte[12];
-            request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺傦紙绀轰緥鍊硷級
+            request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�(绀轰緥鍊� 
             request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�-            request[2] = 0x00; // 鍗忚ID楂樺瓧鑺傦紙鍥哄畾0锛�-            request[3] = 0x00; // 鍗忚ID浣庡瓧鑺傦紙鍥哄畾0锛�-            request[4] = 0x00; // 闀垮害楂樺瓧鑺傦紙鍚庣画6瀛楄妭锛�+            request[2] = 0x00; // 鍗忚ID楂樺瓧鑺�(鍥哄畾0) 
+            request[3] = 0x00; // 鍗忚ID浣庡瓧鑺�(鍥哄畾0) 
+            request[4] = 0x00; // 闀垮害楂樺瓧鑺�(鍚庣画6瀛楄妭) 
             request[5] = 0x06; // 闀垮害浣庡瓧鑺�             request[6] = unitIdentifier; // 鍗曞厓鏍囪瘑绗�-            request[7] = 0x03; // 鍔熻兘鐮侊紙璇讳繚鎸佸瘎瀛樺櫒锛�+            request[7] = 0x03; // 鍔熻兘鐮�(璇讳繚鎸佸瘎瀛樺櫒) 
             request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺�             request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺�             request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -543,19 +543,19 @@
             // 鍙戦�璇锋眰
             _networkStream.Write(request, 0, request.Length);
 
-            // 璇诲彇鍝嶅簲澶达紙8瀛楄妭锛�+            // 璇诲彇鍝嶅簲澶�(8瀛楄妭) 
             byte[] responseHeader = new byte[8];
             int bytesRead = _networkStream.Read(responseHeader, 0, 8);
             if (bytesRead != 8)
                 throw new Exception("Invalid response header length");
 
-            // 鏍¢獙浜嬪姟ID銆佸崗璁甀D銆佸崟鍏冩爣璇嗙
+            // 鏍¢獙浜嬪姟ID,鍗忚ID,鍗曞厓鏍囪瘑绗�             if (responseHeader[0] != request[0] || responseHeader[1] != request[1] ||
                 responseHeader[2] != 0x00 || responseHeader[3] != 0x00 ||
                 responseHeader[6] != unitIdentifier)
                 throw new Exception("Invalid response header");
 
-            // 妫�煡寮傚父鍝嶅簲锛堝姛鑳界爜 + 0x80锛�+            // 妫�煡寮傚父鍝嶅簲 (鍔熻兘鐮�+ 0x80) 
             if (responseHeader[7] == 0x83) {
                 int errorCode = _networkStream.ReadByte();
                 throw new Exception($"Modbus error. Code: {errorCode}");
@@ -563,14 +563,14 @@
             else if (responseHeader[7] != 0x03)
                 throw new Exception("Invalid function code in response");
 
-            // 璇诲彇鏁版嵁閮ㄥ垎锛堝瓧鑺傛暟 + 瀹為檯鏁版嵁锛�+            // 璇诲彇鏁版嵁閮ㄥ垎 (瀛楄妭鏁�+ 瀹為檯鏁版嵁) 
             byte byteCount = responseHeader[8];
             byte[] responseData = new byte[byteCount];
             bytesRead = _networkStream.Read(responseData, 0, byteCount);
             if (bytesRead != byteCount)
                 throw new Exception("Invalid response data length");
 
-            // 瑙f瀽瀵勫瓨鍣ㄥ�锛堝ぇ绔簭锛�+            // 瑙f瀽瀵勫瓨鍣ㄥ� (澶х搴� 
             int[] registers = new int[quantity];
             for (int i = 0; i < quantity; i++) {
                 int offset = i * 2;
@@ -587,22 +587,22 @@
             // 鏋勫缓Modbus TCP璇锋眰鎶ユ枃
             byte[] request = new byte[12];
 
-            // 浜嬪姟鏍囪瘑绗︼紙鍙互绠�崟閫掑锛�+            // 浜嬪姟鏍囪瘑绗�(鍙互绠�崟閫掑) 
             request[0] = 0x00;
             request[1] = 0x01;
 
-            // 鍗忚鏍囪瘑绗︼紙Modbus鍥哄畾涓�锛�+            // 鍗忚鏍囪瘑绗�(Modbus鍥哄畾涓�) 
             request[2] = 0x00;
             request[3] = 0x00;
 
-            // 闀垮害瀛楁锛堝悗闈㈣繕鏈�瀛楄妭锛�+            // 闀垮害瀛楁 (鍚庨潰杩樻湁6瀛楄妭) 
             request[4] = 0x00;
             request[5] = 0x06;
 
             // 鍗曞厓鏍囪瘑绗�             request[6] = unitIdentifier;
 
-            // 鍔熻兘鐮侊紙4琛ㄧず璇昏緭鍏ュ瘎瀛樺櫒锛�+            // 鍔熻兘鐮�(4琛ㄧず璇昏緭鍏ュ瘎瀛樺櫒) 
             request[7] = 0x04;
 
             // 璧峰鍦板潃
@@ -677,7 +677,7 @@
 
             _networkStream.Write(request, 0, request.Length);
 
-            // 鍝嶅簲搴斾笌璇锋眰瀹屽叏涓�嚧锛堝洖鏄撅級
+            // 鍝嶅簲搴斾笌璇锋眰瀹屽叏涓�嚧 (鍥炴樉) 
             byte[] response = new byte[12];
             int bytesRead = _networkStream.Read(response, 0, 12);
             if (bytesRead != 12)
@@ -708,7 +708,7 @@
 
             _networkStream.Write(request, 0, request.Length);
 
-            // 妫�煡鍥炴樉鍝嶅簲锛堝悓WriteSingleCoil锛�+            // 妫�煡鍥炴樉鍝嶅簲 (鍚學riteSingleCoil) 
             byte[] response = new byte[12];
             _networkStream.Read(response, 0, 12);
             if (!response.SequenceEqual(request))
@@ -722,7 +722,7 @@
             if (quantity < 1 || quantity > 1968)
                 throw new ArgumentException("Quantity must be between 1 and 1968");
 
-            // 璁$畻闇�鐨勫瓧鑺傛暟锛堟瘡涓瓧鑺傚瓨鍌�涓嚎鍦堢姸鎬侊級
+            // 璁$畻闇�鐨勫瓧鑺傛暟 (姣忎釜瀛楄妭瀛樺偍8涓嚎鍦堢姸鎬� 
             int byteCount = (quantity + 7) / 8;
             byte[] coilBytes = new byte[byteCount];
 
@@ -735,7 +735,7 @@
                 }
             }
 
-            // 鏋勫缓璇锋眰鎶ユ枃锛�3 + 绾垮湀瀛楄妭鏁帮級
+            // 鏋勫缓璇锋眰鎶ユ枃 (13 + 绾垮湀瀛楄妭鏁� 
             byte[] request = new byte[13 + coilBytes.Length];
             request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�             request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�@@ -744,7 +744,7 @@
             request[4] = (byte)((7 + coilBytes.Length) >> 8); // 闀垮害楂樺瓧鑺�             request[5] = (byte)(7 + coilBytes.Length); // 闀垮害浣庡瓧鑺�             request[6] = unitIdentifier;
-            request[7] = 0x0F; // 鍔熻兘鐮侊紙鍐欏涓嚎鍦堬級
+            request[7] = 0x0F; // 鍔熻兘鐮�(鍐欏涓嚎鍦� 
             request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺�             request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺�             request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -755,7 +755,7 @@
             // 鍙戦�璇锋眰
             _networkStream.Write(request, 0, request.Length);
 
-            // 璇诲彇鍝嶅簲锛堝浐瀹�2瀛楄妭锛�+            // 璇诲彇鍝嶅簲 (鍥哄畾12瀛楄妭) 
             byte[] response = new byte[12];
             int bytesRead = _networkStream.Read(response, 0, 12);
             if (bytesRead != 12)
@@ -774,14 +774,14 @@
             if (quantity < 1 || quantity > 123)
                 throw new ArgumentException("Quantity must be between 1 and 123");
 
-            // 灏唘short鏁扮粍杞崲涓哄瓧鑺傛暟缁勶紙澶х搴忥級
+            // 灏唘short鏁扮粍杞崲涓哄瓧鑺傛暟缁�(澶х搴� 
             byte[] valueBytes = new byte[quantity * 2];
             for (int i = 0; i < quantity; i++) {
                 valueBytes[i * 2] = (byte)(values[i] >> 8);
                 valueBytes[i * 2 + 1] = (byte)values[i];
             }
 
-            // 鏋勫缓璇锋眰鎶ユ枃锛�3 + 鍊煎瓧鑺傛暟锛�+            // 鏋勫缓璇锋眰鎶ユ枃 (13 + 鍊煎瓧鑺傛暟) 
             byte[] request = new byte[13 + valueBytes.Length];
             request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�             request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�@@ -790,7 +790,7 @@
             request[4] = (byte)((7 + valueBytes.Length) >> 8); // 闀垮害楂樺瓧鑺�             request[5] = (byte)(7 + valueBytes.Length); // 闀垮害浣庡瓧鑺�             request[6] = unitIdentifier;
-            request[7] = 0x10; // 鍔熻兘鐮侊紙鍐欏涓瘎瀛樺櫒锛�+            request[7] = 0x10; // 鍔熻兘鐮�(鍐欏涓瘎瀛樺櫒) 
             request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺�             request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺�             request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -801,7 +801,7 @@
             // 鍙戦�璇锋眰
             _networkStream.Write(request, 0, request.Length);
 
-            // 璇诲彇鍝嶅簲锛堝浐瀹�2瀛楄妭锛�+            // 璇诲彇鍝嶅簲 (鍥哄畾12瀛楄妭) 
             byte[] response = new byte[12];
             int bytesRead = _networkStream.Read(response, 0, 12);
             if (bytesRead != 12)

--
Gitblit v1.9.1