using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FlyADBase
{
    /// <summary>
    /// 客户端AD盒
    /// </summary>
    public interface IFlyADClient : IFlyAD
    {
        /// <summary>
        /// 连接成功
        /// </summary>
        bool IsConnected { get; }

        /// <summary>
        /// 重连次数
        /// </summary>
        int ConnectCnt { get; }

        /// <summary>
        /// 断开连接
        /// </summary>
        void Disconnect();

        /// <summary>
        /// 连接
        /// </summary>
        void Connect();

        /// <summary>
        /// 连接 addr
        /// </summary>
        /// <param name="addr"></param>
        void Connect(string addr);

        /// <summary>
        /// 重连
        /// </summary>
        void ReConnect();

        /// <summary>
        /// 已经从AD盒获取全部当前数据
        /// </summary>
        bool IsReady { get; }

        /// <summary>
        ///  通过判断systick，判断AD盒是否发生重启;
        ///  BeResetTime为上一次被复位时间， 此为 电脑的时间
        /// </summary>
        DateTime BeResetTime { get; }

        /// <summary>
        /// 只要connect成功，获取systick被复位，都会从AD盒设备读取参数；
        /// 否则， 设置参数 到 AD盒
        /// </summary>
        bool IsReadParamFromDev { get; set; }
    }
}
