//******************************************************************************************************
//
//文件名（FileName）：                      ProtocolBase.cs
//
//功能描述（Description）：                 通讯协议 基类，定义了通讯协议包含的基本功能及必要属性
//
//数据表（Tables）：                        Nothing
//
//作者（Author）：                          wudehang
//
//日期（Create Date）：                     2021-03-09
//
//CLR版本（CLR Version）：                  net Core 5.0
//
//版本（Version）：                         1.0.0
//
//公司（Company）：                         南京埃斯顿自动化股份有限公司
//
//******************************************************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Treasure.DataModel;

namespace Treasure.通讯协议
{
    /// <summary>
    /// 通讯协议 基类
    /// </summary>
    public abstract class ProtocolBase
    {
        /// <summary>
        /// ip地址
        /// </summary>
        protected string m_IP { get; set; }
        /// <summary>
        /// 端口
        /// </summary>
        protected short m_Port { get; set; }
        /// <summary>
        /// 连接字符串
        /// </summary>
        protected string m_MonnectStr { get; set; }
        /// <summary>
        /// 通讯协议参数初始化
        /// </summary>
        public abstract void ProtocolInit(string IP, short Port, string ConnectStr);
        /// <summary>
        /// 批量读取数据，包含数据类型分类，数据读取等
        /// </summary>
        public abstract void ReadItems(List<ItemBase> itemBases);
        /// <summary>
        /// 单个读取数据，包含数据类型分类，数据读取等
        /// </summary>
        public abstract void ReadItem(ItemBase itemBase);
        /// <summary>
        /// 连接初始化
        /// </summary>
        public abstract void Connect();
        /// <summary>
        /// 连接校验（在每次读取时，进行连接校验），连接校验失败，则进行一次重连
        /// </summary>
        public abstract void CheckConnect();
        /// <summary>
        /// 连接断开
        /// </summary>
        public abstract void Close();
    }
}
