From 17e4c7e3e7b3ef60d9da6de3b2a39a14a53c38a0 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期三, 12 三月 2025 14:11:33 +0800
Subject: [PATCH] 1

---
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs |   76 +++++++++++++++++++++++++++++++++----
 1 files changed, 67 insertions(+), 9 deletions(-)

diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
index d781b94..04c5fa2 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -21,7 +21,10 @@
 
 namespace WIDESEAWCS_Communicator
 {
-    public abstract class BaseCommunicator
+    /// <summary>
+    /// 鍩虹閫氳鎶借薄绫伙紝灏佽杩炴帴銆佹柇寮�杩炴帴銆佽鍙栥�佸啓鍏ョ瓑鏂规硶
+    /// </summary>
+    public abstract class BaseCommunicator : IDisposable
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -30,9 +33,20 @@
         {
         }
 
+        /// <summary>
+        /// 鏃ュ織璁板綍瀹炰緥瀵硅薄
+        /// </summary>
         public abstract ILogNet LogNet { get; }
 
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
         public abstract string Name { get; }
+
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public abstract bool IsReadAfterWrite { get; set; }
 
         /// <summary>  
         /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
@@ -64,9 +78,17 @@
         /// </summary>
         /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
         /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
-        /// <param name="length">瑕佽鍙栫殑鏁版嵁闀垮害銆�</param>
         /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public abstract T Read<T>(string address);
+
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="length">璇诲彇鐨勯暱搴︺��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
+        public abstract T[] Read<T>(string address, ushort length);
 
         /// <summary>
         /// 浠嶱LC璇诲彇鏁版嵁銆�
@@ -81,17 +103,26 @@
         /// </summary>  
         /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
         /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁銆�</param>  
-        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse銆�</returns>  
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>  
         public abstract bool Write(string address, byte[] data);
 
         /// <summary>
-        /// 
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
         /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="address"></param>
-        /// <param name="value"></param>
-        /// <returns></returns>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public abstract bool Write<T>(string address, T value) where T : notnull;
+
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="values">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
+        public abstract bool Write<T>(string address, T[] values);
 
         /// <summary>
         /// 鍚慞LC鍐欏叆鏁版嵁銆�
@@ -99,14 +130,41 @@
         /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
         /// <param name="dataType">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</param>
         /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
-        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭鑷畾涔夐�氳寮傚父銆�</returns>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
         /// <exception cref="CommunicationException"></exception>
         public abstract bool WriteObj(string address, string dataType, object value);
 
+        /// <summary>
+        /// 绛夊緟鎸囧畾鍦板潃鐨勬硾鍨嬬被鍨嬪�间负鎸囧畾鐨勫��
+        /// </summary>
+        /// <typeparam name="T">鎸囧畾鐨勫�肩殑绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="readInterval">璇诲彇鐨勯鐜囥��</param>
+        /// <param name="waitTimeout">绛夊緟鐨勮秴鏃舵椂闂达紝濡傛灉瓒呮椂鏃堕棿涓�-1鐨勮瘽锛屽垯鏄棤鏈熼檺绛夊緟銆�</param>
+        /// <param name="value">绛夊緟妫�娴嬬殑鍊�</param>
+        /// <returns>鏄惁绛夊緟鎴愬姛鐨勭粨鏋滃璞★紝涓�鏃﹂�氫俊澶辫触锛屾垨鏄瓑寰呰秴鏃跺氨杩斿洖澶辫触銆傚惁鍒欒繑鍥炴垚鍔燂紝骞跺憡鐭ヨ皟鐢ㄦ柟绛夊緟浜嗗涔呫��</returns>
         public abstract OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value) where T : struct;
 
+        /// <summary>
+        /// 璇诲彇鑷畾涔夌殑鏁版嵁绫诲瀷锛岄渶瑕佺户鎵胯嚜IDataTransfer鎺ュ彛锛岃繑鍥炰竴涓柊鐨勭被鍨嬬殑瀹炰緥瀵硅薄銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>鎴愬姛杩斿洖鑷畾涔夌被鍨嬫暟鎹紝澶辫触鎶涘嚭寮傚父銆�</returns>
         public abstract T ReadCustomer<T>(string address) where T : IDataTransfer, new();
 
+        /// <summary>
+        /// 鍐欏叆鑷畾涔夌被鍨嬬殑鏁版嵁锛岃绫诲瀷蹇呴』缁ф壙鑷狪DataTransfer鎺ュ彛銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ユ暟鎹��</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
         public abstract bool WriteCustomer<T>(string address, [NotNull] T value) where T : IDataTransfer, new();
+
+        /// <summary>
+        /// 閲婃斁瀵硅薄璧勬簮鐨勬帴鍙c��
+        /// </summary>
+        public abstract void Dispose();
     }
 }

--
Gitblit v1.9.3