1
z8018
2025-03-12 17e4c7e3e7b3ef60d9da6de3b2a39a14a53c38a0
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -21,7 +21,10 @@
namespace WIDESEAWCS_Communicator
{
    public abstract class BaseCommunicator: IDisposable
    /// <summary>
    /// 基础通讯抽象类,封装连接、断开连接、读取、写入等方法
    /// </summary>
    public abstract class BaseCommunicator : IDisposable
    {
        /// <summary>
        /// 构造函数
@@ -39,6 +42,11 @@
        /// 设备名称
        /// </summary>
        public abstract string Name { get; }
        /// <summary>
        /// 是否在写入数据后读取数据确认。
        /// </summary>
        public abstract bool IsReadAfterWrite { get; set; }
        /// <summary>  
        /// 获取当前通讯器是否已连接到PLC。  
@@ -76,6 +84,15 @@
        /// <summary>
        /// 从PLC读取数据。
        /// </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>
        /// 从PLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">数据类型。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
@@ -92,13 +109,22 @@
        /// <summary>
        /// 向PLC写入数据。  
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public abstract bool Write<T>(string address, T value) where T : notnull;
        /// <summary>
        /// 向PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public abstract bool Write<T>(string address, T[] values);
        /// <summary>
        /// 向PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>